From a76eecd2beb21766a942c63dc6f217f0d8c4ccf7 Mon Sep 17 00:00:00 2001 From: Collins Ikechukwu Date: Sun, 18 Oct 2026 07:37:01 +0100 Subject: [PATCH] test(compat): replay the next upgrade from mainnet events 1.8.0 Mainnet now runs events 1.8.0 and profile 1.2.1, so the storage replay starts from those builds. The wasm fixtures are the live code fetched by hash, and mainnet-state.json is ledger 65,003,455, the first archive checkpoint after the upgrade. A second capture of that ledger produced the same file. The replay now upgrades events only, 1.8.0 to this tree's 2.1.0, because the profile here is still the deployed 1.2.1. It checks that the deployed build refuses an apply before its 17,280-ledger timelock, advances the ledger, then pauses, applies, migrates and unpauses as the runbook does. The test fails at the start if contracts/profile no longer reports 1.2.1, so a profile change cannot ship without being replayed. The pre-1.7.0 record checks are gone because mainnet converted those records. --- BACKLOG.md | 3 +- .../fixtures/mainnet-events-1.7.0.wasm | Bin 62110 -> 0 bytes .../fixtures/mainnet-events-1.8.0.wasm | Bin 0 -> 61641 bytes .../fixtures/mainnet-profile-1.2.0.wasm | Bin 16148 -> 0 bytes .../fixtures/mainnet-profile-1.2.1.wasm | Bin 0 -> 15437 bytes .../compatibility/fixtures/mainnet-state.json | 3818 +++++------------ .../compatibility/fixtures/manifest.json | 22 +- contracts/compatibility/src/lib.rs | 118 +- docs/storage-compatibility.md | 49 +- 9 files changed, 1088 insertions(+), 2922 deletions(-) delete mode 100644 contracts/compatibility/fixtures/mainnet-events-1.7.0.wasm create mode 100644 contracts/compatibility/fixtures/mainnet-events-1.8.0.wasm delete mode 100644 contracts/compatibility/fixtures/mainnet-profile-1.2.0.wasm create mode 100644 contracts/compatibility/fixtures/mainnet-profile-1.2.1.wasm diff --git a/BACKLOG.md b/BACKLOG.md index 89821a3..126ce65 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -13,7 +13,7 @@ Legend: `[ ]` open, `[~]` in flight, `[x]` done. ## P1 -- [ ] **Events 2.1.0 (grant milestone splits) to mainnet**, as its own upgrade after 1.8.0, waiting the 17,280-ledger timelock. Before it goes: rerun Scout on the 2.1.0 code and add it to `docs/threat-model.md` Section 6 (the scan covers 2.0.0; the testnet grant run already passed on 2.1.0, `docs/audit/testnet-grant-run-2.1.0.md`). Refresh the storage replay from 1.8.0 once mainnet runs it (`docs/storage-compatibility.md`). +- [ ] **Events 2.1.0 (grant milestone splits) to mainnet**, as its own upgrade after 1.8.0, waiting the 17,280-ledger timelock. Before it goes: rerun Scout on the 2.1.0 code and add it to `docs/threat-model.md` Section 6 (the scan covers 2.0.0; the testnet grant run already passed on 2.1.0, `docs/audit/testnet-grant-run-2.1.0.md`). - [ ] Per-event prize claim window: `PRIZE_CLAIM_WINDOW_SECS` (90 days) is a module constant because adding a field to `EventRecord` requires a storage migration. Move it onto `EventRecord` at the next real migration window, per the per-event-config rule in `CLAUDE.md`. - [ ] `Error` enum headroom: events uses 42 of the 50-case `contracterror` cap after 2.0.0, and retired codes are never reused. Plan a consolidation before the cap, not when the next variant fails to compile. - [ ] Grant committee multi-sig primitive (dedicated signer set + quorum at the contract level vs the current address-level multi-sig). @@ -30,6 +30,7 @@ Legend: `[ ]` open, `[~]` in flight, `[x]` done. ## Done +- [x] 2026-10-18: storage replay refreshed from mainnet events 1.8.0 and profile 1.2.1 (ledger 65,003,455). It now replays the events 2.1.0 upgrade, including the 17,280-ledger timelock the deployed build enforces (`docs/storage-compatibility.md`). - [x] 2026-10-02: measured batch headroom on the test host, which enforces mainnet limits (100 footprint entries, 50 writes): single-release selection 19 + 4 per award, grant selection 15 + 2 per award, refund crank 11 + 5 per refund, read page 3 + 1 per row. Caps are now 20 single-release awards per call, 40 per grant, 15 refunds per crank and 90-row pages, each tested at its maximum (`grant_scenarios::limits`). - [x] 2026-10-02: upgrade timelock restored in source (events 2.0.0, profile 1.2.1): 17,280 ledgers on mainnet builds, 0 with `--features testnet`; tests assert `UpgradeTimelockNotElapsed`. - [x] 2026-09-28: on-chain participation removed in events 2.0.0 (`apply`, `apply_to_bounty`, `remove_applicant`, `submit` and their registries); entries live in boundless-nestjs. diff --git a/contracts/compatibility/fixtures/mainnet-events-1.7.0.wasm b/contracts/compatibility/fixtures/mainnet-events-1.7.0.wasm deleted file mode 100644 index 6f168408f09ae21b3c190521191a4be04fdeae33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62110 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 F{{vBC>ZSky diff --git a/contracts/compatibility/fixtures/mainnet-events-1.8.0.wasm b/contracts/compatibility/fixtures/mainnet-events-1.8.0.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9a7e4221f97a7de74a956b61f6084003c0258557 GIT binary patch literal 61641 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�vVt3ncLRAfdH zTzRR-rzu{GZY3U?(5rmF&$tT`CNPz}UeSi0=ohOcB2q}Al@y4aG)!fIt8`JBEwc-m z9n|ZlnqIhgRlG9}`M(*j3N_U*n`+De%u5azQ*1M8Qh3UmxhXaqRQfY87sRLDjBaU> zZKjY?ef?fPqXs5cVq)*m#FjBJ*dQ)O8?b?ZKocyv36|Ufma+vbXR|6ZMJ_a}lE5qP zq)9njz_Mml&S%wbb<$at(pja=+^m`nDyMtNdybs&Rui2Zz8$`K%!@|6N(q*V`c_p2 z9j|269F4NVE*b^4^-W~sf(sq1SkIKOE7#`je5rus0cIXuoA}iL-pX}>$j!+}R?!hg z(l!v7jtL-*Oi6Tl(OB|%FY%)BUc!Ek!Jmj+dHe@q)Uyf;D|rB0Hu{C+zx+LwUkXAt zWE~$O6{GD{qU=>9U$i3*v*j9QE)slza2uLI--DO+9<0fp3~uhNG93v&r^9ZOEKvO| zy_L%XVzO!P%r7_;J*(zr0a^uS;m;GEVJK2$R(K&c>x^y$R)0np8D5hoBqCmDsIB^j z&rC!xVz23<P!Tfh10Vr^-iF59CE1YAvQXLSmJM>X0BjN?44s6OXoT(pD6NL!FWnZ`z!!$ok>^y_9nH+9K{6WUUFLU)thQgXiF zC^0sMatTESOhH^cSS#LqzqtG0K^Et-*RXI%z_{&>;lp>(d3eX|!`_Xxa&H_AOC#7n zds6Pjs48WKC96}4OTaA)2}VqOlxA``F7)P7CQgpL0oKJzlDG(>DQA}(MAO_fHFPEO z0SfRx?A^fEbi_@!H3R-PH_TY@BL#yL_^%u}Ip*Idyhv(_Y*G-UR~JRPf39*4D2#@N zea8n6d^u%|$G%gEmanROJq!wm3(`dodnu(PwSk}?41wICU=w7-vdJtcpy^6XX(Q{X zGUQ5e`#aFNvA!O3R!a+YjD#jSX0ei>@2poJq#b*$ zp;VP?MUcA3fH5j2I1iV~?#GaVilY>u!VT{FD!dhLZ$glUl9emnq#}9{sSJBnUl373 z5=^cmot(LW~1jpEZ#M7;#0Y|^Cj$3DmwUzHu4M*LO80LU<-L)IK*C#zB_f3?&>({ zo|#^`T4!O9daP686N&Znam;ApfjQ$ti-r>njtaFt7)>WNOh0JZB}KT+QbsMPk6KaB^~&s8?jF}Gvg>m4u!J0%LsMrZhzw*X zc6LbsowF4GC4;R^l7+EtCo%B`f{QSmFfEZ6aq)hneOq$T&gdPGgM0;SHzH5N$G${| z(ObFM7hD8obF(Zf56G+KsH@tZ9Fro%ed&;Hh+*&H-+k4`-t)-U{^GCiI*e~n?5&j# zve6UXbU&WNH;%pGTc7*8KSP-4L4X=4Ney(yc-wKo)BqNiQv=1`xHA*U^Yf?ywTaf_ z2_vk7VeiFpu(=oF@)@*)k%DNwXfEAC#r$M@)J_(_)3-VLhUQ!6x@# zOvOG$cmf}XgnFNS6ZO)Nj-Px{R|H9A>k`V>6@lnVu*pnWSwFs$hkLDnZ^VmfRFg%I zqbm`d+WXPRN(}#WF9_0+7-bJ$^GDnvhvf+<*ep6pjtE{{Ta5WuB;YsC%K=};``pG z>Pyn1TZW?&#mPOY=BR(Fh5Av41cPGCe0l4a_yk1ellNzzFg&pc$P*C7!Cr9epwo@FOM8JkKi#?yIP&80iE5T z@4CzP7ggHTTP1ow$trG$Tvd3{8~s{{r-ckdXGq(1%CJBoM9)X`O>+a^JPnJ)ToDqI z?Sg3>Vj73N(etRPYNio}9Xg;3r+abUI-N3pK}xCKx0wL1Y;T^ zC`Ji-$)7Pwa_q^Ik`V7ZCra8R`UP$Z+vX#up;l@;TktH^rdO>U-KqYy6t+6us5p&1 zM1(S0RryjL*~myLIWKJud)q2m`;!)mMZyfyBB^77GmE1v!Qw?qZ6Q@R+Z#I*$FsRe zT=(UR^b;?NK?m`r^!u6su~AH;sGu4syyU1Nsm&O#V!ffonu4THGZ03XATvys%y$sS zq&Af)^CCWu7Om#0m^Z_9l)|4~uS{v|3lN>J1~I|flq$J~fONAjx`&J0OXAKDrWCYi z)E4tCv~Oqgt0oaj+wb&=H_HK0{!Hb%)raTVyO3PKpaJwRyEByC8E)>C z387%Bym|Ob;zXAD|t@M+KkWU;#&daSq&Wi;R8JV2_giF`~`4e34+|h<}ldsC+-C^=a-j$F?_mz9P z2#0GDEViF~Pex-H{iX#4xbObK6z*%wn0*>;Hxlg9m!Z4@d+8ReOu|dOJ{wup(h%Mjk+H=k zq~dI&&;$uw7pp#nL)is<(>$LS#IhwMW!+Zc&qI2826Ygtqv*Vvco;Wio@NekbcXaj zh{o7}w1>UoaA14$viX`3j=cIswlg35*GeSE-Y$tT=1En$=#oa=n@c69=*|_#*fKAv zssfWxVtlushm5+ii_M^dnf==d9RZdbJbKC9>P;4q+ap#PE{Huoec;hYYP1A` z%slm)mJhatED4ujE%VeD$s5;+JrzM{DtH%qavRSnTuz+ljMA$pyvgR}lFdITu&vxF zgXn~x*@x}UA%Ko!5gl`1DWxg0-6#d-nJp*w&@DIB5YBhjo+6|tS$ouM+DZt?*C8a8 zZqUDzi~|$Y{ppOIEfgfj<$*Y%Wt;8CeI^dE-RBcBvIm=@-?2N#{aOVvoj)ceP4Oua zX7sz%ARn4Af1n66-&a7?)_k*L`mEnAwJrnEVb~1>gcpWequ=u_CBH2xSRWULJ8C^G z(=qFWiZjtCY=m;Hl#kYlOtsPWJJEX_-I#XrpidSE%^vWT26ACI??=Dy25Qd-I_lS! z+ej%^E)0+PwbNSQw7&25PwJdbSEy44Q6eS*TS;w_NMef9oqS&*6N#|&rQQLGwoASJ z6eO6;P>@8jgJQW9B-Ezl6E8kZ$tRw&POhRL2L)1yivz)PDF{~&QIrRQ^%NLy{S+jo zlqoE+-iXMA<_RCiL?rrhCpa-HV7~yN&iMhz3xTbrf#|D-PYawm_rX9ZOMAL+sbCf< z5^t1YYHN?%wE@;vhu0SlC!Y3T6rxA;5^YU=itBr&U11=3$H+kp5>DU2&c}&SNAC(M zZwlB~u|0lFuna;`F}4Jo?SXAC1M4!AkC+sxuA$4+4$mkNb3)abBD0DlC>9zO7%6U3 zv0z3;!Hfz&5bycP$1Fyi8598q1(QUv>Z4QkgpXw#rWQqhHwmtja5hFrt(m0mAfh71#f;i=`YqJnp?z?v^2=y=% zaV6Wl&oOqZxnPZL@QP4*Dg!6>35NAnK91^h>>y2%>fPu;9>QtLAriA~f`72O*jhE~ z3GN{NR3wlTB!4SgBc!;l*Ccx!Uek+&596YhAnuypY8ahXZPQZPz9>3-9yOpCY7m{^ z14|Jnj=|=|LkM)zMxraC71cI|lTeVcN_K*rivk)A=qtaK!#)4g!2Op05!?pxn+Wk{ zDF{Fc*kyq#8KrqF1v1kGR62gs8M0e)JaKmgv(+E3FZtgft^|YCg^~N`S6(MN~tI5jSOiR(gG4YnzRCPYu_H*P$NPo-mX$s7L7Kqf_U0)s0f)Bat$G%R&^Hp6=92mM zpYSx6VaElB*SM}tO>0`9C?D7CCO!dH2CF0up;18M4EQe zw)wrz9Uekb^0*(jquuTj-m0=r(I5D5)0=ghN!8k-UqvNE@Ah2+;lqA(1G@;X^^=E`O!a4e^aei~b8)52uZe!e zg`3zYja~`-N*vJlLwt3qfzchBmO{qEfmkNz1WW#kl>4>t*29($R`#N23aFDZDtWxR z^3TZ9R`(~VRCNQ~q*3Ddv+)q&5&GG2lgOHQSW+EHsROsCvPsXj?6S^i}0SKRFjArBH`-l)L$M07dwSE&$P_ zjap*s;GI+hO(b9vG=HC;be%Mbrkt{g@L~yV)}qa=cQLRC2*B`Et&5L0cV>@kkI#03 zsmvxY`>|CuGco~Sm?Sx-I>1ceUAvD9@WBfoOewupNhO&%>}e;0HH<#y8%7id)Z|EV z(&P|PcFeXfSXpJqscI_~Tmv!$dZMr*-!@18uLzs3rWzDuK@zFg*Z3_U&|!XM!qk?O zK@cn~)bEv%aqaS89}7~uBspeQL%LidPbuPK^1WI(7idt)cO$@J>^7uRR>wWS(X8}ZFKhvf-f%1 zb^-uAI&>zc6J(XJd`Z6NMQ;mM!Qn_W#hDFlh1K4jDD~t#*Vs4G zh@uvX5Xcf*#i+!1~r<3 zuAtU|ozYcbeAeqYt(3rYx4Mc3z%eCuWifiL=22E>Xd14k1xpvP&@x7dOhRSx{yad# za@NIz7Btg0KoN8v^k6~leaIp%1!TutXlLsUm0A5 zsH@uMC*1mX4`;%0U68C^a(hgM+p1xLt`axDs4@uQk0iw4BlOd}$L-lD9g(ybkltIfqah{0l!QQkt7oOupaAJK zYgRk z{FP7o$s6XK6~&Dw-+>gWXiMG5$S4zmCG>0nePslf)}EOwk>Wm)9?>r&K}b;~C}{?p zKcbExqCA-be%O-B5DEDL!a~A>{lG$=DTh#V$}HMi^I>TdMep!sEShlpl$T1kKKWwU zCoH&0I>zk_`Viu^@M@^~vuVBXT72`*aM40s3yeY04T?QFa}{)gl7Bx(6f?n1uAGE& zn!+PcY9_rEJC$+6{$4qGL{(bk_V-hhGj1b#kBZfd)!kp3eeIklQ6hd^mME zerjcxDLRv1S~$MA0TOODFV+^i@Wyw3>m~qSeR|90<0cFIoA`adEZx1*g^2I;pBjr#u>P&OI4CO3RUCRx^1B~~iU+q!(1SW>c$2st+@-e@PTn7^YRtt%ZAR?$$ zr1shfvb6QO@z}=fL>QLH&QuO2?XE(8QpgbILC+n0P~1kfNM{B-lh-J9u5SYcDO$Ut z|K-=p*K(h>GqnQia$&fil{Gu3muYY|h0M?dw<<1O+sik-z9lYH(Nonc07Y zZtNF=S&NUdtQq1lVBmlWC?K?_QQQ-2`d&1tW!CJBB9{-q8FWZs`w=Ki_F&3C%qPPv zRzr#S8V5{R7{$5gnT<@KC)JdA=l3WRa%!H?HDUBeC}q-G*9h&$bRXh=+y@v(gHm&G z_Z^z1VkRP$;8F-5Cj^2ff^QYsj{YPx0x@rC&J7G5_b~`e=|!)=Lh0mB2c9rZAd92W zq{`RJ9yjAeyl2_F?qC>$wkdnJm}c*Cl0+dtK3cMO>EI%v$oVQ141?{`tvkm>qJ`G1 z-A)Lw*13g6&GU6Rq(PAHB@7m_kboo;#@D5mu2ZxZ$p|@3SGVcDun{@)p{+MQZGrhf zaQd=m9&mX>v-te|F%c2Doxj*l_JstAgp;C2r6Wt@40-?Y@kYh+%rf%uN?Yz4wuo3n-3$Dv2pu%D}HdSxKDVYgZc0l(qbQg|ev z83eb0j^sC1+20o2wLofxhXP0R&C5PB6=}s&OnG ziO(F{u58dvr*b5dzvCQ>psX~dB6n+cGduMa!||1yaAN4EuZ94`-;{_X{IMNkh9K~t zfIy-Q`LBNJvkVEsjW-AV%W7xTyQUc+)uGz4AJ???RV#g@8_i|L_QT!@=Uqe-i zj8XhJ=G+l6354CQT05d2>33ak^#4d1bg=L0Fx3@%cObqf>~tE7xJ)hs?0(1Xam4Yo z8<}_qbXd6!<9ruGGc)9P%r_J4ZIbGJ$ZM2UE+0e5#{=>;Ldis}#1;*>8C>9(Kz^@C z?#UdAF!}I3aEdt;n!HV-04J*626(XpjX2E=%RfPdOjA0PH#|Mo? zR+v#Fy`onLSOtktD~j#1WD4UNIYa%??F-F#TXAr+f04JaNxlNS^`0ZCv|iwpnS*ZU zHZ1$iCBnuF-3s!w@f+@x`<6VcAZ<&)Dho`-LFMl{Nv`Oz&=iY8{5^Rf8!|}P>|}?H z@E;PTH+Jwl?dnd!r{}3%dm)Qr&}fE z5=qF;4hQr;Bp#^CaR%cU78U;7h?5Z?}!gDzkR&8^d@sPqzEUUJxwQsg^-0?u7 zE^d#35P(rK9TLX^4`!`kwLqFE9U(ohu(EnaAW{!8P6F9)$VVjK0ODUpVy7g2XM6_a zeTo{(qPLmj84SM?%i)Ac4Vht^;?ts)F6`g4h0eP-#{`mYM7}#iC_2k*o9Jb-inx%$ zH(aPL$Bcvgt6sP%X#RJY?p9bTeGhivDum_osJH4eR@fe4840IgV%WP5ZF07FmKr>-Ik`aJ{@iKt0 z3jzWiajDCf#wuygi&buyHRjN841@QWueWYtLXhy{Xc2MWiT#JviVjqwmkj#{qqpLg z4Ijo)OdCEyWRHej6-$ASImdZ0x}IkMXneH^jZRqV8#XctgJl<{BJ!J5wjW*2m`*w{HKgONpK#asW|>e+{vlJn z45V{oU1==OjeF1(uH5eQKNht0xSID1uq>s=F1in^^+fE zuN^Y0jO$~*0z=>lQdA_-a0a;uXQBlxC?gFlD8uD(m1r6)CLA87{8zha9Ybu9$cDFGP z6O10Bb@Eu2J@u6!D7yU^qEr3_Y3MRl1Yh)EDb!rhs^+vE){M64x{)QiO(8{kB z(9JRXpcoI)y{UBv+W>D7$KJB%+&PE{pxL!TS}2%8V9!ntCmbr#=`sW-Z)vow5~A>% z`AXWl9@xGsc!+L5I6~uo)&f1~TBK)AnoS_z*!s$z;2yJQohbJlYd{^@_w2BWlyRyv zY4#V#S)%2lK!z7U=?O@#lTXNv6E>F!i0aq{M#Jk1M25}Bna9ULcT-zF4&GB1RFfi^ zZ>k!c65_47idp!iBo)JsWmgS(DP;og)Rkz?d>kdTFt>B_R4%%cSjWdn2X66lOhJ_$ zReH(uR1r_dg}2n}2kCXSXGXfDZ*oHWKtTIG?)O1`S9igNxN|Ha^D@m(Zw5y@C2k8~d)?5!dG7C7-(+ysiS z<&dIgSsQQ7Go0j>afAsvNacv>6R!GV6JoJe%%v*^X8-FLfwiO#^4KAYV`HSHq9hT? zPAD5UQ!k7Tqee;#_5#f0Y?^{$E00Lh&YOAtD>15EQX$r7V`|#*|IL zZQ_>c)DUibBZbyL(m^DA9c5wwAXbLk)QWkX+aacDARs32Ac;*DEjFnLW4i^O6quxq z_P{AT*;<^(zJm{n+gPSf;(9grY7d~pOS-L6Yj2JG02;@}iSIR`|EO=%kb?*@@^I27 zxFz{^CKn3HHzXHMlU#_9cPwHNmr!*TmT{ZoFtKP3?L2(MqCpZw@RdY~+jh+YLD?2l zPC&x}sKIHgoq9_VTuBcjV_M&!#{L4Mk7_3g(L@y0odg9#u?LjYZn$(=`FAFcM0;Xq zRd1m=McK@jF4vrRAs`6PI_C|7Zb{F}*7trtOZSTYB;_KPp?kak0tAV(!gEvNe$#4sHrYxHR@x@$y=^!`Pmc)x2 z3WveZTl{K}c*r?AjQ*IK&0h5$D*{*~AEP_zM94&~IowM>S+|Kt!eaCpE}}20xh=#? z@}{|;y~x7`Cr#EDcF1$oN*W>@N2=3Morcz_Qgr?`+k->l7*K+ilvK$W=Gmfb1lv&` z<-ywWbsps*T)VX+Nx&_)c#0?Tl*vgUECwE`7>t<@iU2Y3X+0~Ur1i4thdwy(+~nj# z*_Uj!w9uNJp%oNe?tp|{4L%!RmO_i!A;oVZRTJ(Y^W^RmdJP1b*SHz!wilmg!6Ejm&$ZnK>qTNB4`$?Mbo+#HVN9779>`gZ^1r#73K<|Et6tgKxX@MkG6nikZc zq)OZ^Eg1Bn77!Myhl7^3l4>dP5UNei2-Ppi(hl8LCNjm6capnP!N`QP&8<^f%GcAj zwr;GXQ;Jv4MB9eWg~nJ8H350Jf^7OpRtYM z;vhI(Z*{~Ry$g8NYNf*baof$kx@5H8Eg14&qj^(Xf~^+Oig-wLu#K@^ge&y7M^dqU zlA%#;R9>$0F=L2o zAh;=k7BGJ-vQz6~M(j!W+VIz;*q=44lP}#&ic5}I5W`9^aLh!7Ns{(m$^NT*?KPIz zg;!H6x=F9au+!d{s@Ib*Xycd;|Bi^u1 zu4(o75^^b{Tp6cAz>{wP6WD`#?U@3jOSY-vDyL^m+&MR!Rve_E*Z`?#abrZ|g3e$6 zMmlH5)3P3P(hVH6#xv0{$-}1Pg&b#sJj@SwsUG&}eJf`etf;!n*IP zS^U?!zX)sJx<97lXNY}Qjd@MRn(M4VA8W~9cj;s$kuud4#jn?75?hk zEs)tgb~G1v{-D2L1>G>qG|b~VE{7}Hoxh0hDesQzIdM1d39OzQovpM4i?rTbtz_#N zS7b!O9I5e9>xov?&NDE`>GlZC_NHNKiE<*y3btK9fp5evDrs`@(P2@|1@;mw98?`q zvER^u_{kKjb@tZc;eYgQj@^%8#9a62bpSmUjfGfaI{CV%^oZ{GykX~YXgc&NEw>>$ zr`ip3L*DT!MJn0rRcsS??NaX{)C;4zVs@F|Yen5D2Rt{rXVi|fk%XjJwcUcDQN2JY~T*2Jp}z3iw{?Z z598|lyrMDo#Mp>kQML~MaInWhixyrqSwY9vO7J6G$3?=B ztOxb`GoQa89q~Mxu!H?UrJPcY=kq?v3L!iXSQSNic)SIkv>*@3ASOqN+$TNP^=eN9 zh}DP1hzrWODm0P{EQvTw9>pr))7#nSc>^BcQr&y$fcH1jKg1}Z4E6*r^&YX2AM{}! zAb3cpRVhzMIMM%?m8nemaJos(PInKi)fR3d0?>XXb1Pjf0Zw1g&zF51djlt;dtpGL zTNzwMqACfxNohoGA6(Ojj>Oj2$7&_z+ab^(w0*u6EAo6prgh;FVY-;#KIERg)eZ-P*z)2pb;-aQKc&mGiN2&k?rr(?!?9laXSi-0nF+>ZnL>_Yo9T~d7rZ2cBv!A9u}fso9cv`a;`wSTXO+Pq4- zdJ@T%z8_k@`PICT{4-?pvgj~*5`-4A<5+I|PdT8uSRT0+yDjxGfbF5*K+jsPEQ!!&?D&>5OvZy=Lr0QY!*Mw1O1bT<$C=6#}X}={=$**Fx>LP+3L);*QcDz@*hB zI;MC;s9bzR-`9P2*61gS?TAb)+OLqZ2vb%k^250lI0OnJw-|{FLYgKvRW(b{RpYn2 z#_m;JE^{Uz^%en(a9(OBBXm0%1pBo$296YqX4w9MO^!pWnqYVg7oS0e^u(kt_RpBnC!F2Mp)ZWOE1S9L49l??(fiHS)1Y$8i`pf!YD<(MylbtW7p^M8Jx z6a$i$2_tP+#!|lA*Cv!X6FO8m@4)5qBxX{nt&s+Q76?yZI`gaIAqSAf{!#>g?vLIEEPunB&` zLs)Qwl66@#F@wyfOqm8K)7Z~a!LqCU2uo^Rh3nO^N=qUw>e2d*HyKn-WX7{oYfPY z&0RdfhkK6*`Nuq29j{gKh>W$^MEFTeDa@vHD^QGeuV01gwM8e+wl~Ge#}RL_sTXKd zFJ*c1Zh!#-LsAeftLgBfZP4*W=`ladgmjR6_FYUdeMhMErUMN|Oyz7xj-F0FffkrE zDz2Je!8S}+cGfFomQXiiJ0tB-uqpdb8fl)+(tIZN(y)dSXn!88>k)2=v7UP`l(XMX zZlp~2g3_PKEQY91SMxp!Ki!xqnBGWMNNwKb@4PVZ1_MEKwr}eThva|hS6zco+$f~b2vKNU%JA!5$(h)EMx6?B}OW;=!F-E)2Agr>OLC* zNnf%;jrR0jLobqWy8XQ1E@X!cF(n{MryLD}P13=(!m?sXMvT71D(F-gg6Q+Mln(^X z+z@Ub4U(^W*LJ}z98J)$yiLG5JLL#Z-@m9y{n{8ZZaBmcR3$Y9F|JP4BV(t7P6#Xz zk=U$69I_nFsO9f^;L_pZprr-sy$<(cxmHNyi0ajfjUZg8cTE(mvdnV1oxMGeJ&ofE z5AvQ7k2)aez7#>nRVsG!yx_xp)ek8}n7AGM*?!uoIUrX7CC|D&StCeIVy^{IHxQunqu>)-inijzU*9+)D z2uatt-<<>iK)mB-y|S6!kNNuj7`|}SqlYfy9`>jC#XJs)neB+C)I#tJ50-XQ#=b1e zn0zS-OC35)z-Ata_wMHd*j(hX*`wT~YG8IJy)L_%Ub=W;bli1)Z-f5Zxyg?yv@Ql- zyDdtSYV$?8E6965v9>+cdoS?%m=t5T;CT&r{Bvai0af4Aufh+~VAUOnZH?ntt zmMC+aC-l4yoslxy$uAkUBa+*dt6NB!>|TjV#Mw2Luba`wM|?c@%JBS`{+9EBC=L>J z`Av)*=^{-LWbD1H%Nzl=k|aj;LVNC7FN~nr+6!RIX)w$~%j2TVGLjKL_o*`Udz?~6 zvUP%Iac{_*(xzQ7fOsaMgiJZiP0&Ep{#ib zwJ9;Q9y-~&P-5K3?>lDHVz9$#si5LrEthQ?j0qoA6L6NAwPrrF9>rDa z3gTGq!1`0?g|md|(UULaW^TH3zu3%unv6HnwI7zV=w5If`!b2JzY&r_V$PzpH*X=z z-I@G#6tc>vGSBEcnMLa-_i1)^xCnDTa~QqkxNbuSOBu7xm&x4X@*4g-^S}y!vtFH$ zPXWL9l?(mu<~WD)ahh&H!MuVX-PKBpReEx{%6df!IzV;`w*0SZl-vR6+!-Cpy*4sk zT79?$TT$}i6jYVX{y&@MyBAOMj#EwZlWjy7EJf>-33~{1+XHoe0p2cFmST=sR``7C zF}Nq~im%`mquSE&%DivyZi6wErl%|wv*#h3JWcOZNqVso^k~TMlv+bE5B(CtwM0ET zDVkiC_u7vq>!GK;{a_y0IM#pG1Ofd%-N!Fv zJWetxDvf{LOfeKza`==)uAxqXk8!Nu3{JVEp+MnR5B07fhiRdN-9OY!8x*Jf$F#ok zAg#S+`?~(6QGaayqgxcR&J84Wp@oPJD@NSDFw3!(RZj}HxE#mk@9GenlQ^)<#ez1* zeJ2ns^*7&_0;TD0J;^)w=E*z1gM@bP2qF*>66I4|Pu^vgHH0!~iC_rB_LA)#G6WQ# zbM|Ib^>yUHelTtLaCD2p#{8C<=vH6!^KJSP+|(Og?|w1Ooz$r$dUXxQW%+G(;v$&DglWqECB~L8nbM!&M z*#sE~m>2_kYOg5!-L{}3e}P(=LqQ$YfUdNWRpa-`lJoY~yjk9FT;mlGrK`b)%tzL* zBmMou0`Z-sgKSO~rku3lE<$ZdVHd-YPxU2l3MYbMlAnr9o_Z?WgHJrAli72Zc*lNo z({nsQ6YRpfYU9b|E?1}Jsh2$U;eRMx69)*ILe;}r6$2NNcD;C+8^#m#z=~*iTyY-e z19?k!%Brx*x%lNDO(@t|?MOJTu#018hr!6<+2p)^ zAk!ka)gW12Wy1)+M_75bt$;lNEd)wA#Nzc*fz!A9_#rKA#n}DAp5)AZ^0;IF62DUp z%QZyC_|H8q+b$J%ckzp7$V2{E;Pm-9`x5Y|!wR175fn_ZP)L3x{QCQW6qwh8+MBlCI+j97YH?*~`Kn!?fF_-fB?gdo<e&=CmLd*iDDGF7NwY#N?{aP6j!h0S-*a=IL3-mGouAmCh z4@ckO8^MHc9PUgG?x~g7cvSE*+yer6p`3QZ+6{lGw~IV4`Q+hW(B312y0eP0Ktc2i zo``iGtb_>sA?se+!$WY6kjmTe-L+wDz|^Rq#OIOB`bKKP?;Un6}1G-;*PKa zOvA%q;luLNJ?uQ?Lm(k?tNDk@n00euXAfRsQM-1+ZUl7qB~QKbhowDywQ^_j%K5@% z6793e#+`^o_5hiXk$olkp}&U&f2uj6a< zu9r+P0E-y6@66YS{bXCAnr8tynJJJ<`4Yd|-Xvq~P)-mF^V1b{0eiS#27zo#B)f?*1 zUfi~ex5jver$Q={I+9!@1)k4L$t06p_H&6uHdF^ZDv5*#D?TA6Bd#e6)yBQ4*ha+| zH>T98_lls2og&luKF6!dr^i8W;pIXq77R8M3x3-1wOygGU<|XMJK~-IDKM-zfz`_8 zm468RQks>`&&}D}O+$ruA$?3*uU3>jEWuE1XBL4*NHLMO!i zEL3tFA<(9nqzkqNeV)%%kgyIMM+PlC3HA`cEmT=Y$zgd0thuBhtf>VH^mZ1HMrd4^ z_!7@&Ev*7JFuTH3AbgH&)|-=|Hbwv2hHYfz9)2>B^*K^vG=Fllm_614B9;S`Vj)J> zxcJH<_`)S2C8Dlge}aZXOk$9G1Tuv{W)&a`w^bm>VMbdW*i!2YhNKks zWg=W^8iv)c2C`B01|6)j_XuV?qsn$frQM6&Qr=esYbzxn%>yNRc(z+wrZm4o!nMru5{ArrD>t&MKi}9;PL_wQ= zW4HT=bZM|EIGn)uqR5c94PcyWdzZuwQAwFI+SF7pG}AVp-Vlad8?{|*dq;w3zIsJ-_xaBv{@ z?M~qCv|$~?vX@;0dP<=28k8MvQ4VdplGv=M>5Up^d<*OA7zdk zQbfEMG48tQ{)2jX5{9c@jly=$P5RJ_qof%1(nCJTHbSO?Azm}2n)ly^jBVE;Xbg5v zoROAYGz$P~D(c(>cNfB~2nHaao8^@8>K$#!=JSAJWoE8%>zQbFx*s2A>%t| zCo}Nq1vqbudDV#w3j-q7CR4jkjJMx>|G{ddvt3iLNrWtVJ_U9_+!Xi%?0GZoL#8b` zI4&i)6KlG2zSaRQ0bPsmcA=NI#5;I1d_Tqw;N#6&7n0xUYT14_`wu{)@$?9^w8q(s>ZE)m~mnbvW91y)m6{hq|F12Bd&v;`85`Khz*xtTjFD( zdCkvn^9$9@YsFZIOXT%Sx-Mncie4Fb*b|^h&ICrBMDwm%r(8_@BV;ECW3r69r{+7a z1i6Z)>!j#J+BA4Y6zYt*ISUm{;08=kadLnInRfKb;25JW3j}JT39gC4@0f@D)_rHS zgTVjkA4SV;Ch`CXMbOp>eM23ZLIW^|8fUi4NqMf?o&;ny;I9&ukx9zJ z$|RMXVhOr4gqBu&*ot!+akW=wZWU>2pl)w8vU$we6a=$|WVWPz#9`I9*~#eBY<#+f zl5IB31wvtEI^|t!tC3}Kp=p{IQ!?aL4(4go4fL2UIP+9Dfulcw&OBgzi5B|Hs;i!G zlTF9y4+E!p4gIlR&1)tvP;>f%{`^JshdKgoFr6crJC@?LvUxUCCv8?nk2Wj4!pq(IXl- zE*wQN+cMbwqfSVs63nA_L|3`8bhlYo^vc@05$IO>u<&Ykv??9$)ztvO$S^6iX}9-; zyrtE01Ro=2Dz|YHZ38l`5pzd2lURwcY6`s)iSgWMO389>Rl2cN4pPS)x;v`K$$+1- z5HaLZv`mtl<@|;A*=B}-WP1l;{kvFwTsdUu7EnX6SsJ8G)`3-V+LkyRnLae3S6MsM z8=`-e%8#bFN=8d?Q^WPON!ZPX!+g>V+-P*IgrSyeETpun$aU4XpsQG2k(%Fx*K=b? z<}W1~)*F`z=O$36Q9koBiC>dw@i}=1&Yc z>ZK|tzgSg%jzAW%zJ)dWjRyOr0ZYEje>hDWl`jbVL;N!FCTqz0(@^d*zhh9#UgOZk zn#eCDMC=oGtbj7cO}!OnuWtU``6(zsSdSgogvbk>y8RTFZs?I9P(+>}r10onW*#z# zo}Y(02(+R>{-aGwH*|-7(;VTIHI4uy5OJ6F6O``PqM&;B9{?dsvY(48ct9hAh`6Zv zv*`~|<{OR8yCU3^enyIYMYaKqw_AJQJ$DLM1tu@zkT61am>x!vN|Wo{{22lH)XhyF zv_EeZEa`)e0CMDHNTy(kL|jUWUFm@iyo|VBjr-fQIJrmw>g+c&l>Sd zs`}BsRGwYgG6F7;-laj5PAVX9x!wd*P~Gg`6A%O>(J%5_0^hyYN6rYeeDzP+kCGym z?&&I*?(YZ$3IJy*At;~TA`?Du&{u>=AD;HlAj|0tkl%Q%-2LoxJObP&c!T%y z8)vQ3iQ8Zhz8U z#h>|?SAF%5-}1}uYT)_*dfv}{^7X#EdgzOfoPW=2o_dkHdi45Nyy$P2Pb_m+gS+p1 z+rO+Vz9N10`@em~f4=?Bx4Elb|MBl$^r;t~a92Ngq{{A0*!(HwD%(?G9?>WExC3p43 z^Zw~Gk8gW)#9iGpv+cCsTK*4rxvLXTJaOyT{>M`cR_0$j^zDE7)S!EI!Sg@!E5FzC zm9yPd{qut_{y$IL{T6pM@U;*A%eTurzT>Wr*Pi^HkKc6X%iPtEE`R&#M;`gWtK8K$ zKKZ>5jDC9EN_X|SC%=5g>wZ2;q5k2U-uR-={N4-N+_QiGw?DgV`!782GY*M06S zpBw(gg1dTC=gqJE-dV3X=&nu+uikm(Sh2fa{^=E+hyTc3UBBvvGhX|xAAHhXJ+}7!Pkf>O4d=S6ZydPouP-hA;T7)cJ0EKQ zzn}kKpZvDF`ioB=-1bj@u=n&!#zq^rOkdKd-!d^f*En#=Y-8+_iK+4W{)@*NqjUAy zizlX6ui3bMBjW7(W%w5fc^pKX%FF#J0vL6B?Ut)D61nnb}LW@0}W(o0y*ZnRGZYS8rT0IzBo>IeSTcYVYp4 zQ1-J%!M^&Kx@^0m(U@-Zod_?A&p+W`=#|{{`T32k0`biS&(mwq^A3fP_j1Y`_-p6y zs?o7sqjNi^r-rBZPR$*-vN1X}cX?y_)^X4@J~4I6d?B)WcT%=d|BaMI%DX5#DMxp! z-R_CW`t02FRDEW2VtizDZf1IRLO5>J$0lYb>Qi&xiM0LaDK+k&QkE$Hin2`k)%1Q= zFS|cFHMV2AF)}f}zfqsrJ2$FcN4D+VJwqD;q+Ul$+n?jQhwH_CWPNAP$EK&|fN5lJ zV`8jPXSoFOcztwya$>5!y#JrEvbcY593d)&HyX`J%`!4tI6>WGVj#^FqG`-c)%VYd+NU6MBfJr# zohE^06`8{i=|^-ClpWq8O3~3uO7X$7C^hHZqf?_u(0qQ2>1~{P!vBw>w^PyAbz+d~ zrX~-(VDIGQW}8IgrXBUE8|t$Y<9kOZH#eql7@ZqUpUirnWjw9H7b(xA{5qxJ6ob$n2X@1dH`ez6)^_C9;??6; z*vGXFk@o#1MnIQq@mj8vIqOaoHQh)|Hn!Zb+AY@$YTr0HJ$G#;M=zfoo!AYBwn*aq z*=+XEv9F258xc75n;nCsXn66=EsfFf`n3}jHmmgUbu%~C>r)G7Yk)1hl`KMtz1-RxWi8jN)W(mjS*3pK;*o&ve+$8M&Y_p1ie}!bmffUqMyk2*!R)9Vo;EZtj z-Uh~oX{H;dXHm5FmDRfip);Egb3w##P}!+lMcK1 zHYCWu0%Z0!Y;!+^#O%uoUN~Z3p5fkoRq+GQUUggX%bsN>SA5^I9|ElSMVJ0o@t^70 zkI_3l{f^v@}T0M;eMLD;`j05Y28_dr1Dmy zwKoIX5BOt%Khc9vb@*I~|Mjo?gRlM8_Abxc-k9Ed~F*y?yZI-}1nt6O@=zVhd!Hn&fgR)431QPV)9Ml#)e% zoc5!&K|_p>*T-}HoYl!}f=uUU`Z|@-vMDsysCay^+sO{Q7}-0+deUQ4r=Ci8o=SGP z$)sk0MnU(#lQAR@GgBZNC7WXg_bK2V6$=Qc43>0^O#f<>OeE)c3VR&h(g!1BJ4UB& zX~ETEyf%#5N5-*N8V%}YdM?v%dmZ5v}$&L#>rBL^bu4x z_{i)EGig|QxeIj$H!;ieFEa<(1KC(^{bp%BSs!DW7UM5l_iVj$D{>^29JcCCim#3w zezYc|?pC(?4xDiy$pC70w0*jDeXd)bPB+m&7?bNN$wURuU!Sxw7YS`u1(@ZPKk#Qw4SxVSn;M=fy@COv|CP+?bY^0(;GXziz|2fpvrHhSqId-@ks%`nBuVtzW->!}@{sgX@RZZ`{zoVaLsSTnG8VBNs_feix#1A_xY0~-g484Ru+TsOFWaKqrh;NalU z;Krf;p*2Hmht>_PAKEZ9Ff=$cG_-LeAZ}!MVjy(1kxCmkCXI=?9nYVZ-*>fQCGwxg zXRn?zvb%Z;U-jCF*;&lin@1=2*00!)tZZJ4)$7QQ7f$S+m`hv8N1LW61nLy_l>Gb` z;|t7~;JoR;Oucz^BWBj+snPlpT%VhF>k51IMob$F{p+^vq}An(12c2eW_8UDo8xJK zBzxy}ct--qME~1I!LufR&Gm~ZwVvHx@`;bI(%;3TapuL?sJzB_E9N}z-=&xCow~I# zI@5RI)_8g<9-WG}0`1nAdGD>$!ZWom)h`taWU1R`Q?h3=S@cYQ`ri5{E`+nazd9rG zzRKU%`TG`s|IXi&{QZc(!kL&b{PplBQ$v4ZRQ<_hY5mje^tXj}WBg6=_X_@A&EK2( zJI>$z{QWL}5ApYopgWU#yX$kK`}%3Cf2GNZvHH}kO)$Ln>YLnM?x(ZUb?TR7kG#sb zf&mjV=38?2xke%cN@ioT2xjAKs7vD=Ss3P`c$-{`0~f`Z?Nf8{vtt)gNP8_dW*O04 zw5_>#<2oFn>|ePtOEAtozQl#(&R;(?4wntCS-XAX!214;>&IcS!GZeP?fu*O*N$!< z8(-58lMG0<*uUl0$H**nH!{0pl-R~CcHftj^3GkBK}?u$0e;T5S~o6@ytc7P;tvjL z0k-Di{`1HBx33@XA0HjsxMth7?Q7SpAL}35HZ-=Of8B=B`oQ?Mq5k^D(RJHUgKw+n zy$Y;+NiO|TS}@`% z>$Q-D`qX%e)MWqKF@#6VBzAX1^7>bHrs4$CHnz~cf=qf!X;J-a%i|`F^mVT|J%d56 zZ(jHvK4Sh(1zS6z8E4i}Dg7t-vi^0;>KH7pf}ZQ&V))WAN)Pj_VzTB2Jg$a8(u)7~ ziP;fDoP*K&QlDABy3vl2*$P+otlgO>*#6ec;7rFoX`L%(b&Xh~{n;!m?4oz96H$;ei)>tEZ~f3w8nqIVN*}qpPdA>_RO{MwTD&f` zDS4KSx77TeuHVHt?i!KdO;~d882a47mC;nu++KGt!%;=+nYu)JlHD)0taH{rT5Q_4 z)OWq2KIJkVz~n{&jpq{c)HKm0K1f~lQMrlydpcZ%L^oBZh0emqe+=Drr*zlCNQU;Klt;Eywt7h_Km<_%gTGB9HNo z>04vQKG5Of9T&$hoSvSE(bE%?@x&Yz6*-)ZUr}#NUlh*~`ix~XF^p3yTQ80`W0;M{ z+v;OdSRL$?#1m8drpGLJN9C!h={W$~JGMhWG!CSoOmB}zqwz{k>r2sdsVS3knbYB9&W-438&4lU z4c+%Rd6E0>);{fNDHz(Dn@d(Jqx<#+Jv3!|PcyQdZ6N)(_9tAEMqY<{}#NuAtg9O>y{s7SuIFpv5=m5k5(Zjk`l{JPXnYnTv`nAsbG z%f@N3ePr{Ta-2*TwaiuX)IaN|<^I#b8wqDE`eT;%SwD;ECWS>bYxr#C0qZA~V_8J& z$Mj?LbBaD>@Z2KtnLS?&3y-{_=@5Nu(rIy0ZejCY3(QZe+n1%Wu8~vF|5D@sv^@0F z(DL#{>q1P(CY90BQt+HYH=MLq%dsbCv;7)&$k?#4zO(fzHg8$m|F4#7>uswD!sZgw zxVgKzv;ye>4@ju=0eFHJlBPiw^rAF2@yU=A8SEi6w-A#?{L;t_Hvhe z^6*%+N4<{*TEdyR@=`;!&+L|uqq)rSd!_$qPqU2k^0U|bd7U2osCQ3jOu~Zf0Eu+Q zx=HE+W1*Kn7M(<$tJXbd|B*KOa&+(G`P_rKA_9^yD_OtrB9RXDt)z??h98oXczhtBUW8H+MUjel%}+=pmZYIbNslW z-jVslypVBgp;ruQiS(v&zM1ZoXx?nbxpRJ=w)A+-ZH>8nqO8UArhO&bAn>==E?uk0 z_r5K8-aY}2Qlv&BkKxyY13Ig!k7r6bbvjYCkUpbT4 zOa~*xsyEE6V2Rc}fHy&oo4QPS@AAcN+AjruBt6D^WHG?EY%u%NRy0>7b3v}nD_O0j z7+`=R=RIr1F@yzcmWw?l_O|SMr|}cRgQ2ALf0-6p>!=1m%VTVX>aIahff38))?yDsS1g}2))VO<;rm#o*C#S#K4&dPnA zKeXVZ_p=~ZlpL|N4cZE!W0u;nrA&X&+3mw?m<|EaDG=xzp3TmR^T7qUt~kPnO>28x zbzG0(^j>mNi{2Xm_^@t*)hhtUDc;esh6g@^FF%|+H>FI61|z5;H8Ogq;<` zNvBu*K0|N__bP(|_!$TcgaVfx_zy_O;Td2DaO#ab2*{fW*sKdr;W_J_W8Ys~Ttc#p z1`1E_VnFI-5J(In3N}U3Drg~9+>QR<0RRNANMy$WmzFltEwyp3) zehq2yvEL+zEcvn+u#46Fj@9?;iptmtU*fX1!WyMB-%kq)atwK-)ytUac5-ZQd!Oqy zD5P`~?3&D(rWK-oWBc3nZZ`voWJBlUym51WIoog8Sxf+|fhn0C`dw`B^<#eI&c55= zM^l{E<+n+<-T9X~?32>>s@SeK)MdiI+uFakwf{D3e@M7-Phh7)XKW)c1{kLlg^%q9 zRA;DwFRL#Th$r$~Hd${$Z-4o<^|gFL_I5`I#P=_s;*=grK&>w&E?diXGkzfWO>N}+ zVdeQ47w6S>e)epeEp`YHA+KI>4G(QCE}~o!v!|`3j-U|*bEDVCth0V3IM8v4gJdq@ zADWis1_6W|@aA9hhz4O=@v=y_5h23l^D2+OR;!Q_@WkevsI1oKR^GMp{TQ~4vM;RM z`_>D8&HU2JmW~KVKN^pJ9m}QeSKj9N_|@#q8Nmv;cF@dkt!&fA)6lLTcUt(J)!E*k z0b+(o_Ml$td#iIVCOBFUVqBQEpE>Z=gyOMA4_HS03)7m>5~?E4@2$bN$?Wah;R)Xw zJP`=Kv>{f8X-i3)Snsb4kS1jWvoP)K(KL9b)(7qjN?drWMXU|eeWM{R-j#D(%klDE z((;S*FqDO+1e(LbE|vgi$7SdPZwZ)B$PUw1yjLM!IFX4;mNLS5m>$G+e59xz;XX{; zaXpGEW=Cs>Wk2x)X(z5@$XfxfplnZSKrZc2LKoQSu*!^{T`RwDFv!+lBwGZ$Fl_`G#{IRuSYbYaO-x&d;ql2HKAMqqw!xwv{&!u- z-!VTv;P2$Jo#$~}|Bm)6w6Ojik0ana>oP6HP-6Uc-+^VFB;4R-wQ*i6UV?L$aST79 zE3RWz=rZ{z>uWI5e{<}4cMvHJodW{1b_IFN_N3!(3`fTAk6D0}i|^eOF2^4{Wg zKw^{jepgJ! z0%RR+=k0~tlCzXXwVCWNG9qQ}w&t-%=(3cqd96=#(jFU{p1hGh&DIYvd*d0)oAy`k z4wdz5W2&a#cVs^6$e4QnP(t>R@Ah}&n9;o^`|0w-Qf}|oXfb^n9id9gEO{P)KG~M3 z$>-Bj$T;sgk~?0OrDLxe?_-03d{}edpO==zJU*m;v(qxq@2$~fcE6~sSMsPq__5Bo z9fAjy=MEUeYE2{p#MG#73+1t9!S6UV(nu zmZ?de7NR>B-{d4>%2pY%m?&V;_$^L6BV9r|+jL?%_!nO*8k z!w^Id2*R4?Fa{hq<%jx#`_c0f*3z}z(6udZAR@iRI@ej>jlk~%f2_i$LT9(+d3edf zGGDua`R-3=u0d~GpTcr#5{qn#SFi#T=4TJC^|!}_ z_-i$JI?FsSPuI2^Ibo`{bpdrQ?gQfex$15yoTsa9YAe=gQoTt`0-TZ34;GqKcUGSm zVSem`sYxDkHja;bd4za1_KJYZP6wmDMzMRi3@QH^06^U2dh$_m9K_Ys!y^q`A9vuw zTuuO6A5SJf$_IS%v!4m?lT71Ltjy2RRbi>cFe?R~m8i%z#fRa718SR0} z^C-0ZzxKgLppS$#$<3z3%KUwEEIGPwx5cJ})TB?e(C0k)$*mP>xsE>cxK_o@j&#zF zpL2fxM`y6}^535Sq;X!Hnssh^W^ciOh~H_)ik^F72Xn|iS3?=gneHUm4CcA~^E;Er z4b5z+7^3XwzVpuQ7t?jd-f}FpSH)@bm}Jvfwoc7s`8qX>)eZU80KTtfZCnd1hI{IW znKDP)=D!6LLVR+T{9Fv>!n#VlJRNf<9TV&65hRZJpgv|Km8EXW*oTYWqzlm74@=xOPz literal 0 HcmV?d00001 diff --git a/contracts/compatibility/fixtures/mainnet-profile-1.2.0.wasm b/contracts/compatibility/fixtures/mainnet-profile-1.2.0.wasm deleted file mode 100644 index 0c380436c57ddcf411a82e473cda9c21ea744b27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16148 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 fhi4DZ%v2X<4<1@vn3 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 HsH6V}Cy#yB literal 0 HcmV?d00001 diff --git a/contracts/compatibility/fixtures/mainnet-state.json b/contracts/compatibility/fixtures/mainnet-state.json index 3f4f170..98a4bb5 100644 --- a/contracts/compatibility/fixtures/mainnet-state.json +++ b/contracts/compatibility/fixtures/mainnet-state.json @@ -1,7 +1,7 @@ { "protocol_version": 29, - "sequence_number": 64747647, - "timestamp": 1791024017, + "sequence_number": 65003455, + "timestamp": 1792303057, "network_id": "7ac33997544e3175d266bd022439b22cdb16508c01163f26e5cb2a3e1045a979", "base_reserve": 5000000, "min_persistent_entry_ttl": 2073600, @@ -10,7 +10,7 @@ "ledger_entries": [ { "entry": { - "last_modified_ledger_seq": 64460331, + "last_modified_ledger_seq": 64998960, "data": { "contract_data": { "ext": "v0", @@ -20,7 +20,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "b87365c16102f7242a8fc3e770f615991841741c40673bb241cb254130be4c26" + "wasm": "acf70ca019f75ee6bc60f7806254dfb3508fd5a76634c708977e6030870dc654" }, "storage": [ { @@ -80,7 +80,19 @@ ] }, "val": { - "string": "1.6.0" + "string": "1.8.0" + } + }, + { + "key": { + "vec": [ + { + "symbol": "MigrationCursor" + } + ] + }, + "val": { + "u64": "271539957145796617" } }, { @@ -230,7 +242,7 @@ ] }, "val": { - "string": "1.7.0" + "string": "1.8.0" } } ] @@ -244,7 +256,7 @@ }, { "entry": { - "last_modified_ledger_seq": 63718136, + "last_modified_ledger_seq": 64998878, "data": { "contract_data": { "ext": "v0", @@ -322,63 +334,7 @@ }, { "key": { - "symbol": "release_kind" - }, - "val": { - "vec": [ - { - "symbol": "Single" - } - ] - } - }, - { - "key": { - "symbol": "remaining_escrow" - }, - "val": { - "i128": "0" - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "vec": [ - { - "symbol": "Completed" - } - ] - } - }, - { - "key": { - "symbol": "title" - }, - "val": { - "string": "End-to-end contract test \\xe2\\x80\\x93 single winner" - } - }, - { - "key": { - "symbol": "token" - }, - "val": { - "address": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75" - } - }, - { - "key": { - "symbol": "total_budget" - }, - "val": { - "i128": "100000000" - } - }, - { - "key": { - "symbol": "winner_distribution" + "symbol": "prize_floors" }, "val": { "map": [ @@ -387,97 +343,11 @@ "u32": 1 }, "val": { - "u32": 100 + "i128": "100000000" } } ] } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 63841346, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "Event" - }, - { - "u64": "271539957145796610" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "content_uri" - }, - "val": { - "string": "https://api.boundless.fi/bounties/2c4e884a-aca2-46dd-a02b-bdc98e7c1ae0/content" - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": "1785415413" - } - }, - { - "key": { - "symbol": "deadline" - }, - "val": { - "u64": "1786057140" - } - }, - { - "key": { - "symbol": "fee_bps_override" - }, - "val": "void" - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u64": "271539957145796610" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "GDX7CNDBKSTWGHS5QDUJC2KK2RUWDR43AVNJPUG5MZ5EEOKHRDSJ37TD" - } - }, - { - "key": { - "symbol": "pillar" - }, - "val": { - "vec": [ - { - "symbol": "Bounty" - } - ] - } }, { "key": { @@ -516,7 +386,7 @@ "symbol": "title" }, "val": { - "string": "Muwa Creator Bounty" + "string": "End-to-end contract test \\xe2\\x80\\x93 single winner" } }, { @@ -532,32 +402,7 @@ "symbol": "total_budget" }, "val": { - "i128": "1000000000" - } - }, - { - "key": { - "symbol": "winner_distribution" - }, - "val": { - "map": [ - { - "key": { - "u32": 1 - }, - "val": { - "u32": 60 - } - }, - { - "key": { - "u32": 2 - }, - "val": { - "u32": 40 - } - } - ] + "i128": "100000000" } } ] @@ -570,7 +415,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64164377, + "last_modified_ledger_seq": 64998878, "data": { "contract_data": { "ext": "v0", @@ -581,7 +426,7 @@ "symbol": "Event" }, { - "u64": "271539957145796611" + "u64": "271539957145796610" } ] }, @@ -593,7 +438,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/bounties/513b62b6-047f-4843-96c9-53593c6336eb/content" + "string": "https://api.boundless.fi/bounties/2c4e884a-aca2-46dd-a02b-bdc98e7c1ae0/content" } }, { @@ -601,7 +446,7 @@ "symbol": "created_at" }, "val": { - "u64": "1787925823" + "u64": "1785415413" } }, { @@ -609,7 +454,7 @@ "symbol": "deadline" }, "val": { - "u64": "1787935800" + "u64": "1786057140" } }, { @@ -623,7 +468,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796611" + "u64": "271539957145796610" } }, { @@ -631,7 +476,7 @@ "symbol": "owner" }, "val": { - "address": "GAMLW7AE65JHO5YZDPAGONCHZY5R3FKMWM7KVPHXSRUOW6T6LO32S2DH" + "address": "GDX7CNDBKSTWGHS5QDUJC2KK2RUWDR43AVNJPUG5MZ5EEOKHRDSJ37TD" } }, { @@ -657,7 +502,7 @@ "u32": 1 }, "val": { - "i128": "150000000" + "i128": "600000000" } }, { @@ -665,15 +510,7 @@ "u32": 2 }, "val": { - "i128": "100000000" - } - }, - { - "key": { - "u32": 3 - }, - "val": { - "i128": "50000000" + "i128": "400000000" } } ] @@ -696,7 +533,7 @@ "symbol": "remaining_escrow" }, "val": { - "i128": "300000000" + "i128": "0" } }, { @@ -706,7 +543,7 @@ "val": { "vec": [ { - "symbol": "Active" + "symbol": "Completed" } ] } @@ -716,7 +553,7 @@ "symbol": "title" }, "val": { - "string": "Boundless Team Quest \\xe2\\x80\\x94 30 USDC to Top 3 Entries" + "string": "Muwa Creator Bounty" } }, { @@ -732,7 +569,7 @@ "symbol": "total_budget" }, "val": { - "i128": "300000000" + "i128": "1000000000" } } ] @@ -745,7 +582,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64744258, + "last_modified_ledger_seq": 64164377, "data": { "contract_data": { "ext": "v0", @@ -756,7 +593,7 @@ "symbol": "Event" }, { - "u64": "271539957145796612" + "u64": "271539957145796611" } ] }, @@ -768,7 +605,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/bounties/2ceaee23-1e0d-4c5e-8aa2-b407574f6274/content" + "string": "https://api.boundless.fi/bounties/513b62b6-047f-4843-96c9-53593c6336eb/content" } }, { @@ -776,7 +613,7 @@ "symbol": "created_at" }, "val": { - "u64": "1788187059" + "u64": "1787925823" } }, { @@ -784,7 +621,7 @@ "symbol": "deadline" }, "val": { - "u64": "1790355600" + "u64": "1787935800" } }, { @@ -798,7 +635,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796612" + "u64": "271539957145796611" } }, { @@ -806,7 +643,7 @@ "symbol": "owner" }, "val": { - "address": "GAA6HG7FCNPKSS6CQLN27GUIMWJJMLDCSBF64G5QWM4HH536KABLFD4Y" + "address": "GAMLW7AE65JHO5YZDPAGONCHZY5R3FKMWM7KVPHXSRUOW6T6LO32S2DH" } }, { @@ -832,7 +669,7 @@ "u32": 1 }, "val": { - "i128": "500000000" + "i128": "150000000" } }, { @@ -840,7 +677,7 @@ "u32": 2 }, "val": { - "i128": "500000000" + "i128": "100000000" } }, { @@ -848,79 +685,7 @@ "u32": 3 }, "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 4 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 5 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 6 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 7 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 8 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 9 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 10 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 11 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 12 - }, - "val": { - "i128": "500000000" + "i128": "50000000" } } ] @@ -943,7 +708,7 @@ "symbol": "remaining_escrow" }, "val": { - "i128": "500000000" + "i128": "300000000" } }, { @@ -963,7 +728,7 @@ "symbol": "title" }, "val": { - "string": "Stellar Vietnam Mid-autumn festival Track 1" + "string": "Boundless Team Quest \\xe2\\x80\\x94 30 USDC to Top 3 Entries" } }, { @@ -979,7 +744,7 @@ "symbol": "total_budget" }, "val": { - "i128": "6000000000" + "i128": "300000000" } } ] @@ -992,7 +757,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64725863, + "last_modified_ledger_seq": 64744258, "data": { "contract_data": { "ext": "v0", @@ -1003,7 +768,7 @@ "symbol": "Event" }, { - "u64": "271539957145796613" + "u64": "271539957145796612" } ] }, @@ -1015,7 +780,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/bounties/c369f344-0563-4812-b4a6-6a4831be543e/content" + "string": "https://api.boundless.fi/bounties/2ceaee23-1e0d-4c5e-8aa2-b407574f6274/content" } }, { @@ -1023,7 +788,7 @@ "symbol": "created_at" }, "val": { - "u64": "1788187155" + "u64": "1788187059" } }, { @@ -1045,7 +810,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796613" + "u64": "271539957145796612" } }, { @@ -1079,7 +844,7 @@ "u32": 1 }, "val": { - "i128": "2000000000" + "i128": "500000000" } }, { @@ -1087,7 +852,7 @@ "u32": 2 }, "val": { - "i128": "1000000000" + "i128": "500000000" } }, { @@ -1105,161 +870,34 @@ "val": { "i128": "500000000" } - } - ] - } - }, - { - "key": { - "symbol": "release_kind" - }, - "val": { - "vec": [ + }, { - "symbol": "Single" - } - ] - } - }, - { - "key": { - "symbol": "remaining_escrow" - }, - "val": { - "i128": "0" - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "vec": [ + "key": { + "u32": 5 + }, + "val": { + "i128": "500000000" + } + }, { - "symbol": "Completed" - } - ] - } - }, - { - "key": { - "symbol": "title" - }, - "val": { - "string": "Stellar Vietnam Mid-autumn festival Track 2" - } - }, - { - "key": { - "symbol": "token" - }, - "val": { - "address": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75" - } - }, - { - "key": { - "symbol": "total_budget" - }, - "val": { - "i128": "4000000000" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64440680, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "Event" - }, - { - "u64": "271539957145796614" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "content_uri" - }, - "val": { - "string": "https://api.boundless.fi/bounties/302dde2f-23a8-482f-b6cb-2d7bacc22d64/content" - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": "1789469950" - } - }, - { - "key": { - "symbol": "deadline" - }, - "val": { - "u64": "1789513140" - } - }, - { - "key": { - "symbol": "fee_bps_override" - }, - "val": "void" - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u64": "271539957145796614" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "GAMLW7AE65JHO5YZDPAGONCHZY5R3FKMWM7KVPHXSRUOW6T6LO32S2DH" - } - }, - { - "key": { - "symbol": "pillar" - }, - "val": { - "vec": [ + "key": { + "u32": 6 + }, + "val": { + "i128": "500000000" + } + }, { - "symbol": "Bounty" - } - ] - } - }, - { - "key": { - "symbol": "prize_floors" - }, - "val": { - "map": [ + "key": { + "u32": 7 + }, + "val": { + "i128": "500000000" + } + }, { "key": { - "u32": 1 + "u32": 8 }, "val": { "i128": "500000000" @@ -1267,7 +905,7 @@ }, { "key": { - "u32": 2 + "u32": 9 }, "val": { "i128": "500000000" @@ -1275,7 +913,7 @@ }, { "key": { - "u32": 3 + "u32": 10 }, "val": { "i128": "500000000" @@ -1283,7 +921,15 @@ }, { "key": { - "u32": 4 + "u32": 11 + }, + "val": { + "i128": "500000000" + } + }, + { + "key": { + "u32": 12 }, "val": { "i128": "500000000" @@ -1309,7 +955,7 @@ "symbol": "remaining_escrow" }, "val": { - "i128": "0" + "i128": "500000000" } }, { @@ -1319,7 +965,7 @@ "val": { "vec": [ { - "symbol": "Cancelled" + "symbol": "Active" } ] } @@ -1329,7 +975,7 @@ "symbol": "title" }, "val": { - "string": "Boundless Content & Visibility Bounty for SEBW" + "string": "Stellar Vietnam Mid-autumn festival Track 1" } }, { @@ -1345,7 +991,7 @@ "symbol": "total_budget" }, "val": { - "i128": "2000000000" + "i128": "6000000000" } } ] @@ -1358,7 +1004,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64599980, + "last_modified_ledger_seq": 64725863, "data": { "contract_data": { "ext": "v0", @@ -1369,7 +1015,7 @@ "symbol": "Event" }, { - "u64": "271539957145796615" + "u64": "271539957145796613" } ] }, @@ -1381,7 +1027,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/hackathons/ed56ed9b-0ba9-47b8-8aec-87b69cc83749/content" + "string": "https://api.boundless.fi/bounties/c369f344-0563-4812-b4a6-6a4831be543e/content" } }, { @@ -1389,7 +1035,7 @@ "symbol": "created_at" }, "val": { - "u64": "1789571859" + "u64": "1788187155" } }, { @@ -1397,7 +1043,7 @@ "symbol": "deadline" }, "val": { - "u64": "1789736400" + "u64": "1790355600" } }, { @@ -1411,7 +1057,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796615" + "u64": "271539957145796613" } }, { @@ -1419,7 +1065,7 @@ "symbol": "owner" }, "val": { - "address": "GCT7D6S5VTFGEURS6ZYIO33YZRPQMA3LNWB4GEOHDFDXZGWTA4EPIM5E" + "address": "GAA6HG7FCNPKSS6CQLN27GUIMWJJMLDCSBF64G5QWM4HH536KABLFD4Y" } }, { @@ -1429,7 +1075,7 @@ "val": { "vec": [ { - "symbol": "Hackathon" + "symbol": "Bounty" } ] } @@ -1445,7 +1091,7 @@ "u32": 1 }, "val": { - "i128": "2500000000" + "i128": "2000000000" } }, { @@ -1453,7 +1099,7 @@ "u32": 2 }, "val": { - "i128": "1500000000" + "i128": "1000000000" } }, { @@ -1461,7 +1107,15 @@ "u32": 3 }, "val": { - "i128": "1000000000" + "i128": "500000000" + } + }, + { + "key": { + "u32": 4 + }, + "val": { + "i128": "500000000" } } ] @@ -1504,7 +1158,7 @@ "symbol": "title" }, "val": { - "string": "Pollar Hackathon: Build on Pollar" + "string": "Stellar Vietnam Mid-autumn festival Track 2" } }, { @@ -1520,7 +1174,7 @@ "symbol": "total_budget" }, "val": { - "i128": "5000000000" + "i128": "4000000000" } } ] @@ -1533,7 +1187,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64609068, + "last_modified_ledger_seq": 64440680, "data": { "contract_data": { "ext": "v0", @@ -1544,7 +1198,7 @@ "symbol": "Event" }, { - "u64": "271539957145796616" + "u64": "271539957145796614" } ] }, @@ -1556,7 +1210,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/bounties/77704abb-02e5-4d13-9a63-780bb8bfa173/content" + "string": "https://api.boundless.fi/bounties/302dde2f-23a8-482f-b6cb-2d7bacc22d64/content" } }, { @@ -1564,7 +1218,7 @@ "symbol": "created_at" }, "val": { - "u64": "1789587431" + "u64": "1789469950" } }, { @@ -1572,7 +1226,7 @@ "symbol": "deadline" }, "val": { - "u64": "1789772340" + "u64": "1789513140" } }, { @@ -1586,7 +1240,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796616" + "u64": "271539957145796614" } }, { @@ -1594,7 +1248,365 @@ "symbol": "owner" }, "val": { - "address": "GD6YISBW2D6MNFHSBGQLQU4RPWTRJGJ2OFDDRPTF7WHOHUTJBQOAWHNS" + "address": "GAMLW7AE65JHO5YZDPAGONCHZY5R3FKMWM7KVPHXSRUOW6T6LO32S2DH" + } + }, + { + "key": { + "symbol": "pillar" + }, + "val": { + "vec": [ + { + "symbol": "Bounty" + } + ] + } + }, + { + "key": { + "symbol": "prize_floors" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "i128": "500000000" + } + }, + { + "key": { + "u32": 2 + }, + "val": { + "i128": "500000000" + } + }, + { + "key": { + "u32": 3 + }, + "val": { + "i128": "500000000" + } + }, + { + "key": { + "u32": 4 + }, + "val": { + "i128": "500000000" + } + } + ] + } + }, + { + "key": { + "symbol": "release_kind" + }, + "val": { + "vec": [ + { + "symbol": "Single" + } + ] + } + }, + { + "key": { + "symbol": "remaining_escrow" + }, + "val": { + "i128": "0" + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Cancelled" + } + ] + } + }, + { + "key": { + "symbol": "title" + }, + "val": { + "string": "Boundless Content & Visibility Bounty for SEBW" + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75" + } + }, + { + "key": { + "symbol": "total_budget" + }, + "val": { + "i128": "2000000000" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64599980, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "u64": "271539957145796615" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "content_uri" + }, + "val": { + "string": "https://api.boundless.fi/hackathons/ed56ed9b-0ba9-47b8-8aec-87b69cc83749/content" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "1789571859" + } + }, + { + "key": { + "symbol": "deadline" + }, + "val": { + "u64": "1789736400" + } + }, + { + "key": { + "symbol": "fee_bps_override" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u64": "271539957145796615" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "GCT7D6S5VTFGEURS6ZYIO33YZRPQMA3LNWB4GEOHDFDXZGWTA4EPIM5E" + } + }, + { + "key": { + "symbol": "pillar" + }, + "val": { + "vec": [ + { + "symbol": "Hackathon" + } + ] + } + }, + { + "key": { + "symbol": "prize_floors" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "i128": "2500000000" + } + }, + { + "key": { + "u32": 2 + }, + "val": { + "i128": "1500000000" + } + }, + { + "key": { + "u32": 3 + }, + "val": { + "i128": "1000000000" + } + } + ] + } + }, + { + "key": { + "symbol": "release_kind" + }, + "val": { + "vec": [ + { + "symbol": "Single" + } + ] + } + }, + { + "key": { + "symbol": "remaining_escrow" + }, + "val": { + "i128": "0" + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Completed" + } + ] + } + }, + { + "key": { + "symbol": "title" + }, + "val": { + "string": "Pollar Hackathon: Build on Pollar" + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75" + } + }, + { + "key": { + "symbol": "total_budget" + }, + "val": { + "i128": "5000000000" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64609068, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "u64": "271539957145796616" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "content_uri" + }, + "val": { + "string": "https://api.boundless.fi/bounties/77704abb-02e5-4d13-9a63-780bb8bfa173/content" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "1789587431" + } + }, + { + "key": { + "symbol": "deadline" + }, + "val": { + "u64": "1789772340" + } + }, + { + "key": { + "symbol": "fee_bps_override" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u64": "271539957145796616" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "GD6YISBW2D6MNFHSBGQLQU4RPWTRJGJ2OFDDRPTF7WHOHUTJBQOAWHNS" } }, { @@ -61348,517 +61360,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64716336, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GA3NAZYKIAQWJHXCUORX3FUXZCCMWRFIKJFEDMLEUFMCWELYD2LCDWON" - }, - { - "bytes": "7df45e73e1f1ca2a14c8ba51be5d2cfef64e9eea2c285be8a47f29ee5460fe2c" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716188, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GAA6HG7FCNPKSS6CQLN27GUIMWJJMLDCSBF64G5QWM4HH536KABLFD4Y" - }, - { - "bytes": "f31a7387db05aa230cad42fe88e688a01204efdee24c35dad7e61f4305ed2d92" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716191, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GAA6HG7FCNPKSS6CQLN27GUIMWJJMLDCSBF64G5QWM4HH536KABLFD4Y" - }, - { - "bytes": "faacfd79449f482be0fd1fcd79b52c9ec1e5d443b3344a0bc371ad693198d898" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64744258, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GAJOAYF7JRQNPAFECS7SDYAKPPZHEUVSDMHFHPKYWYWECIDAMTTFUBRW" - }, - { - "bytes": "2a985dfec5725f2b39ecd7d80d4b3918371094b07cd192228a6bf6c8afbfeebc" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716452, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GB2DG2EQGAUIW6VFQ5I62RMXJBWUBAKYBKCY77Z7UEJUCYHX4IPEGEOA" - }, - { - "bytes": "817334f6619850a492a30016f581065f46a8d50a72ad9de37e262ec657038205" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716661, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GB4O24QI4GT65UXRBH2ZVXPKDCS3HF7UXSCW4ZBU4JUE52RAS7OS7GNH" - }, - { - "bytes": "56fde4b86b5368984c68f7d66509fea53d53ff59c59bd9c5bc1623ee6b5dd173" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720595, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GBMFSMT3OK6T7LOWJBINEAGN7W26GLOCAFOV5GQU2ORSHI6Z2SBFP3OM" - }, - { - "bytes": "7d6d9f14d881d4353ee8d95b1301e39f9f84d577f58168c71eab9f401f6bdebe" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64725863, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GBZIEOJ4VXBSNSLQQ73ZXLACAOU7PNR3JIOMT33PYE46UTB47PLIYIPC" - }, - { - "bytes": "d16b2d324b714b5e9f7f32679d82b734f79b95fcae3c862a85862cf10ae6e2b9" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716227, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GC3Q4CJXKLYESHLL4C34CT3ENOT4TXDO3W4PRIQ3C7TC4FHTRAQ5S37J" - }, - { - "bytes": "6967139714f2257e15279f0bcfbbb9a511ff9aa31345f0eb0d91d21603613fa5" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716417, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GC7PKCYZRRDRT6HBGPPON4NKQGHKNJJJQ7JN74TM5XBHFH7JBVI7LBR6" - }, - { - "bytes": "b8707f7958a6f9dce24330631cc5e7bca2a461d93961c0f1f5dcfefc40b21254" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716248, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GCFZKKIYA4QFR2H2QZZ4QHRPZBUU7XRILEQHNYB2FTYRSP7XGP6F645Y" - }, - { - "bytes": "9d3b2a9bd6b7e85b73cc3e11ba3e00b7181bc9a0fd66979059f37b5c00673e2f" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716883, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GCWZYXNRZLK3XNGUYH36UZZRQGEU47CRUNUPKYHZP7PJFNHBZC7Z46EP" - }, - { - "bytes": "38496d6edbdcfd55cb10d91ec919b96491cfbc3720d08913bc1675ce2348fb61" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64731045, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDGZXEANOXIJRO5CGHDUTWDARC43OBEFWZF2ORWCMGTMQD6OELJ5VQPF" - }, - { - "bytes": "5d0047ed8b56184af933efb74fc34a0038cf02bcaaff208bdaeca4a23e2a5d16" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64718487, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDHEFAG7XPZ4UZXDT7OT342PYTCF7OQQ34LZJNOWK5CLRLTLXJAYENKI" - }, - { - "bytes": "643855ab1d882ef7ce2bdb6db9ab4d369ed4777cf80cacdec75a8d3c5e520ca9" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717681, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDJUY3N2IVMYWPWL5CHEIGQHSMBQROELUHF4QTIMC56GVO27FLKDEPUS" - }, - { - "bytes": "72bbad2f49ae72c2589412d25e0664000f5db8d0209f741402b04443ffb4d26e" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716274, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDNWNV2PBY54YRL45GVHRDHA737SEPL6BZMAKRI2IDRKUEP56GERIHDT" - }, - { - "bytes": "9a3044b18b16793d948cb4de9c7ee78840e03e5668ed71e464062962bb379ee0" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716395, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDQRHRIHCEFBBBGV25MVVV4CPOZKGC3L2WE2VEAJP5YU3MGYSXU472DT" - }, - { - "bytes": "5606e5d2deee036395be7bfb68030ec33c93c6fe81a9bcc01ff8b190bb1cdaeb" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64028245, + "last_modified_ledger_seq": 64998691, "data": { "contract_data": { "ext": "v0", @@ -61868,7 +61370,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "6b4804920a4068dfdcaaa711fac6390850e0a92f4b5ed4e46259694b61cbae12" + "wasm": "8a8a1208801c36f5d6e0b90eca4783f3d6789a10b26cf40b062782bfae5731c0" }, "storage": [ { @@ -61919,6 +61421,18 @@ "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" } }, + { + "key": { + "vec": [ + { + "symbol": "MigratedToVersion" + } + ] + }, + "val": { + "string": "1.2.1" + } + }, { "key": { "vec": [ @@ -61940,7 +61454,7 @@ ] }, "val": { - "string": "1.2.0" + "string": "1.2.1" } } ] @@ -62702,1626 +62216,6 @@ }, "live_until": 4294967295 }, - { - "entry": { - "last_modified_ledger_seq": 64716395, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "01db3d43a288d7230c6ea0b4d622b23008a04219f6991d4de308ff89e4e6b58f" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64744258, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "125c0ba8599d511281f35bf56dd29b475381b167c1052da423b41d69d1792612" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717681, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "249d432a5047200e2955d03145eee3e810ee63724d9184a6ee28731ffab48464" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720595, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "279722735b0a419d060cf41ae52b499e9fc5a470e290321726dda4c2dcfe15d6" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716661, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "294d150cc065abca649339c2df7095a04acc47a9bdf005b36f92b0506ceab9af" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716452, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "2c02954e79eef64bd70cb5bce96f0103e3769ca1ffd390f223b2b6120fc4dd5d" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716395, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "2e4bb173893517d37982de249b1934f761712990043520257ca9a545ccfbad72" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717681, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "31e402693cb5e05fe9dbac358ccf16835b281663fe64317d1d8f5c510f37f085" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64731045, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "3820ffdeabc365bba5f584fc498c92c386738fe0a2b8d73622dc503f65262774" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64731045, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "3bad368bff93e88e28d24d4cda9b3ffb26d19c1739655aa2038ad21447d648f1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64744258, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "410a3ee873bbc8ebdf69a61036f393e4a2640060e13e59abacf96914eb460653" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716417, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "43cfdf3400d98214e4c01e6678692ca06b5f21bce53c74a77e9010bc8f7b6d69" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717681, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "4472e2b7611d9b15ce02c6932ddb43e94ea46d2a204b90529b19b15c5e608153" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716274, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "4ca4cc75029684ddbd0488b4155ebd873f30f046c864cc645ba641d4335ea574" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716336, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "4d388f80c3623386f79fc128a7f6c5cd3e3f4f69fa5fd0e2b99d6b1cd1842ce9" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64718487, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "504cb81d1d84971bdfa07bab7a5a841792f03bd5657fb2338d8d69c282a6d791" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716336, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "5073b34e344879a5c4492913d6809f83c9483438e681ba37df2705674d6f2b1f" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64731045, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "54ddcb7e326f503f0aea8e3c751b4d3ca5724b211dddc17c3e435b969e239764" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716274, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "563fe23cbca992539e9844c1820e8c86ddaa919cb18be05ca375297d674bae14" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716883, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "58d393a0715bf36ce4d40dbd39c351348be014b7f4749f9a52cac2ba603cd42a" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716883, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "5ad4ef7ddaf2a216fa4a662c4e0c82c2ab73e491627d1131eaeeeed6e20bfa21" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64718487, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "5c0e35594022bf9bc28d5010ffa97ab7048e83433e770a539894d475e9c40f4b" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64718487, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "5c1ed3efa4a27be76d59ba750d43a786bb63639e666305bdf6ed65857137ba82" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64725863, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "621f2ba6c0a78f51d784b0b4f02ffd4dbb790d547b6c1e48b491305704db4523" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716883, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "623c7a04f3bd791672d53918d9884a54b433c73ed7bbbfef9fac6f93028e7a9a" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716227, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "667f927324162e7f95272e655700bab769d246419022f9012e03507c4fb84463" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716274, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "7aa4fcd3db61739fdb517bdbd72f62704eb6ca7c0982b8592445ed5c9da6efc0" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64744258, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "8626eade51da81fe77ca224f38b4e8927fd0fcd900be9cd02a57e4691efa1b73" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716227, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "97c9a4868c91b4c181971827b41dcb7f8bb14d6499c893bb73e615f60f4016c1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716417, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "99760919238dd783d423ba2115a47e6902144a2889d58405c8dfba4faee6c365" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716417, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "a20cd48eb093fff7ccad6eb96193597910dd3ecc5d5457c2e15c492d4879e9b1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716661, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "ae78d278c7495b4a2a47a2e898f652345a705c403cb3ea52fe5dcae81003a2b6" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716336, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "b27732042ae65d0805423bb14ce591472e398933ec76adfab67db92915114640" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716248, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "bb1dfae0725378e5056f234e49adfec390d9e5efb847cf749d1bd995d77f4ee9" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716248, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "bdcf5f7e78ac69557b72a7e270a49a26d58854483347f8099f58bdaef57b9c13" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716661, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "cbf0696e7b5e200130091b0a3f9953af63fa8f041f50caba11fc2297ac488eb1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716248, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "cf8f3f2f8cf60940d7f76fa94f28ce34766db07b2a96e37487cd42f813a9fe63" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716452, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "d032a0ddea7507fa3e2db42b9dd40970eafab2aa43c8abe145d981b065845576" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720595, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "d588079c030cae697c6ae8074d66dbe80e57b3f7e0aa046dc2956ac2526be065" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64725863, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "d7c0810e175d3f2fb170afa4bab5ed5021f5b3b520e5827518d0e2226fdb5257" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64725863, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "e715d21575527897d01df64aadb1aead89a70494f5e6418a1b564c30927026cc" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720595, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "ea6eae11b69cd20344f70d7f0d0951864de7a819252f151451acbd91d391bb58" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716395, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "ee71cf8ac795827fd4853de0a89fdbb2bbda8c073c937b3fd5f4982abd8dc864" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716452, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "fe3ef87f87aa7e43de0a2d25062b5ce792efe814c12af4cfeb1513f0ec6d6402" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716227, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "fe58d0aafbd59de36b532a84555965aa667d6b58fbbcb04ed0d64ea450e6d749" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64733458, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GAJCILKZETMMCXMNJXBBFZ5ZVAFHXVGPQSMXY6U7YDX6UCSZN4VMJGU6" - }, - { - "bytes": "281acc48a1071a5174ce468e3e891db8aa5097ab475a10288a2e27458b39d225" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64721118, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GARFFI5UVYEUMHDJY24KWDFU7R737JF23JUQSN5BIOUHS4BAEIJO6MEV" - }, - { - "bytes": "2d6258a6c0a924cdd148d624afd05fb0bebbe2816416e14290a0527d50ce9b7c" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720408, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GBOEU2VQWDUHUZSH3CBUEFHROAL3DTENFW6ENLQY6J3LCV2YPLVDDLHD" - }, - { - "bytes": "773e3f8e6dbcc5ec5b31aff5a87000b443286a6ad90f8a63836b96962efffc19" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717103, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GBVKX7526IBKIH4FSFXHNSUUIWW5H7YK7URYGFDR62C622BC62WBFEIF" - }, - { - "bytes": "120b565bef566f799b952e0c6c1bc13ae341cdfc2822bd0b5f13439bef1f3188" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64730224, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDFGP2CRVW27SRQWQWVEM2A6OFCJEC45LSYE6ZNBQBHLFYMM2R5KDMEQ" - }, - { - "bytes": "f5303ff9aea56e0fad139ef2deaeb7a5aa9f36f06074f9a01d83e75997d536f1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64726495, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDN6VFHTBQN46TDAGZYUZYZZQ7HLH5VPG6W6ZCVCBHASWZMHRUYLTYFV" - }, - { - "bytes": "bc87f63cabbacad5e8f9e8e5ea8e50f037f3521073455f2644f606a8db17c6f5" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64703375, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDQ5KKVQDXPYAFQ7H4YG4G7W2NJ5S3UDV6MN4EICCTUXHQJ5GRAPGALV" - }, - { - "bytes": "aeed3b6b7151731d9b66f593b1dcad83aa866b46e5f7c0f515e719ad79e985d4" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64700907, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDQKNUFEA33EKGNDKZ5W5PSRLADVF7563RLJW2MBCLS5WAQVOGQUI6SF" - }, - { - "bytes": "cd86f0cc0627a354d521c9d4aacd65851e7bcc8beedebdf3f6052941278f9bfc" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64715256, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDRDXLBZN6SOXMKXIUNRWNJTMHBNYMCL4666LOZATBLFYYFM2RQMLXIF" - }, - { - "bytes": "70a739b3ace269e39e17219df69144d8a41b411ecb80419ef7f4994ae89df124" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, { "entry": { "last_modified_ledger_seq": 64418211, @@ -69032,227 +66926,271 @@ }, { "entry": { - "last_modified_ledger_seq": 64239038, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAOMRKOZJOXUHI3PHRPRQUORZ4NXZVSCRZSHDJJYEYNFBWZIO5WMRZJ3" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1788350883" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64484839, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAPF3JTLOTEK6AKE2Z74V7N35M7KMYU6RDZ6O3H77VDUXBU4WZ5QT33Y" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1789709973" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64444396, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAPFD4AVZGSXJGZ6SQBM4VOVNAVCZHGQT7UXALJSNDZAN45DCBFNVFZP" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1789499483" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64461437, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAPFZQGAWS3H3DVOKDHSBPYPZERHNNQIC7J6JT4L2XGAMIPCUQ3PMO4G" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1789592961" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64494897, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAPS5LQAH6LLBRSFX23COJV6NAN32T7SMX5Y3BRQZIIFMRZJCRWLOQWT" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1789760263" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64622360, + "last_modified_ledger_seq": 64239038, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAOMRKOZJOXUHI3PHRPRQUORZ4NXZVSCRZSHDJJYEYNFBWZIO5WMRZJ3" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1788350883" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64484839, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAPF3JTLOTEK6AKE2Z74V7N35M7KMYU6RDZ6O3H77VDUXBU4WZ5QT33Y" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1789709973" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64444396, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAPFD4AVZGSXJGZ6SQBM4VOVNAVCZHGQT7UXALJSNDZAN45DCBFNVFZP" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1789499483" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64461437, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAPFZQGAWS3H3DVOKDHSBPYPZERHNNQIC7J6JT4L2XGAMIPCUQ3PMO4G" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1789592961" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64494897, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAPS5LQAH6LLBRSFX23COJV6NAN32T7SMX5Y3BRQZIIFMRZJCRWLOQWT" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1789760263" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64622360, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAQ2WKE3ZN4TOVK3AJ6N6BJ4SEDBSCZ4CIFOOKWGNPIYTI3SJWRDE4JU" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1790397579" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64460770, "data": { "contract_data": { "ext": "v0", @@ -69263,7 +67201,7 @@ "symbol": "Profile" }, { - "address": "GAQ2WKE3ZN4TOVK3AJ6N6BJ4SEDBSCZ4CIFOOKWGNPIYTI3SJWRDE4JU" + "address": "GAQ6OTASPOWLUYVTU5FUYX5SCCGRJZEWV6PZM2IGYR2E7JDYVPWBNCJL" } ] }, @@ -69275,7 +67213,7 @@ "symbol": "bootstrapped_at" }, "val": { - "u64": "1790397579" + "u64": "1789589626" } }, { @@ -69296,7 +67234,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64460770, + "last_modified_ledger_seq": 64488177, "data": { "contract_data": { "ext": "v0", @@ -69307,7 +67245,7 @@ "symbol": "Profile" }, { - "address": "GAQ6OTASPOWLUYVTU5FUYX5SCCGRJZEWV6PZM2IGYR2E7JDYVPWBNCJL" + "address": "GAQEWMDNCGENYPCMQBFOGGVZ5A4SKSA74ENCAOBW4YOMTFOH34LJHLDE" } ] }, @@ -69319,7 +67257,7 @@ "symbol": "bootstrapped_at" }, "val": { - "u64": "1789589626" + "u64": "1789726663" } }, { @@ -69340,7 +67278,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64488177, + "last_modified_ledger_seq": 64769929, "data": { "contract_data": { "ext": "v0", @@ -69351,7 +67289,7 @@ "symbol": "Profile" }, { - "address": "GAQEWMDNCGENYPCMQBFOGGVZ5A4SKSA74ENCAOBW4YOMTFOH34LJHLDE" + "address": "GAQRT2QHEATXYYCT55Q4Z5NATHICL7TQE75KCNMKOVDN6Z5SRBFUMXZZ" } ] }, @@ -69363,7 +67301,7 @@ "symbol": "bootstrapped_at" }, "val": { - "u64": "1789726663" + "u64": "1791135427" } }, { @@ -75410,6 +73348,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64937792, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GBMIKAP2DYVMIN3LQ3REIU3DD6OKERF73P5NUFN75REZZGIW47WEY5GL" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791974742" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 63807895, @@ -86630,6 +84612,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64821445, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GD42KRA5YPQOU7RGQDRFDIYXKXUL5BSVXBQWERBIXEJMTLOTFPGZDD7Q" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791393007" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 64329545, @@ -89490,6 +87516,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64772566, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GDJU6C5WBPMHH7QSYFW5GIOSJOFYIZVQVVTCS4VX5YLI3DFD5LXQEODC" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791148612" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 64717681, @@ -92614,6 +90684,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64773614, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GDVP2PZAYAWYD5WGXPFLWSPW4N52D6MUCGZZ5W2LN3QE3DBU4VD3XRUE" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791153852" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 64318412, @@ -92658,6 +90772,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64816897, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GDWK55PDN7DN24JWB7R33EMR3POW7QRFCTHODLSCCBYEHXNPQUVVD4MV" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791370267" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 63893818, diff --git a/contracts/compatibility/fixtures/manifest.json b/contracts/compatibility/fixtures/manifest.json index b1992f7..93305b7 100644 --- a/contracts/compatibility/fixtures/manifest.json +++ b/contracts/compatibility/fixtures/manifest.json @@ -3,28 +3,28 @@ "file": "mainnet-state.json", "network": "mainnet", "network_id": "7ac33997544e3175d266bd022439b22cdb16508c01163f26e5cb2a3e1045a979", - "ledger": 64747647, - "timestamp": 1791024017, + "ledger": 65003455, + "timestamp": 1792303057, "protocol": 29, "events_contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", "profile_contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", "capture_script": "scripts/capture-mainnet-compat-snapshot.sh", - "sha256": "177c904b2f24ad2300b57a317fe750a58858180cdcef052f9472c1f5fc2c2a06" + "sha256": "0096703064e2ae1463670e0f1cdb29ae6909298270d9971458d8492f0bf547ac" }, "wasm": [ { - "file": "mainnet-events-1.7.0.wasm", - "sha256": "b87365c16102f7242a8fc3e770f615991841741c40673bb241cb254130be4c26", + "file": "mainnet-events-1.8.0.wasm", + "sha256": "acf70ca019f75ee6bc60f7806254dfb3508fd5a76634c708977e6030870dc654", "source": "mainnet contract CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "soroban_sdk": "27.0.0", - "contractmeta_version": "1.7.0" + "soroban_sdk": "28.0.0", + "contractmeta_version": "1.8.0" }, { - "file": "mainnet-profile-1.2.0.wasm", - "sha256": "6b4804920a4068dfdcaaa711fac6390850e0a92f4b5ed4e46259694b61cbae12", + "file": "mainnet-profile-1.2.1.wasm", + "sha256": "8a8a1208801c36f5d6e0b90eca4783f3d6789a10b26cf40b062782bfae5731c0", "source": "mainnet contract CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "soroban_sdk": "27.0.0", - "contractmeta_version": "1.2.0" + "soroban_sdk": "28.0.0", + "contractmeta_version": "1.2.1" } ] } diff --git a/contracts/compatibility/src/lib.rs b/contracts/compatibility/src/lib.rs index c036a31..ae0936e 100644 --- a/contracts/compatibility/src/lib.rs +++ b/contracts/compatibility/src/lib.rs @@ -1,10 +1,10 @@ #![cfg(test)] -//! Replays the mainnet upgrade from the deployed builds (events 1.7.0, profile -//! 1.2.0) to the release build of this tree, against contract storage captured -//! from a mainnet ledger. Everything readable before the upgrade must read the -//! same after it, the records still in the pre-1.7.0 layout must convert, and -//! the upgraded pair must run a grant end to end. +//! Replays the next mainnet upgrade from the deployed builds (events 1.8.0, +//! profile 1.2.1) to the release build of this tree, against contract storage +//! captured from a mainnet ledger. Every event must read the same after the +//! upgrade as before it, and the upgraded events contract must run grants end +//! to end against the deployed profile. use std::fmt::Debug; @@ -14,16 +14,16 @@ use boundless_events::types::{ use boundless_events::EventsContractClient; use boundless_profile::ProfileContractClient; use soroban_sdk::{ - testutils::{Address as _, BytesN as _}, + testutils::{Address as _, BytesN as _, Ledger as _}, token, vec, Address, BytesN, Env, Map, String, }; mod deployed_events { - soroban_sdk::contractimport!(file = "fixtures/mainnet-events-1.7.0.wasm"); + soroban_sdk::contractimport!(file = "fixtures/mainnet-events-1.8.0.wasm"); } mod deployed_profile { - soroban_sdk::contractimport!(file = "fixtures/mainnet-profile-1.2.0.wasm"); + soroban_sdk::contractimport!(file = "fixtures/mainnet-profile-1.2.1.wasm"); } const SNAPSHOT: &str = "mainnet-state.json"; @@ -33,6 +33,10 @@ const ADMIN: &str = "GCVK72I6TVJVDTTY4UKU6MQT4QJ2T2AAG3NULNEUDM46L3UOQYDSO4O2"; const FEE_ACCOUNT: &str = "GADSIP2HPINWTMEUNMVYA5NJRL372OV52HDEJTRTLDZXMHADIPQNYH55"; const MAINNET_USDC: &str = "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75"; const PAGE: u32 = 90; +const DEPLOYED_EVENTS: &str = "1.8.0"; +const DEPLOYED_PROFILE: &str = "1.2.1"; +const RELEASE_EVENTS: &str = "2.1.0"; +const UPGRADE_TIMELOCK_LEDGERS: u32 = 17_280; /// The release build this tree produces. The replay upgrades into the exact /// artifact that would be proposed on chain, so it is read from the build @@ -163,6 +167,14 @@ fn view_after(events: &EventsContractClient, id: u64) -> EventView { #[test] #[ignore = "needs the release wasm; run scripts/test-storage-compat.sh"] fn mainnet_upgrades_from_the_deployed_builds_to_this_tree() { + // Only events upgrades because this tree's profile is the deployed build. + // A profile change has to be replayed here before it can ship. + assert!( + include_str!("../../profile/Cargo.toml") + .contains(&format!("\nversion = \"{DEPLOYED_PROFILE}\"\n")), + "profile changed since the deployed {DEPLOYED_PROFILE}; replay its upgrade too" + ); + let env = mainnet_env(); let events_id = addr(&env, EVENTS_ID); let profile_id = addr(&env, PROFILE_ID); @@ -173,24 +185,26 @@ fn mainnet_upgrades_from_the_deployed_builds_to_this_tree() { env.deployer().upload_contract_wasm(deployed_profile::WASM); let events_v1 = deployed_events::Client::new(&env, &events_id); let profile_v1 = deployed_profile::Client::new(&env, &profile_id); - assert_eq!(events_v1.version(), String::from_str(&env, "1.7.0")); - assert_eq!(profile_v1.version(), String::from_str(&env, "1.2.0")); + assert_eq!(events_v1.version(), String::from_str(&env, DEPLOYED_EVENTS)); + assert_eq!( + events_v1.get_migrated_to_version(), + Some(String::from_str(&env, DEPLOYED_EVENTS)) + ); + assert_eq!( + profile_v1.version(), + String::from_str(&env, DEPLOYED_PROFILE) + ); let first = events_v1.id_base() + 1; let ids = event_ids(&env, &events_id, first); - let mut before = std::vec::Vec::new(); - let mut old_layout = std::vec::Vec::new(); - for id in ids.clone() { - match view_before(&events_v1, id) { - Some(view) => before.push((id, view)), - None => old_layout.push(id), - } - } - assert_eq!( - old_layout, - std::vec![first, first + 1], - "the deployed build cannot read exactly the two pre-1.7.0 records" - ); + let before: std::vec::Vec<(u64, EventView)> = ids + .clone() + .map(|id| { + let view = view_before(&events_v1, id) + .unwrap_or_else(|| panic!("the deployed build cannot read event {id}")); + (id, view) + }) + .collect(); assert!( before.iter().any(|(_, view)| !view.winners.is_empty()), @@ -206,42 +220,44 @@ fn mainnet_upgrades_from_the_deployed_builds_to_this_tree() { .map(|r| profile_v1.get_profile(r).map_or(0, |p| p.reputation)) .collect(); - // The runbook order: profile first, left running; then events, paused - // from propose to unpause. The deployed builds have no upgrade timelock. - let profile_hash = env - .deployer() - .upload_contract_wasm(release_wasm("boundless_profile").as_slice()); - profile_v1.propose_upgrade(&profile_hash, &String::from_str(&env, "1.2.1")); - profile_v1.apply_upgrade(); - let profile = ProfileContractClient::new(&env, &profile_id); - profile.migrate(); - assert!(!profile.is_paused()); - - events_v1.pause(); + // The runbook order (Section 4): propose, wait out the timelock the + // deployed build carries, pause, apply, page, stamp, unpause. let events_hash = env .deployer() .upload_contract_wasm(release_wasm("boundless_events").as_slice()); - events_v1.propose_upgrade(&events_hash, &String::from_str(&env, "2.1.0")); + events_v1.propose_upgrade(&events_hash, &String::from_str(&env, RELEASE_EVENTS)); + let pending = events_v1.get_pending_upgrade().expect("proposal queued"); + assert_eq!( + pending.available_at_ledger - pending.proposed_at_ledger, + UPGRADE_TIMELOCK_LEDGERS + ); + assert_eq!( + events_v1.try_apply_upgrade().unwrap_err().unwrap(), + deployed_events::Error::UpgradeTimelockNotElapsed + ); + env.ledger().with_mut(|ledger| { + ledger.sequence_number = pending.available_at_ledger; + ledger.timestamp += u64::from(UPGRADE_TIMELOCK_LEDGERS) * 5; + }); + + events_v1.pause(); events_v1.apply_upgrade(); let events = EventsContractClient::new(&env, &events_id); assert!(events.is_paused()); - assert_eq!( - events.try_migrate().unwrap_err().unwrap(), - boundless_events::errors::Error::MigrationIncomplete - ); assert_eq!(events.migrate_events(&8), 0); events.migrate(); events.unpause(); - assert_eq!(events.version(), String::from_str(&env, "2.1.0")); - assert_eq!(profile.version(), String::from_str(&env, "1.2.1")); + let profile = ProfileContractClient::new(&env, &profile_id); + assert_eq!(events.version(), String::from_str(&env, RELEASE_EVENTS)); + assert_eq!(profile.version(), String::from_str(&env, DEPLOYED_PROFILE)); assert_eq!( events.get_migrated_to_version(), - Some(String::from_str(&env, "2.1.0")) + Some(String::from_str(&env, RELEASE_EVENTS)) ); assert_eq!( profile.get_migrated_to_version(), - Some(String::from_str(&env, "1.2.1")) + Some(String::from_str(&env, DEPLOYED_PROFILE)) ); assert_eq!(events.get_admin(), addr(&env, ADMIN)); assert_eq!(profile.get_admin(), addr(&env, ADMIN)); @@ -257,20 +273,6 @@ fn mainnet_upgrades_from_the_deployed_builds_to_this_tree() { assert_eq!(&view_after(&events, *id), view, "event {id} changed"); } - // Percentages were always taken of the budget, so each converted floor is - // exactly what the old record would have paid that position. - for id in old_layout { - let event = events.get_event(&id); - let winners = view_after(&events, id).winners; - assert!(!event.prize_floors.is_empty()); - let floors_total: i128 = event.prize_floors.values().iter().sum(); - assert!(floors_total <= event.total_budget); - for (recipient, position, amount, milestone, paid_at) in winners { - assert!(milestone.is_none() && paid_at.is_some(), "{recipient:?}"); - assert_eq!(event.prize_floors.get(position), Some(amount)); - } - } - for (recipient, reputation) in recipients.iter().zip(reputations_before) { let after = profile.get_profile(recipient).map_or(0, |p| p.reputation); assert_eq!(after, reputation); diff --git a/docs/storage-compatibility.md b/docs/storage-compatibility.md index ee64505..3c13478 100644 --- a/docs/storage-compatibility.md +++ b/docs/storage-compatibility.md @@ -2,25 +2,28 @@ `contracts/compatibility` replays the next mainnet upgrade against real mainnet storage. It loads contract data captured from a mainnet ledger, runs the builds -deployed on mainnet today, then proposes, applies and migrates the release build -of this tree the way `docs/upgrade-runbook.md` does it on chain: +deployed on mainnet at that ledger, then proposes, applies and migrates the +release build of this tree the way `docs/upgrade-runbook.md` does it on chain. +Mainnet runs events 1.8.0 and profile 1.2.1, and this tree's profile is still +1.2.1, so only events upgrades: 1. Read every event, every winner record and the reputation of every winner - through the deployed events 1.7.0 and profile 1.2.0 builds. The two records - still in the pre-1.7.0 layout cannot be read by 1.7.0, and the test requires - exactly those two to fail. -2. Upgrade the profile (propose, apply, migrate; it stays running), then pause - events, propose and apply its release build (the deployed builds have no - upgrade timelock), page `migrate_events`, check that `migrate` refuses with - `MigrationIncomplete` before the conversion and stamps after it, and - unpause. -3. Read everything again through events 2.1.0 and profile 1.2.1 and require the - same values. The two converted records must carry prize floors equal to what - each position was paid. -4. Run a grant through the upgraded pair on a fresh token (selection, releases, - a forfeit, the close that returns the forfeited share) and check that event - ids continue from the deployed counter, then a grant published with a - milestone split, paid in full. + through the deployed events 1.8.0 and profile 1.2.1 builds. Every event must + read. +2. Propose the release build of events, check that `apply_upgrade` refuses + until the 17,280-ledger timelock the deployed build carries has passed, then + advance the ledger, pause, apply, page `migrate_events` until it reports 0, + stamp with `migrate`, and unpause. +3. Read everything again through events 2.1.0 and the same profile and require + the same values. +4. Run a grant through the upgraded events contract on a fresh token + (selection, releases, a forfeit, the close that returns the forfeited share) + and check that event ids continue from the deployed counter, then a grant + published with a milestone split, paid in full. + +The test fails straight away if `contracts/profile` no longer reports the +deployed profile version, because a profile change has to be added to the +replay before it ships. The test is marked `#[ignore]` because it needs the release wasm, which a plain `cargo test` does not build. Run it with: @@ -37,14 +40,15 @@ test at a different build directory. ## Fixtures -`mainnet-events-1.7.0.wasm` and `mainnet-profile-1.2.0.wasm` were fetched by hash +`mainnet-events-1.8.0.wasm` and `mainnet-profile-1.2.1.wasm` were fetched by hash from the live mainnet contracts recorded in the manifest (`stellar contract fetch --wasm-hash --network mainnet`). Uploading them is what makes the captured contract instances runnable, so a wrong file fails the test before any assertion. `mainnet-state.json` holds every contract-data entry of the two contracts at -mainnet ledger 64,747,647 (protocol 29). Contract code is +mainnet ledger 65,003,455 (protocol 29), the first archive checkpoint after +the 1.8.0 upgrade was published. Contract code is excluded because the wasm fixtures supply it, and TTLs are normalised to `u32::MAX` so nothing expires while the test advances the ledger. The SDK 28 test host runs protocol 28, so the replay loads the snapshot at protocol 28; nothing @@ -59,7 +63,7 @@ To check that the fixture still reproduces from the history archive (Stellar CLI ## Refreshing for the next upgrade -Once mainnet runs 1.8.0 (tag `events-v1.8.0`), the replay should start from 1.8.0 instead: +Once mainnet runs a newer build, the replay should start from it instead: 1. Fetch the deployed wasm for both contracts by hash into the fixtures directory and replace the two `mainnet-*.wasm` files. @@ -67,5 +71,6 @@ Once mainnet runs 1.8.0 (tag `events-v1.8.0`), the replay should start from 1.8. `./scripts/capture-mainnet-compat-snapshot.sh /tmp/mainnet-state.json ` (an archive checkpoint), copy it to `fixtures/mainnet-state.json`, and record the printed ledger, timestamp, protocol and hash in the manifest. -3. Update the versions the test expects and drop the assertions about the - pre-1.7.0 records, which will no longer exist. +3. Update the deployed and release versions the test expects + (`DEPLOYED_EVENTS`, `DEPLOYED_PROFILE`, `RELEASE_EVENTS`), and add a profile + upgrade to the replay if this tree changes the profile.