From 307805bd0b341a93edcc4cab7dac3b94e4a574d8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 3 Nov 2023 16:23:21 +0200 Subject: [PATCH 1/6] upgrade from contract test --- .../forwarder_contract_upgrade.scen.json | 38 +++++++++++++++++- .../vault/output/vault-promises.wasm | Bin 8144 -> 8275 bytes .../composability/vault/output/vault.wasm | Bin 7421 -> 7552 bytes 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json b/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json index 645d99a63..ef6db50ae 100644 --- a/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json +++ b/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json @@ -51,13 +51,47 @@ "function": "upgradeVault", "arguments": [ "sc:child", - "file:../vault/output/vault.wasm" + "file:../vault/output/vault.wasm", + "str:arg" ], "gasLimit": "500,000,000", "gasPrice": "0" }, "expect": { - "out": [] + "out": [ + "str:arg" + ], + "logs": [ + { + "address": "sc:forwarder", + "endpoint": "str:transferValueOnly", + "topics": [ + "", + "sc:child" + ], + "data": [ + "str:UpgradeFromSource", + "str:upgradeContract", + "*", + "0x0100", + "str:arg" + ] + }, + { + "address": "sc:child", + "endpoint": "str:transferValueOnly", + "topics": [ + "", + "sc:forwarder" + ], + "data": [ + "str:AsyncCallback", + "str:callBack", + "0x00", + "str:arg" + ] + } + ] } }, { diff --git a/test/features/composability/vault/output/vault-promises.wasm b/test/features/composability/vault/output/vault-promises.wasm index a6c43b6cac2e83ed98da7b77a573dcba85e561f9..bb2688fae9e46368b0afa1585567540c3e9edd55 100755 GIT binary patch delta 3396 zcmb7HU2GKB6~6b*?C#jJ_8$M+YlCOji(wsu4Z#KnjQ1LBoM0UOLcoPM#$F6-uwiXe zwNh9&MU`5ll;)~Zq&5$2qC(Xlsj5_|Z%tLHX_W_}=7C796e?0B?MtOJYSSpC-T^z_+4(W{sOM zyY7h(t~hQ{=)dC@d&g>wp3j|MEPP1`8|#ORoiQya)ara>2v3D1@U}*dS)hfVR`EG%EIiDm~JsA+gp@4W!|?tXeM6B<#RLT zm$Rlh(ovhMF65RAXLFZwr9G$3{z#jgGx35s~atq)e4tI;h@UDQR7c}i10E!?_LiqJRA zJJGbfVLpkjJq@W;k)%q9s}&xk4+~FumS=kr+T2Y@yI{_A%)rx)Dd#bebZLH>v0ByUEA*A#x8#fy&-9#wEf|QgNd)*d1 z>pRA++|&{Z8Mm_uw`48WyZrW0pNKT$=p(P}OEBC(Xs`3|1-~ z&ug3I2EuvePphvco(^@D=K9Q7;sUt(%fw(P!+e?;>DRo=K}gsrU($Uyg1{*4G2v^2 zP?pHhM+4>(P4tX{6k0HMfw*qVr=m3O+jxl5lYR`)*XJ=0`tnN}Hy_bHIcA1xlFjQ% zC<4Mi145@vAak+C%RbFe-SdQ*7bYFs0D!wvijJ^j0Q#h~0-nsLWLoIILX?YWyj?SK z=rfGtbdW8k5%5LQ0S*MUx|Kq|_M)TPsgH-h#xR9pM9`veUsB30%FCeMO);Mm2%exV zDNrmYeQwqn@_wV9Dap2%3+4=~e_FXQ}_ z1u__q`4&Sg5o|C8cblGp5-@}S7&3l6=CF={@zJ{W;*b`!3vU235*`Bt`VMSP&=b7O z_Jh@U!Iav`3MDlpkr*Lnr|tm+XQ++-KXLlwT8<7KWZ?A2!FY{%t4`vT}^#-6fsb=8&!cO-~qsNV4ahvY}v@YVQHiQ@rR6jl<>(%3#x*Pz-y3t z8H2$G#qu<8{sM<`a{wbft3#5oi4w4dCYo34TSf+HGdse|iQ~b6c~<`m9<@BeBkEv^ zz^fo|DewT*js(`BtQ>$w4pR7XgK#g&NGUZq@6>b08RU$^a;~dzY?&#M0;Ye{0NG`hfP~6 z4#SHmd^v17n^W~@B`DCep9>=$<|7Ds=0tOAOHY``uncwBmq9TBz?3o9nj5#Er@mn; z=W|7=#O0tc!3o(SzxMb80F zy2`ip)m4WfcS;48*)^bDyjWdzTwu&4YlNBrp-p{YTXzyTD>z~UGCtA7%2GX<;k5y^ z_uy&=;~4E>(f7d)G?*W@^o{Aj_mQdqgE%uH%nMY=xNwmL5AOrts7b$qb4OKZ4L}() zoyl!r*mKD*7lWcqy=X-lFzcq^Cf2}BEG!Uw;_)E@WdgRhAtwfzqI8soaS|ylI{x6p zF+6-Plo#w69b%~uS8-BR~(cYKaHWzn51^PfY7%ViDNVMB19wgdr9301Ua->S? zA0cPf5Y9KWnL3hTTKQ3zsaZn5&sW#ESJ=4Fad4qr{VXW;T;>fOdtf?{k%@su5s(@u zRa`+7q*?TS)KhgPdMIseDDgBF?HK*3jB^L1q1^;8FmKUe^&x`rp+TEtL{q-6g``!3=`S5)AZjpcg1!x9w AW&i*H delta 3355 zcmai1eQaA-6~FJkXZt13Nlu!iNt_SA=Ok@i(j@KNB(!Pgn>I~Zvb0M(+HMTjOT08r zlN874G(P4QDx_*K(5?^@A6o~LDlvhC_zxij`~eex1u+SbinJmD0)~WyKmr8ickZ*Z zR!kyR{O-H=oO92|@BHrd&$C+(fBtp*t!V1ox8Icd$!YsX>+x(R^AXF>V0q`_v~`{()wmOw^3d% z<(CTLDbENjQ0<#0Ne-*|3qK@@tP-Yl)<@@tE^g;F73F64|bl*9FB znwJXY-1@U?g;FlRxL7J|Y=|X~UCS-3Z*n-7Qfr&5Ipgdil=WD$%@)f^?In}8D7NdZ zNT=uW@??HtMO@Y+(eC~?hGutKR)zXf)}$ceTlfgVx7UejwROW)Tlz|Lps_C{DB=sR z)ky2FM-Q~8DNTEQsi@d5yq3_4P`C6u(SGZeZjSX@eR?F;^~gT&tR*XbLisDHSihij z;QAKz2bLf6ZAy*GZVcp@O?X(Nvcq@%7>v>o9&XVWcz67WAEmwe3$fo-*poOsNwb4* z-Ej9vkrL`2{$eK_Gov;~rBIvHpf=g%Q1X}mBZ(Qc!jdc0s8)<*gFy7WK~n;XL%hRJ zuDPn6GARd+SVRf^Pd5o4qs$NMXhF6RA6INE=uD@VSY0I0Rp8O{5^gbeG z#d@B%T1i>`a9~o5*={vAoe2rgsU;;<-6_tPf&eO&67c*G5{JjE{*u@GLUCE& zB5%-W7G49&&l0FVjeGm5@vNjIHj$Jbm2s1}c#(Foojo#6<28uYQh^{3=^gPQIIQ9; ztsg*Y-J)`R8ztZ`haS;Ch`$uMAUwM8opTNQE$f25*_ei;RPmy6*sd|ol0R;Ip=mDM zt2&p_7n`mC!9Qy{657x$G&P!KEf+OnrvmG~FifSS^0^ImnA%p+k)d(@BFzm?0VPT> z&TS03i>WBh1P)%JbTWt`f2~E#1M0j;GumsOd1%_Vu${6_FqE((duR~kQa`fIJ%>{M z2FZ16Fw-}ieQQpCqq#RorzD+W6(sp7%Qm1fl~jL(hDRCwhvvEYzhNAw)9fuB2Y4(x z#YLbluU@Dxf6`S+%JA^J7^X0c2wD~1i&8ovIJU$}N}zCp_NUOeaZ2l(JJNHH`66wP zpJqH`kVT|uj@iKC$4T_P0Xg^mAUt%&Y#$GMRPKQX;0W}+Nhq8jl^IIE)RMLy(|cQb zb^|yTY7gMx>Cjp13&0SRKo+|&2m6GSueBtHjw(S%7@3SHc*u2s^;52DqW80y6MBOM zM%ZE9+Zt3JRAGfXh})sjP!?k9Td>eb8G0NklQfBX(4(-9*wGs(AU$lH0S=}^#zXrc zLDWtE-#94by$qpYx)I9+4O3gfJ958So<4 zg~))?>f&zUU9}=rh;z1&DoIBW-2qs(Xdqx%0ZZFB_#DEc8V+oRfCw>)64US$dpUXS z?w{Iy#{o}AK*HE<(8;QsI51iX`@x_&^gbbik{wI7I+6-3bUiyfJ|c|;LKEc5!cj#LF0KQLt0=Q6O+GMPaD-R3TuDKpE&a88s+L1Ab zGN{J;63DtlSPl}1t%4Xdjnz=pSU84n$6z)_$Jlb1`8rO$*+KUw4xU8)5%W}oi9OEv z2vF;-S?yTKIo}aWL zIGO%xpng#Qx$9_mZ7B;b;IiTfdmGCwbdU!0boW5hVVMm-e1d>LKGwazatL07wg-V- zp$3bXp8>RB8i!>Zc)@#Os=-okpj&zf*BBb1R3dDsAnGwFt02z=@;0AB4!-C-DpVsx z8@u`*pHOt}zG-749m4??0i1Cs#Wz5K28+JiuTkz-&#wa+p6%H+Fqnwr4HsFTZ!YzG zSEYT4xa7Iod#`@ACo%LrbWgzSp?-}~3y*ApOP)|aLQ6JsB;Gp?uA_{)E&cnRzw6)j oF6k$e$C}phqXR!%a^>|L{~*z?BwugF)!d7Jg|EH$?p65zzgm%Q%>V!Z diff --git a/test/features/composability/vault/output/vault.wasm b/test/features/composability/vault/output/vault.wasm index 291772c0a26fe890b1f5f4204e7c5a711c5e5c84..18b021b612c9f11758facb1db70dc5ca39787c39 100755 GIT binary patch delta 2797 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 Date: Mon, 6 Nov 2023 11:07:01 +0200 Subject: [PATCH 2/6] Replace call to init with call to upgrade during indirect upgrade --- integrationTests/json/scenariosFeatures_test.go | 8 -------- vmhost/hostCore/execution.go | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/integrationTests/json/scenariosFeatures_test.go b/integrationTests/json/scenariosFeatures_test.go index 2a1240258..bea69be2f 100644 --- a/integrationTests/json/scenariosFeatures_test.go +++ b/integrationTests/json/scenariosFeatures_test.go @@ -97,14 +97,6 @@ func TestRustPromisesFeatures(t *testing.T) { CheckNoError() } -// TODO: debug, then delete -func TestRustPromisesFeaturesDebug(t *testing.T) { - ScenariosTest(t). - Folder("features/composability/scenarios-promises/promises_call_async_retrieve_egld.scen.json"). - Run(). - CheckNoError() -} - func TestRustFormattedMessageFeatures(t *testing.T) { ScenariosTest(t). Folder("features/formatted-message-features/scenarios"). diff --git a/vmhost/hostCore/execution.go b/vmhost/hostCore/execution.go index 64aded75b..3e21ce743 100644 --- a/vmhost/hostCore/execution.go +++ b/vmhost/hostCore/execution.go @@ -819,7 +819,7 @@ func (host *vmHost) executeUpgrade(input *vmcommon.ContractCallInput) error { return vmhost.ErrContractInvalid } - err = host.callInitFunction() + err = host.callUpgradeFunction() if err != nil { return err } From 52ce940eeb7f0dbfeef4c760e5b0546e95bda498 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 6 Nov 2023 11:17:09 +0200 Subject: [PATCH 3/6] upgrade from contract test --- .../forwarder_contract_upgrade.scen.json | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json b/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json index ef6db50ae..2634f2c7f 100644 --- a/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json +++ b/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json @@ -23,20 +23,21 @@ "function": "upgrade_vault_from_source", "arguments": [ "sc:child", - "sc:forwarder" + "sc:child" ], "gasLimit": "500,000,000", "gasPrice": "0" }, "expect": { - "out": [] + "out": [], + "status": "" } }, { "step": "checkState", "accounts": { "sc:child": { - "code": "file:../forwarder/output/forwarder.wasm" + "code": "file:../vault/output/vault.wasm" }, "+": "" } @@ -58,9 +59,7 @@ "gasPrice": "0" }, "expect": { - "out": [ - "str:arg" - ], + "out": [], "logs": [ { "address": "sc:forwarder", @@ -77,6 +76,16 @@ "str:arg" ] }, + { + "address": "sc:child", + "endpoint": "str:upgradeContract", + "topics": [ + "str:upgraded" + ], + "data": [ + "" + ] + }, { "address": "sc:child", "endpoint": "str:transferValueOnly", @@ -88,6 +97,7 @@ "str:AsyncCallback", "str:callBack", "0x00", + "str:upgraded", "str:arg" ] } From 62c88eb80408fcecba1fe34c613b6c9569d33cef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Camil=20B=C4=83ncioiu?= Date: Mon, 6 Nov 2023 13:16:53 +0200 Subject: [PATCH 4/6] Fix failing tests --- mock/contracts/deployerSimpleSC.go | 6 ++++++ test/contracts/init-correct/init-correct.c | 4 ++++ test/contracts/init-correct/init-correct.export | 1 + .../init-correct/output/init-correct.wasm | Bin 493 -> 513 bytes vmhost/hosttest/contracts_deploy_test.go | 7 ++++++- vmhost/hosttest/execution_test.go | 10 +++++----- 6 files changed, 22 insertions(+), 6 deletions(-) diff --git a/mock/contracts/deployerSimpleSC.go b/mock/contracts/deployerSimpleSC.go index 508df552e..8f73cc361 100644 --- a/mock/contracts/deployerSimpleSC.go +++ b/mock/contracts/deployerSimpleSC.go @@ -57,6 +57,12 @@ func InitMockMethod(instanceMock *mock.InstanceMock, config interface{}) { instanceMock.AddMockMethod("init", testcommon.SimpleWasteGasMockMethod(instanceMock, testConfig.GasUsedByInit)) } +// UpgradeMockMethod - +func UpgradeMockMethod(instanceMock *mock.InstanceMock, config interface{}) { + testConfig := config.(*testcommon.TestConfig) + instanceMock.AddMockMethod("upgrade", testcommon.SimpleWasteGasMockMethod(instanceMock, testConfig.GasUsedByInit)) +} + // CallbackTestConfig - type CallbackTestConfig interface { CallbackFails() bool diff --git a/test/contracts/init-correct/init-correct.c b/test/contracts/init-correct/init-correct.c index cce4f2a8d..6f2023c62 100644 --- a/test/contracts/init-correct/init-correct.c +++ b/test/contracts/init-correct/init-correct.c @@ -27,3 +27,7 @@ void init() { } } } + +void upgrade() { + init(); +} diff --git a/test/contracts/init-correct/init-correct.export b/test/contracts/init-correct/init-correct.export index b1b716105..e4e16e74c 100644 --- a/test/contracts/init-correct/init-correct.export +++ b/test/contracts/init-correct/init-correct.export @@ -1 +1,2 @@ init +upgrade diff --git a/test/contracts/init-correct/output/init-correct.wasm b/test/contracts/init-correct/output/init-correct.wasm index eb66323d648430a4c0b138dfa53797e3da3e33cc..afd4198d45a875ec319d474ace510d81e9de084a 100755 GIT binary patch delta 79 zcmaFM+{iK^! Date: Mon, 6 Nov 2023 17:17:20 +0200 Subject: [PATCH 5/6] upgrade from contract test --- .../forwarder_contract_upgrade.scen.json | 9 ++++++--- .../vault/output/vault-promises.wasm | Bin 8275 -> 8144 bytes .../vault/output/vault-upgrade.wasm | Bin 0 -> 701 bytes .../composability/vault/output/vault.wasm | Bin 7552 -> 7421 bytes 4 files changed, 6 insertions(+), 3 deletions(-) create mode 100755 test/features/composability/vault/output/vault-upgrade.wasm diff --git a/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json b/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json index 2634f2c7f..029d9726b 100644 --- a/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json +++ b/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json @@ -8,6 +8,9 @@ "sc:forwarder": { "code": "file:../forwarder/output/forwarder.wasm" }, + "sc:reference": { + "code": "file:../vault/output/vault-upgrade.wasm" + }, "sc:child": { "code": "file:../vault/output/vault.wasm", "owner": "sc:forwarder" @@ -16,14 +19,14 @@ }, { "step": "scCall", - "id": "upgrade-vault-to-forwarder", + "id": "upgrade-vault-from-source", "tx": { "from": "address:a_user", "to": "sc:forwarder", "function": "upgrade_vault_from_source", "arguments": [ "sc:child", - "sc:child" + "sc:reference" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -37,7 +40,7 @@ "step": "checkState", "accounts": { "sc:child": { - "code": "file:../vault/output/vault.wasm" + "code": "file:../vault/output/vault-upgrade.wasm" }, "+": "" } diff --git a/test/features/composability/vault/output/vault-promises.wasm b/test/features/composability/vault/output/vault-promises.wasm index bb2688fae9e46368b0afa1585567540c3e9edd55..89da5d0a15a280153a4881de123e00554fae5f65 100755 GIT binary patch delta 3374 zcmai1Yit}>6~6b*?C!)fUZ0KaI9|VI)^?H&ekI-7P2!|`oj5j)o1{rfk`~x(?X6=w zw!?azsyw<*iIAceinu~ZJlYg0MWO-;@ed&c{D2Ax$%smT6r=_T5TZy(2qch7_|D93 z9%?1L^3I)m&-;AmoV&lyZ$A3PH>|hgneW|vOPNnwFAqFEV_UW@rL?v-x3o&jvg|}G z5s$~Eqm&X#DjYg?LoAW-OwP`jv-Z}Ncdj{ZRcL-Beqpu7mrKj5<>!^K7giQ3;^|~* z_Tp-xSe{>BF0EA7#7Day+$cP^P`S9eUMZ|qR?EftlK7Y#63iAaT`HBu$Gzh0Z0T~P z@a+1^+?ptu+jfV%VBWKPspyqUi>2B6(KBWw)?1xTmP?iLLg`AW#xa+^yRp1}sj?7l z7m91ougr>4*E8$ol|pf4t}t6J6)UAeNDSua{MpoesZv;dZlzQ%6zAs3rL{FN@3Luy z+0}J+=VE4MeYp@CI|pVn*3)W z^=9ORAmK}V1mW9l$F|b2SwT}8j6j*f1{h=4QirIccPOYHH#;w9Wm5QdRi^(n(7h*#{pc z#F*vO;?|y4u!x#7N^d#A(bOP77Bd2h_amry%$Tpb-B0C^v~OH>bP_QIM@qPjfCf_l z8??_Igolw51tp5Iqsj{-;w{n+ma|KFw66}odNdL1{bs8-1cSAw%}dFhEguGrx2SFA z2-$3U%=|1lX0nah*m>d7`R|`?+#}_Av*8VZ+Jd>-@hzst7gPV(TQKh>&omv6^wy;0 z%!Q`QK>Dwm4n}fJGfn35tj9qf*uX&E=TevrrF|}!tzrIZD9V|a>E!Svu%rc71CpdW z7c+614s5){=~$3JBwH4-kAmPsnl^6g*h5o{I!DW+(1#Vu0;dcThx!nAu1qBL4+yhU zN0Pao^5t>!?NoOxn^APy{4&)cbLKCpOs%EZi?BWk-P66iXR_WC_}n0n|Opn(JG$$Di;;)_UY5V-t%!d;-#E0?ChQ z^nnnt+y@3=zCC97cvz!q7c4-}KpzML2hT=TjN-< zYE8Qb?-$G4aQ!I`_(8CNv&0{th?W zKfq1Om||;->@rtcccMMK+B(oUu4SN99(lLusQFE6ew=GPL^DoMdZAQcTG2FTP0=wv z=k6YYIqf@v)FM!gT#x4Tw!Z2;p8}bxur|Co^{x$Q83CQv~riGg$z z3lW%}7wUV1*wgd+2AmL3!g4YBvwEJo)9$~eN<_7cS^Yl9Mx~{%hVZY|197l|7)pI^ zdv41qcoBy$r_AfyGgV*!sizt4UUZ7@7}OIscy4mSPw>bWew;@>TRRk$Bz6hhPJja@^u-XR`?QOLjSa^|#JSlVp*BR!rW~^Ip){hd;FgU5LRF9e zXDBry4J91Lw;f_OL5Ep#6nWE;KC}Z_ho_T`p~oJhBB~8^G*7swgpk}+)9qVAeeiC| zyq+EdqJEeDUWzLCS(l5%44eV0cMoxN{6l#xwf^27jGTt4xQw4;RL z_bM{Z73un0(C*H3?dTs!dw9c*)#qzS17AvMFzqSctG{=f*SgX}KSX^5+#mGsv1;a( zC2$iH`ll$mBzxk%YvZ!WxY{&-?)sPcWB0syy614yDt=wy_er6$THs$E=GC4zQn-V= O-q-nld*@D-|NjRe-E1`g delta 3392 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 Date: Mon, 6 Nov 2023 18:04:03 +0200 Subject: [PATCH 6/6] upgrade from contract test fixes --- .../json/scenariosAdderLog_test.go | 22 +++++++++--------- test/adder/output/adder.wasm | Bin 695 -> 697 bytes .../output/proxy-test-first.wasm | Bin 6929 -> 6929 bytes .../output/proxy-test-second.wasm | Bin 1960 -> 1970 bytes .../forw_raw_contract_upgrade.scen.json | 13 +++++++---- .../forw_raw_contract_upgrade_self.scen.json | 16 +++++++------ .../forwarder_contract_upgrade.scen.json | 4 ++-- .../composability/vault/output/vault.wasm | Bin 7421 -> 7552 bytes test/multisig/output/multisig-full.wasm | Bin 18243 -> 17299 bytes test/multisig/output/multisig-view.wasm | Bin 8012 -> 7699 bytes test/multisig/output/multisig.wasm | Bin 16128 -> 15295 bytes test/multisig/test-contracts/adder.wasm | Bin 3455 -> 697 bytes 12 files changed, 31 insertions(+), 24 deletions(-) diff --git a/integrationTests/json/scenariosAdderLog_test.go b/integrationTests/json/scenariosAdderLog_test.go index 0a124f728..912523e97 100644 --- a/integrationTests/json/scenariosAdderLog_test.go +++ b/integrationTests/json/scenariosAdderLog_test.go @@ -5,10 +5,10 @@ import ( ) const expectedAdderLog = `starting log: -GetFunctionNames: [add callBack getSum init] +GetFunctionNames: [add callBack getSum init upgrade] ValidateFunctionArities: true -GetFunctionNames: [add callBack getSum init] -GetFunctionNames: [add callBack getSum init] +GetFunctionNames: [add callBack getSum init upgrade] +GetFunctionNames: [add callBack getSum init upgrade] HasFunction(init): true CallFunction(init): VM hook begin: CheckNoPayment() @@ -23,12 +23,12 @@ VM hook begin: BigIntGetUnsignedArgument(0, -101) GetPointsUsed: 249 SetPointsUsed: 1249 VM hook end: BigIntGetUnsignedArgument(0, -101) -VM hook begin: MBufferSetBytes(-102, 1048601, 3) +VM hook begin: MBufferSetBytes(-102, 131097, 3) GetPointsUsed: 1289 SetPointsUsed: 3289 GetPointsUsed: 3289 SetPointsUsed: 6289 -VM hook end: MBufferSetBytes(-102, 1048601, 3) +VM hook end: MBufferSetBytes(-102, 131097, 3) VM hook begin: MBufferFromBigIntUnsigned(-103, -101) GetPointsUsed: 6333 SetPointsUsed: 10333 @@ -52,7 +52,7 @@ GetPointsUsed: 135352 GetPointsUsed: 135352 Reset: true SetPointsUsed: 0 -SetGasLimit: 9223372036853567307 +SetGasLimit: 9223372036853566707 SetBreakpointValue: 0 HasFunction(getSum): true CallFunction(getSum): @@ -64,12 +64,12 @@ VM hook begin: GetNumArguments() GetPointsUsed: 110 SetPointsUsed: 210 VM hook end: GetNumArguments() -VM hook begin: MBufferSetBytes(-101, 1048601, 3) +VM hook begin: MBufferSetBytes(-101, 131097, 3) GetPointsUsed: 250 SetPointsUsed: 2250 GetPointsUsed: 2250 SetPointsUsed: 5250 -VM hook end: MBufferSetBytes(-101, 1048601, 3) +VM hook end: MBufferSetBytes(-101, 131097, 3) VM hook begin: MBufferStorageLoad(-101, -102) GetPointsUsed: 5291 SetPointsUsed: 6291 @@ -97,7 +97,7 @@ GetPointsUsed: 71337 GetPointsUsed: 71337 Reset: true SetPointsUsed: 0 -SetGasLimit: 3791500 +SetGasLimit: 3790900 SetBreakpointValue: 0 HasFunction(add): true CallFunction(add): @@ -113,12 +113,12 @@ VM hook begin: BigIntGetUnsignedArgument(0, -101) GetPointsUsed: 249 SetPointsUsed: 1249 VM hook end: BigIntGetUnsignedArgument(0, -101) -VM hook begin: MBufferSetBytes(-102, 1048601, 3) +VM hook begin: MBufferSetBytes(-102, 131097, 3) GetPointsUsed: 1289 SetPointsUsed: 3289 GetPointsUsed: 3289 SetPointsUsed: 6289 -VM hook end: MBufferSetBytes(-102, 1048601, 3) +VM hook end: MBufferSetBytes(-102, 131097, 3) VM hook begin: MBufferStorageLoad(-102, -103) GetPointsUsed: 6333 SetPointsUsed: 7333 diff --git a/test/adder/output/adder.wasm b/test/adder/output/adder.wasm index 46c8f9d2bc320d1afb0915dea4ed4419c63bd499..ffb39b0d4e26f071164fbc6fac3f4800246f37ac 100755 GIT binary patch delta 186 zcmdnax|4N+8W&@I0&{(RJwpQHM1!l0tdrRo?bX?sxw#k_S=gBw8GwKlNHMeVGu1OV zE@g8-ufgByzjKeuB;1IOe~j7B`dK-D0vjx&J*hD;&s`amrp R$zCQUb`EZqIsgCv2LM;yCWZh2 delta 183 zcmdnVx}9}`8W%$XV?ASi0&{)+M1!l0?339T?KN4Mxw#k_S=g8v8GwKlNC~nDGSxFU zE@(Kwzzw6>-PkARFltR+z$jyPj**Lxk+I&9L4ZezL4ZMlfm<5HodZ-4CN!8B9P6`` z7|fVJa-s|Zj0y~HEDrqKjtxL1lfN?>@rnR7fOI>~1c{h3g>V=GHG!okFez~WEoPbX H|NnmgxWFmm diff --git a/test/features/composability/proxy-test-first/output/proxy-test-first.wasm b/test/features/composability/proxy-test-first/output/proxy-test-first.wasm index 0c43a7311d9e61160c57a550e97d531d70985bab..fb71ecbdc66d8ba3379e3d4b5108b4c5b0580e6a 100755 GIT binary patch delta 102 zcmbPeHqmT@2Qw23^JXvRzf6-8*+h9H859^C?_A>1U}EswoWYhLD5|HxsK6>-G>EvUCyW diff --git a/test/features/composability/proxy-test-second/output/proxy-test-second.wasm b/test/features/composability/proxy-test-second/output/proxy-test-second.wasm index 882461b36e93ca970b500bc15a5485e426019d57..11c01ce68a638408ad5ae8c371c2afa94ecadda6 100755 GIT binary patch delta 135 zcmZ3%zlndsiOCX-@)M5-Og3kH&y>zNS%b-ui@mfUy(lpyl|goMCQ}5HD4P;2getaudygGzL@-z#h8(8vM#Fukc?wB=Vnu6bz~F}RbmlfoxFgxhnHPS ifk}YFQNbOk=fh-6w(C5Zd6^~giACu^WHMQXy$1lI#3{1? delta 123 zcmdnQzk+|liHR@#CmvUrY|i+eDVAfh29x9FVx|ZtQC1};rv@P4sCD`e1o;sx4vudo zKVVT}d^4Gu)tHfWvN@{(kj!8;=Vn!8bz~F}Rbmm~n7oR$hnG!Cfk}YfQNbOk=fz}a Ww(C5JMd>D)d6^~gK*nS>_8tHsp(d>W diff --git a/test/features/composability/scenarios/forw_raw_contract_upgrade.scen.json b/test/features/composability/scenarios/forw_raw_contract_upgrade.scen.json index 0d8672d16..025d40985 100644 --- a/test/features/composability/scenarios/forw_raw_contract_upgrade.scen.json +++ b/test/features/composability/scenarios/forw_raw_contract_upgrade.scen.json @@ -8,6 +8,9 @@ "sc:forwarder": { "code": "file:../forwarder-raw/output/forwarder-raw.wasm" }, + "sc:reference": { + "code": "file:../vault/output/vault-upgrade.wasm" + }, "sc:child": { "code": "file:../vault/output/vault.wasm", "owner": "sc:forwarder" @@ -16,27 +19,28 @@ }, { "step": "scCall", - "id": "upgrade-vault-to-forwarder", + "id": "upgrade-vault-from-source", "tx": { "from": "address:a_user", "to": "sc:forwarder", "function": "call_upgrade_from_source", "arguments": [ "sc:child", - "sc:forwarder" + "sc:reference" ], "gasLimit": "500,000,000", "gasPrice": "0" }, "expect": { - "out": [] + "out": "*", + "status": "" } }, { "step": "checkState", "accounts": { "sc:child": { - "code": "file:../forwarder-raw/output/forwarder-raw.wasm" + "code": "file:../vault/output/vault-upgrade.wasm" }, "+": "" } @@ -58,6 +62,7 @@ }, "expect": { "out": [ + "str:upgraded", "str:upgrade-init-arg" ] } diff --git a/test/features/composability/scenarios/forw_raw_contract_upgrade_self.scen.json b/test/features/composability/scenarios/forw_raw_contract_upgrade_self.scen.json index 027f242aa..488d3b24d 100644 --- a/test/features/composability/scenarios/forw_raw_contract_upgrade_self.scen.json +++ b/test/features/composability/scenarios/forw_raw_contract_upgrade_self.scen.json @@ -9,8 +9,8 @@ "code": "file:../forwarder-raw/output/forwarder-raw.wasm", "owner": "sc:forwarder" }, - "sc:vault": { - "code": "file:../vault/output/vault.wasm" + "sc:reference": { + "code": "file:../vault/output/vault-upgrade.wasm" } } }, @@ -23,13 +23,15 @@ "function": "call_upgrade_from_source", "arguments": [ "sc:forwarder", - "sc:vault" + "sc:reference" ], "gasLimit": "500,000,000", "gasPrice": "0" }, "expect": { - "out": [] + "out": [ + "str:upgraded" + ] } }, { @@ -39,11 +41,11 @@ "nonce": "*" }, "sc:forwarder": { - "code": "file:../vault/output/vault.wasm", + "code": "file:../vault/output/vault-upgrade.wasm", "owner": "sc:forwarder" }, - "sc:vault": { - "code": "file:../vault/output/vault.wasm" + "sc:reference": { + "code": "file:../vault/output/vault-upgrade.wasm" } } } diff --git a/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json b/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json index 029d9726b..c4461a48d 100644 --- a/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json +++ b/test/features/composability/scenarios/forwarder_contract_upgrade.scen.json @@ -32,7 +32,7 @@ "gasPrice": "0" }, "expect": { - "out": [], + "out": "*", "status": "" } }, @@ -62,7 +62,7 @@ "gasPrice": "0" }, "expect": { - "out": [], + "out": "*", "logs": [ { "address": "sc:forwarder", diff --git a/test/features/composability/vault/output/vault.wasm b/test/features/composability/vault/output/vault.wasm index 71ddc12a090beab734749d052329352509922519..e44652aa7d2b7f350b7cba1a444ea680157c3b7e 100755 GIT binary patch delta 2774 zcmai0Pi!1l8GrL;c6aOa03C-jcae5 ztQ$LB+eJmF>o$-RLR3!zBwCOVh)PutRdWKNo=`YYlv6~xG?t>O5;^1mQaP0H`)1Z@ zsv@woo|*T)|G(e&z4z&%ts_7FwYeQ1c;~m{W?THirPWL87lom3oBi^s8U3j_t&dvW z`~Pv(cA7$MecyHxzcYK{mur{T8ZSvrbe->P z)HWKIYA@DWItzLxmN%Z$wOFCJm|CuFRM)<wl2u&?Uk+9n543-n|8 zK#B|c&oRGuIk9w-O|Zf=a&a z8MNCsyo6`cKw0MTA}c20VU%Uov%Lh2(l8!&-4pn>yqFiKy?QS3(TQRp$nk_zf=Bi7 zReMkhxV?|R#BnQJQJZBc)F!!VGX}v(^6nQT@9J0VOb?su%t36J?cLb2Rfb0O+xFl} zF_3U>P$uU|XNdDF`KCGH33ycZLUXfI)`VxWlqac771wYa&vXtzI1~%a9YM%JMs34> ziXIn8z%!LmN1&*|K|Rqnf2w8Dnox#s!4fNAv+Uy)9?H_f!-9t63QrIRo9+$oz&lJ-(`&IpSMpLlX|=TtTCmJIOm=ym8BbImK>BWRd$%r0fbo}5K|=# zwUx+WebXtz#6O*j=^047b!D+`XuzVU^b79!*csu_nRjowDB&4xcMd_)1PheynJkHa zEIHHphvccqb4z2@Q#&PYWa@pOU5%xsVQGa~J zR`w3)dOYPBr}VR_U4AK$^i_@@6*^~_+#C@S>V0T9AmAIR*|FPrcj+_-Mn}N~gJz*o zqMQ>GR2R;Vq_iR!Z;F*b07pRw0uaTelHSu*GM?6RU61VF?S~BIP8)(xt73Y1m}NN# zo9Ie(T38K)Q;l#07x*4fyC3IufYMpCupHRAH^Daflx5FyDI)mBM*g2gO9l*R_L<%mAp?N5DPg%xf=!J;okvJg|BV4;&nX&zOOgx09j zS704Ug03h(Dg9n|w)y`peO@Wd0MLW1{fK*vMyNOEj7M_{P@tH+jC{Y&<=h{pL(ixP z5)Q`z96RBt4vLbd)sB;7B^b`#dK@9_BpTHh_yJ0MCeH+X&mJ^2+IZ?@|iWD$^(=?21c}lGPs6DMWhkV zG&03ePHt`gJ>yvxW@rop65fU|=YEMwqzV3DFs$G;DPv$XFfnN?YKo|m2lY$6dE>DD zN$(&(hqKH9-IMclFnBPt~NHL+j7&y$0gm&VL zX(UW$N0*J^htuY1o*7J;NpuRBKa@+d5rK24u(P%gYie0tM-n1DBv=~lvykZ7RBo7&y!$eMH3&yZMkj-QVkta{A z2b1NEundpu^V!~hhB@qhIHXd5{!XKHOH_fE*RnheexEHQN+52Gj_K`ePcxcA%!G<^ zd`oR@*$(Q#9eSlzZSH0O6%uMpTJ=KBQ@`wg15vwtBT;YJjUo-`_P(l3+Cuv6%AIg7Rf7n+6 zKQg)RHp6K~BN)_NubYBLd=HQKsMGn}^k4%0j%@nD=rQIt&C{2iuGTnEzX4hSdi0^C zYgj6TOV2%+*xVic=#Pgd-+4IwpQBIx6{y*CI&8V<-RFCR!6898>;zNbDk0P@kgJn$ zb~{@ZZXJx!9o^CYf!(^ZE$NT?my>I_JmQX7-B_#g#ZsTj2m0mwYU&Oyr|#=~HM)Pl H$-n;q+-LzF delta 2803 zcmZuzZETxY6~6C>?KgSt_}F!v*h!Z6edDb*P1Ce#y>{tGuDc}N+GbflfE9-8IbNDC zXL6EGn-C6ELPGm7&_!ZDHt`2(ny7$jzz+}tg!qewgn%EFwn`JKG&FU;Mt{)qoclUk zQR^uFxbHd7ea<=0IrnZ){`biDe`5VD8oc}VF-v`F^_iz;RkuB>&e`ele_wOlwve~+ z5&MOeiLN!))?2Tb!d_}FZHlk-H0oE@tF_kR)>@;vxgox)erS8c&$)WJURzylw8W)& ztzK`uv{`*|tGTctzLrzTp`0ncu0F9x==pf7vD~QdJp6|8BO~oMLSVrJ{p{k4v*z z!)Vh;U{nMN&%mD`yt_Fp%Ny4mc|$!Lebg9HFGmmb6{$!i&y=)W5bmzfQON7+57EM< z>#zmDK-m=TkdTWM_3#eV7%)xVft);b0Xi)_7*>R5dX{H<5gK(b7-oA!NN**G6$BN1 z$1|wl8(z$_C{V{^x%6HyCY@zCI_%;_sic--|MErxL9Qp<64U+gno~4IAmlx~Vly^Y z)VkBR=c5PKu_9N%RIX4$u0#OfCcuhD)Vt0uV?zDeDYi!flX+5K-ZR}%4z}o9)|4l( zhrFdB=cer`#K3to=@6CUhUH3QV1rAA27AR%9mo+ z&EdDarS5c%?G6#o*i%Wj!v@Z-4u~=g)Wtw2)Li!vioV+I?LLwRm`P6uR%IJ6x`a#_ zS^}Q+Hc)>4ZAWHlLcP~LZAf*e`#IxDb>4mcaItL0bPeu?42(Kc zS+noNc0}EB3xG((uViLn9bc9<`)UB2PO0z3FGns4moC2dNgSEJsJxz0SXz*WbUceK z@y3>ydw!QZ6Ykvco=~I7myGM`t>m!~Lw%5(E=$IDP$H)28}|{@1vRC|dQWQ!bVM;h zWp#<>_B{!4NKrNiIoWb>If&AXZ{tUlp7LYJdS)5x5H3HY8TAi3Jvi+d*iITVEDG$% z47C;$)d4dPv?5}>KK7sHV?w=*V^pE z^iUh+frPj`__XO9_CQGqF%cKkV1-jh^FqEakRvqroMCm8EYQgVbW9353LoT%0~K7) zo8NI{k{)LO+t)aF!0LE{`^lhe9_m)#+?8$rzc>5-9=U95QIKhf#YNxc6`%Xmhc-X&*CZbK(qgDlf>p2qE{75Ky6CW{#q%KFy3qCe0}tS3&P-qzhd_xM~OmKs!cX|u$FWC8}{HP-s_N-_EXwI|X2+edJJ|^6& zM&!O49+M^=MY#KcY|vpJVv`Wd=hgfx*waomp)52YIv}hkjX~_5S=qk%ai3?~7@-l& zN9?u-Bke~R!WqJTIu9t&cTF?WHok@AS~MAsLsW{lRzJuNBJQ7M_qGp%#%+YrLvuc~ z?pr1o_%2WUS*SVrq zo&cQ)I`B7r2fOAG12hGoC0}#d&T+z#ip6QL@Hy z9OKtvW(Pq>=%m^99OOtQd|SS@?QpssJmV3?$|_4254N`*7xZ|BRA?CKvuOfK`%)e` z=KFw+bb*8)+d=h=65DEslX$oF_ZXdI=r0njcTlh94xN%Z_UVMqL7deP_5?;&T)60f z2mPQm8kTS17*2$2kd$flS?+PDYhV7=ww{JGhVi`{s?tNv?d8EAHauT9JV0PVf%^dZ zVUp!Z=jk}EHKCDw3v~_9&i5_dg%pSNk|l6Q5b`h3eh=}{`yUI}3C`6GYx=x;ZQ$=} oX>d_}Fc>7)anHncw7R)onZ77625Oa9WM&glmO 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 ARR910 literal 18243 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 E0#|`^g#Z8m diff --git a/test/multisig/output/multisig.wasm b/test/multisig/output/multisig.wasm index b276d9320701858b029d425a4385d885a60a3a26..a707316167cd9acf8b94f311414c7386182f3e0d 100755 GIT binary patch literal 15295 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 IfiFw`7f{mvZ2$lO diff --git a/test/multisig/test-contracts/adder.wasm b/test/multisig/test-contracts/adder.wasm index edbbd78f59a40b8516b104c913cbd83c0a68e59e..ffb39b0d4e26f071164fbc6fac3f4800246f37ac 100755 GIT binary patch literal 697 zcmZuvO>dh(5S`g2n6M3OVyl&-9w?{wlv~fmQe9Q5qDX1aur_OK*+8^FE1&RB$Td<9 z{XP9t?k?a+m3m-z=e;*?J_Lv=M*zSNP6Chswh3w5{)7ZuNNC%|<}v`b@3A@HxtV(Oh(N^rbH^?(v9O()FPHeN`b}kT8f8wAu37H{e!ND z*hau#g}@;IHZ|e%!7<-^0ugRQ_(%*h0geI8txrCS4q7nf1lViMbh-3;cv$+uCfY^A zBtU+qhA`RGOHM942Vdk36r6Q6m&9o^Ce=iKAxEJWIBpw}ShA>m%A u>uPg1AYBFpWb8(_s~cl)f2p#_f}+V6QU&EI5W`PZReDusFlId;kH^3K_p3et literal 3455 zcmZu!+m0MZ8UCxfdvPz^@o zyINYv$&G`7d?p2&T0WbUaIf3mghyA(%^fKg*VlVxU9MNdUZTwU`t7RRTfbROszm2! zlz3&@&wlRnUs!$Sxi2n0_{39-;>7-NHk*kF%Rh(Z8Bm>a+Wt6f|E-joK7r*-yxl31 zC&N--c5-z|T;gO^r%quFlJ@B}5S35*ULX2tzYza_MN;D5z5o6UvTdq(UHkXAhrmS* zY6k*oA3q)bwEO-Mx%MwS72YHlb!SyeM;UOT(bzhnx;X#3Ik2==G6 zZJq!)VzB{xK^$-&XWGA$f5A9q&I6hasGYpHBxjBNIeB7ovA>9`WnuQ!%45|Y!+2r#uj3Eb@Jl7`nVjWNS3#V$h_5RlA1pwI<}Jh==y zuf=U*-{9f|Sa|y;Nn-4;;`^Bf@t^D|AxF<`zK0Ux_4~Mj)c=CinYk1w?*z)~yiZV0e~8k|9SWl9 zpMNQ(PxOz9*$B-dp;8;!Jc+Mps(Y8W;O`EQ2J zJ9MKfgnvA4Fbj^x4QeTfrz3y1KQNzW9j;P`-Nu3>PrGQ_OC8sRQY4hV?v0)yEKMAAlD(!ibGLfkuRa6S(_QsiQ9$F zdFe6;PKT-B6w#$eVK)y>yP3^P2pR|uN2~oS(HAX%&QR(gkwqVtV;SOvmdg-3N`PFn zLTosawQKRb583Lr3{1^$8rL%aNz}p=#W3x6Gg@Pr>~t5916_Av1(EIM3GN_$+2xFW z-c{TrB(R{09N7k)VP&QlVXWOR%#Lfnw3I=JmjrNQ>@B|+u+q(;a8&B*xYQe~vD6tA9*zujaP>v6o6s;Q?LM>HLPtbF3f*Uo zAt0d>6!|avA?M*k@+&mbMtDcA`JpAKZ<4N$Oc(Ufrbqmh|9(?G_2m3?C761SM