Merge pull request #9754 from filecoin-project/asr/bump-fvm-and-actors
Update FVM & actors
This commit is contained in:
commit
eccea8c7e2
Binary file not shown.
@ -44,23 +44,23 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
||||
}, {
|
||||
Network: "butterflynet",
|
||||
Version: 10,
|
||||
ManifestCid: MustParseCid("bafy2bzacedrip7ekfxytqyx2dj5ggg7itm6w3lywgqsfs4lr4hlcrve6vgiqc"),
|
||||
ManifestCid: MustParseCid("bafy2bzacea4rgt75va5jdxqgsk7gnoy7v3w4xfzbjcglxbgwb6gzh6sg3zl5w"),
|
||||
Actors: map[string]cid.Cid{
|
||||
"account": MustParseCid("bafk2bzacebui5xw2dlftdkdo7lalrcjceohc6xpqnmmyrtdhsihi555c34w3m"),
|
||||
"cron": MustParseCid("bafk2bzacea7kk5jbwcl3hmy7lmuoswj2vwvm7enbibt4hwxoqdla7yuoqn3hy"),
|
||||
"datacap": MustParseCid("bafk2bzacebnhnt3tubzngnzmlgxrfbjaf6dcsijplaz5nbdzye75fexdlpndq"),
|
||||
"eam": MustParseCid("bafk2bzaceb5tc576ogvaafng6wm5qt5vonyha6dcfzyieu7zsaseulo6hogka"),
|
||||
"embryo": MustParseCid("bafk2bzaceb5shyqwqsogg2izzfteoxcqji6pzqakuc3auvjo44uv5ndhaxt5i"),
|
||||
"evm": MustParseCid("bafk2bzaceaxcgbhb2smi7yp7vjdqcclxc3iuma4rharhuavpwzgqxnhx6plss"),
|
||||
"init": MustParseCid("bafk2bzaceddlj7vpdmsjhpafxfb3ltgwgzlckcss6khxllwiwwu5ml3d46pga"),
|
||||
"multisig": MustParseCid("bafk2bzacecxryfy3nips4lmoehiim2gbhm5brxdeefslbenlhg2tix3rpkpnc"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacedu3xgcuftzf5xthcbwm55sd5rp4ptc2ulwciw56jajfy54kswiw6"),
|
||||
"reward": MustParseCid("bafk2bzacedoojima37co6gllv35osnewurtycv6yudvjq2cgdwavll7sn6gbc"),
|
||||
"storagemarket": MustParseCid("bafk2bzacedvtynnpaxuyunegh3x3cql3sidflwkjtrxkkaqcukdrmdox7xziw"),
|
||||
"storageminer": MustParseCid("bafk2bzacednwhb2l4xth5tqgtmftybaj52rpehidesp2xjg7xbi7u62dgst6g"),
|
||||
"storagepower": MustParseCid("bafk2bzacebx5cu7mkxiqxcwht3j45yd3mrstcvncpipgrqv2velnwpzkrcvzs"),
|
||||
"system": MustParseCid("bafk2bzacedigfwdw7pjmmvsyzo2vajmfa53ctyp2yz35hsd5c63h4xrxskmmq"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacedfq3vluteepuco72n6f7jlp6sbfsstpecjhukiou6g4jivrtkvx2"),
|
||||
"account": MustParseCid("bafk2bzacea4gzorvg3ckenh3vpmc44mesw2jrm3smmazl6auc2bmklseadh6q"),
|
||||
"cron": MustParseCid("bafk2bzacecksdqimo5w3lmqt4c2z5xrrfps4slqlulqgl654hyemir7n5zeei"),
|
||||
"datacap": MustParseCid("bafk2bzacedquhyslr3b3bug6owm43xt2nr4t52gdh2w6m72oqkfog7ehxfelw"),
|
||||
"eam": MustParseCid("bafk2bzaced5vm4tqg5qeq7mq54qlxufxahl6iyvbflrxt4qj4cq6xqhbe7kwi"),
|
||||
"embryo": MustParseCid("bafk2bzaceaw3z7opkwf2nqh4jodh2oowyi7wn4rx3iuzohn6puvnvmzx3rwoc"),
|
||||
"evm": MustParseCid("bafk2bzaceajaevvmu6bfnnuoj4dier36r4ffdf6rnbm5qt4gwfp22c3hwqtpm"),
|
||||
"init": MustParseCid("bafk2bzacedxxpw3vnppnl3xoibhmztnkf3yr4njoogbng6ey2udesqscrikty"),
|
||||
"multisig": MustParseCid("bafk2bzacedothsnjtkvvfubj6ilkwe727ithpo4a76m7whwc5gacca7iyfo6c"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacedetrghid7w37oevk6yhh5w3fl2aescniglof5ygvvnd2mey3uzjc"),
|
||||
"reward": MustParseCid("bafk2bzacedmem56ss5h5xe77vpot45yb7bcrafhom6f7d7vthbidcxrow45nw"),
|
||||
"storagemarket": MustParseCid("bafk2bzaceavgzm44zasym7cz344teslgo26dsg3oeseula4z3uctaip2lq5ko"),
|
||||
"storageminer": MustParseCid("bafk2bzaceanuok53qivst7b3ppklaaiszzchszbj2l53pklinuylnill6chwa"),
|
||||
"storagepower": MustParseCid("bafk2bzacedlfi7lpsekg6azt22ehu5ivxe5i5ieaw3eofmifupi5n3frwvnqy"),
|
||||
"system": MustParseCid("bafk2bzacebfpjlwzt2obh4a7dddhrzi6gtvvhoc6hygc7nwvv6pqrjasxb4zi"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacea4ygqb3y4ogzjv26ii2fucvkt34lvbjeknsjdbvxitf6bzcbd46y"),
|
||||
},
|
||||
}, {
|
||||
Network: "calibrationnet",
|
||||
@ -100,23 +100,23 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
||||
}, {
|
||||
Network: "calibrationnet",
|
||||
Version: 10,
|
||||
ManifestCid: MustParseCid("bafy2bzacebenfsnosatbwn2vskkduv5dd4fclymp3szy5rudwjjnpacjwgabw"),
|
||||
ManifestCid: MustParseCid("bafy2bzacecvby6w67j5v4t2mn66hvupsrknxnntunmzw3rcfg6geyinwv6jxa"),
|
||||
Actors: map[string]cid.Cid{
|
||||
"account": MustParseCid("bafk2bzacebvkqmplmi4qta56c3o7xenxfnh52ubcru4oqaavx2mel6h7f3r26"),
|
||||
"cron": MustParseCid("bafk2bzaceddqlwubzbrhdnkvgzoo6jinmn35qqnh4vtmkxhhnqmvoy7z3ovm4"),
|
||||
"datacap": MustParseCid("bafk2bzacedce7wj2kdujhvo55bfqwxup4gccdahvxpxtn4oqand67cnm7oaes"),
|
||||
"eam": MustParseCid("bafk2bzacebvs75jzsh74vs43i5ve4ikbiy4h2sbg7fbqiv53lybwufhk6gntc"),
|
||||
"embryo": MustParseCid("bafk2bzaceb5shyqwqsogg2izzfteoxcqji6pzqakuc3auvjo44uv5ndhaxt5i"),
|
||||
"evm": MustParseCid("bafk2bzacebni52v7johlrrvfagunysb5b7ssruapbuw3lkw4raavhrf5dbjy2"),
|
||||
"init": MustParseCid("bafk2bzacebdjvjkidqczhk2dfmmfastxihuru7qssdsegxibx2u6zsmwxbr6y"),
|
||||
"multisig": MustParseCid("bafk2bzacea53zxqqchdykxyklsuuxr2nxavzym5prtw5jrnarrjldttcqxluo"),
|
||||
"paymentchannel": MustParseCid("bafk2bzaceck54j7jukcc22ubrzf4yyiaxz6p5hmwkxqgzvevsn7x5nrpghxf4"),
|
||||
"reward": MustParseCid("bafk2bzacedlh4i2phmiqfbfl2zyajpzaigbgqp3fcdwtphststpap6e3pe2xg"),
|
||||
"storagemarket": MustParseCid("bafk2bzacednr26koccefqs3pkab4e3bu7g2hxtwodrqaidj7lmxtaj4l4qbyw"),
|
||||
"storageminer": MustParseCid("bafk2bzaceb2vgdzj7ydnhfr4exyat2aiuigglhwqv7pu5p65l5syankhjbaeo"),
|
||||
"storagepower": MustParseCid("bafk2bzacedbqdw62m5fah32bkvns2ubz32lgqu4fngp77aezzm3af7b6vmvsu"),
|
||||
"system": MustParseCid("bafk2bzaceazgpbdm5nzg35jwmt6s4nqgy5ok2ne3ndhomkq6erits4l2ruyac"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacebs7l5v7b74fy5eqkmcdccbkjqpxykn6au34p4si7m2hc3utrpwhq"),
|
||||
"account": MustParseCid("bafk2bzacebm2q4sejrpri42mnnivz675ojruxz7kwxgofpnigisdfg5tyktou"),
|
||||
"cron": MustParseCid("bafk2bzaceb5anggiq6okthrcze275zobnn2ymgwzopgipedzex6kcy6z7ekd4"),
|
||||
"datacap": MustParseCid("bafk2bzaceaxicmkwivjartajumk6hn3ci3wxslymsujk36y7joai4zldepcc6"),
|
||||
"eam": MustParseCid("bafk2bzaced2xbe3m2wywbjn6rqgqe6xcro3ysckixztuqljw6bqofkp7ers22"),
|
||||
"embryo": MustParseCid("bafk2bzaceaw3z7opkwf2nqh4jodh2oowyi7wn4rx3iuzohn6puvnvmzx3rwoc"),
|
||||
"evm": MustParseCid("bafk2bzaceb2smsfr2b5sa6iqf74wxdtpyvokbc3ii7xxklzww6uw7pkpwcnai"),
|
||||
"init": MustParseCid("bafk2bzacec6i5tozav7o4wxfs2tjaikpvnremoih6q2goifyj35n4zc37ax3i"),
|
||||
"multisig": MustParseCid("bafk2bzacec64dno264s5wjc3m3ejvn5u4a6zfbfyibumnkajcpvdszi3vtycg"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacecjoc36gvwlorpfau3fzad2rublc7v53t7rnsz7fmibe7kjahd5ek"),
|
||||
"reward": MustParseCid("bafk2bzacedafgfzmuovijtm65ptplogkezdj2tjdfgwnof4kshzuxcqy6ugq2"),
|
||||
"storagemarket": MustParseCid("bafk2bzacebombqolnpmzk3erezxpsrnaoue6iz3enlwyvqnthufwq7dufzexi"),
|
||||
"storageminer": MustParseCid("bafk2bzacebr5dqqf43mptdkp7lq3h465ybia2bfoyj64fbscihn63igqjpks6"),
|
||||
"storagepower": MustParseCid("bafk2bzacecikqp3mimztmwozjmkyihuttsduzvxam4ymomfvwwce7dimbdj2c"),
|
||||
"system": MustParseCid("bafk2bzacecudy6gzj2d3syssl2v6ap4cj3wir7k35pypvwcztnscrjpdxztje"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacedw5wqq6gzeidkeod7acaquan7xl4faolj2g6rehtml5zmq7sfoaw"),
|
||||
},
|
||||
}, {
|
||||
Network: "caterpillarnet",
|
||||
@ -156,23 +156,23 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
||||
}, {
|
||||
Network: "caterpillarnet",
|
||||
Version: 10,
|
||||
ManifestCid: MustParseCid("bafy2bzacecprcdvekabbiozu6jaferly4jpw4uxoxy55ouioopv2uhsyfnatg"),
|
||||
ManifestCid: MustParseCid("bafy2bzacebpjaxv7j57sgukbglsc2pca52v3isw6iqeh7s665k4eyhq4da37s"),
|
||||
Actors: map[string]cid.Cid{
|
||||
"account": MustParseCid("bafk2bzaceasuszw5iqejn3afhc2oftpmnhgwg5gt7d3fryfi3pzyuv4vaifzq"),
|
||||
"cron": MustParseCid("bafk2bzaceadt6coa6p7cgwt7k7sz7hafpy3ilma4q4obghn6xsywjedar43om"),
|
||||
"datacap": MustParseCid("bafk2bzacec3hswe3wucjxlqavck4ijdto65gwuzlqlhstpj22icx3xgy6y25m"),
|
||||
"eam": MustParseCid("bafk2bzaceb52bwd7ikj7dnpeebaak2aaoeqdp6sm5n3qu75gyhym7o7sa64oo"),
|
||||
"embryo": MustParseCid("bafk2bzaceb5shyqwqsogg2izzfteoxcqji6pzqakuc3auvjo44uv5ndhaxt5i"),
|
||||
"evm": MustParseCid("bafk2bzacecw44r27pmmurhlkf5vqnqjxpivnh5oopegonnl2o7rtu3wyc4h4s"),
|
||||
"init": MustParseCid("bafk2bzaceb2hcbworiltqg5227d6xcuhypgd2x2olsnqdk5ung5rzps5hze4y"),
|
||||
"multisig": MustParseCid("bafk2bzacecwcqghlxf76d5a6uwn65ryb4ogrgktlfb6pc2625v5uznnz5sshc"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacebk5bxknqhlsrvgdnleflwpmkc25hfx4zrqxasszo3ktkkvp7w6oo"),
|
||||
"reward": MustParseCid("bafk2bzacebdl4woa2et6x2cg2gnw3zpx3a6jhuw3xnkcy4vjhu2zsd52cpgbc"),
|
||||
"storagemarket": MustParseCid("bafk2bzacectrnbmdzux4ktjezov2eghyf4b6khne5bbx57fbw4ubdrplpkesi"),
|
||||
"storageminer": MustParseCid("bafk2bzacebzwofvflpycvpl2oikql3o4gcd2alhoa7vtz4crj34ioegzl6h7i"),
|
||||
"storagepower": MustParseCid("bafk2bzaced7p4fzea2j4hs2cz52uxtxy2pie4avjs5hsdrjwxas2d247v645c"),
|
||||
"system": MustParseCid("bafk2bzacea4nhoud6kwlrnayplpwfwlo5jlqqplu3gj5kp5e3i3pxzwzdmakq"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacecuz22dwb56p4z67fyqsb4qfw3qk3lz6tq5kc3lsxuo7znlbjczqu"),
|
||||
"account": MustParseCid("bafk2bzacedyw4z4v753i5i5b3pzo2hehzwwhnff2sdswzjaqcqsmk62dyv3om"),
|
||||
"cron": MustParseCid("bafk2bzacecb3fpcua6xmhpi7oyofjqoz7covq6fn34ndzavtaweyafhdq23bo"),
|
||||
"datacap": MustParseCid("bafk2bzacedri4nmev2hnpzbqermdrhtayrgp7byahv67rz5xya3to4vlzc74u"),
|
||||
"eam": MustParseCid("bafk2bzacebx54arocffhfzkx7dhc3ahs75qhqrb4lsmp4alki5u6a2yq25jdg"),
|
||||
"embryo": MustParseCid("bafk2bzaceaw3z7opkwf2nqh4jodh2oowyi7wn4rx3iuzohn6puvnvmzx3rwoc"),
|
||||
"evm": MustParseCid("bafk2bzaceb4fnnporcrmm7dsncth2ypwa27zu5mw2jscaas763ge64zondh2g"),
|
||||
"init": MustParseCid("bafk2bzaceayohpdeftjsnth2n2tlzuq3gnzm6hbghk5u6t7xvb46li6csrjp2"),
|
||||
"multisig": MustParseCid("bafk2bzacebb7356w4oyynoszp23e6gjrmurrazczoxdtxudmha3jtotzscneo"),
|
||||
"paymentchannel": MustParseCid("bafk2bzaceah4iuyi5w4s3mkajuy6gevnpojuhqezvh5bt5tt7sq5limi46wre"),
|
||||
"reward": MustParseCid("bafk2bzaced2exgpqqpp3htidqy4dyxlj2cuywepzehmdvw63wqngahvcadceo"),
|
||||
"storagemarket": MustParseCid("bafk2bzacebrgozvlm6k7aymg2yucdac6v6aqcujivifsrlbrkdenb7mnwn6fq"),
|
||||
"storageminer": MustParseCid("bafk2bzacecivaazrw5mv3u6i6bybeaj6m3oleszjmlf2ubqgammmqqyiutcd2"),
|
||||
"storagepower": MustParseCid("bafk2bzacedmali47whpko2qqc22ylbko2ozwmlfmaa32s5cjimb7m23apd63i"),
|
||||
"system": MustParseCid("bafk2bzacec644tsb32jlmnuetmp7suwto63cay4ip2legftuilyiz6trfu22c"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacea3dmogeew5vxm6biiqsfgmwom5gd642ghcdzyvah6xllejmfrlpk"),
|
||||
},
|
||||
}, {
|
||||
Network: "devnet",
|
||||
@ -212,23 +212,23 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
||||
}, {
|
||||
Network: "devnet",
|
||||
Version: 10,
|
||||
ManifestCid: MustParseCid("bafy2bzacecwysahkxh4jgpmby7lboxalqv2fbvoohi4tcf6unllzwlrgb6n3u"),
|
||||
ManifestCid: MustParseCid("bafy2bzacea2z2ofgzxj7fd2zu5iem5lj6qyseltqrjwr456s6cf6brpb6ikmk"),
|
||||
Actors: map[string]cid.Cid{
|
||||
"account": MustParseCid("bafk2bzacecui4vegcaloi3dt2rob6dytzr7iag257jfszwdtvqgcun6vi2ggi"),
|
||||
"cron": MustParseCid("bafk2bzacedukjjklhrahhnbwqcbe3ppowu6cdd3ev2ncsynjg63ese36zg5es"),
|
||||
"datacap": MustParseCid("bafk2bzaceaucxyfovggh3hn3iwfqm45z2wxovyasp47ji6vhwv4zlfmtcfg3s"),
|
||||
"eam": MustParseCid("bafk2bzaceazgazurwhvwoj4evuxmw5sd2bje2dr4kvyklunlapvw7kyhpzn46"),
|
||||
"embryo": MustParseCid("bafk2bzaceb5shyqwqsogg2izzfteoxcqji6pzqakuc3auvjo44uv5ndhaxt5i"),
|
||||
"evm": MustParseCid("bafk2bzaceam256namf22qqvbj4owo6jhsz5ai2lv6bgp2cqe6mqpyklzl4v2c"),
|
||||
"init": MustParseCid("bafk2bzacecwy6qxelpbblzgq5ehzqjfe2k47olme3a2kmegth6qsyvykxyfui"),
|
||||
"multisig": MustParseCid("bafk2bzaceab6p4qg2jmqdylrgcam5u4md3ho7wiigxtnrj7h5qwplvuhe3qm2"),
|
||||
"paymentchannel": MustParseCid("bafk2bzaceda4axurklqhlb3w3t2skgqj2xqi66cdufcdkgsl5v3f6qdvp7neg"),
|
||||
"reward": MustParseCid("bafk2bzaceax2wjon7qzsfha3cm3w2cl6rplwxg4onhyvermyhmeu7gubzdcha"),
|
||||
"storagemarket": MustParseCid("bafk2bzacechmh6ufrhsodqxt2kf5kys2e7mtzom73l6qqemrebsatxxzvfkfy"),
|
||||
"storageminer": MustParseCid("bafk2bzacebvtukozkvkmcj74o3wvozvi5iese5ijmhjd7u73aqcp55oc3z2tq"),
|
||||
"storagepower": MustParseCid("bafk2bzaceaun3ipavgb3axpt7zjkkfserw6rhnorpvoicqihdmsyxuhymv6mq"),
|
||||
"system": MustParseCid("bafk2bzacecrpokwc27mww4zf3l7kaxe2m6sgbzuuvouzzpkk7uh5ax4ufrx2w"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacecnbhvtkipjzczzwekkgmohikkeftconlvpdqkmuxrke24eb7trzq"),
|
||||
"account": MustParseCid("bafk2bzacecn4usaovgx6oc3xvzmggsnlbhgxttqbvgts5wjiub6t546xrh6w2"),
|
||||
"cron": MustParseCid("bafk2bzacea3t2j7zwa74y6de6jvoreuvon2v7ilzdkp3hifkjc32cvp6akhp4"),
|
||||
"datacap": MustParseCid("bafk2bzacebewv7cf7pftpraqmrpaymtgvcd74ga5tb76fsuzokga7diq5soom"),
|
||||
"eam": MustParseCid("bafk2bzacedw3dfaqeyddwo2w5nrfjbi6wfcedllxnmi6e7z6ch4yjlpupb4la"),
|
||||
"embryo": MustParseCid("bafk2bzaceaw3z7opkwf2nqh4jodh2oowyi7wn4rx3iuzohn6puvnvmzx3rwoc"),
|
||||
"evm": MustParseCid("bafk2bzacednmsvivt6tszxgnn3xy3iuwqqlhn5uif6mf4gj2du6ec4m6emble"),
|
||||
"init": MustParseCid("bafk2bzaceaiz75eb4s73eublv7al5pq7oonsr2l2ce3aswmvty2qiwq4v2fka"),
|
||||
"multisig": MustParseCid("bafk2bzacecgbfz224ry6qz2bqbclko77mpttrzl63xrowhmvitoq4n24hsiga"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacebqymanf5t7tskexwjxcr6xf7hy2s5zvfpzixkt5nddlzy4eopvmi"),
|
||||
"reward": MustParseCid("bafk2bzacebsmzgseuzbmian7cviplttpr577tavbtsysunnhrgpz6wlmrvcr4"),
|
||||
"storagemarket": MustParseCid("bafk2bzacecctblbu2vrgydkvni3g7fgqmbxr3rgatlbhg77lqrrb3q24hwacg"),
|
||||
"storageminer": MustParseCid("bafk2bzacecfo764s4lyxjgfi5vf3lt5pphxmxjsactveth4sjjhwxkvvhymce"),
|
||||
"storagepower": MustParseCid("bafk2bzaceaaucwxcfqnsikbrbacyb5f526rf5x2ld22knl237itv3gtlhx6we"),
|
||||
"system": MustParseCid("bafk2bzacebaeqxina5ftv3vfjhf3lczpgr3iidkeuefj2azuqiwnfge22btc6"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzaceam6msqybrhgd425sfs4iilkfsi4rpd6w6lt24oafihrraaxpdd7m"),
|
||||
},
|
||||
}, {
|
||||
Network: "mainnet",
|
||||
@ -268,23 +268,23 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
||||
}, {
|
||||
Network: "mainnet",
|
||||
Version: 10,
|
||||
ManifestCid: MustParseCid("bafy2bzaceb2ssutz56smwc6vwigjgo2kfqirnwkwq7zthxscynvtzn7ebywt4"),
|
||||
ManifestCid: MustParseCid("bafy2bzacedegqdnmxsyqqp5oxrkwqmn3tvvpq4vicsswaydzaaznajb3hojim"),
|
||||
Actors: map[string]cid.Cid{
|
||||
"account": MustParseCid("bafk2bzacea34fwixc5x473laalyitolzttxxus5ulxi2ukylsubhrl2m32zhc"),
|
||||
"cron": MustParseCid("bafk2bzacebxkofxwtkzmncfb77slj4hvwlhazb2x7li7gbdhfbh3gxdmud2eq"),
|
||||
"datacap": MustParseCid("bafk2bzaceac4u53w2fwsez4fmk5to4u5f6tls2obsutsep24nswiclqme75uy"),
|
||||
"eam": MustParseCid("bafk2bzaced25owr5v4k4ypzm5qxi7c3juobbudekogapqaqia23chcyo43ofu"),
|
||||
"embryo": MustParseCid("bafk2bzaceb5shyqwqsogg2izzfteoxcqji6pzqakuc3auvjo44uv5ndhaxt5i"),
|
||||
"evm": MustParseCid("bafk2bzacechckrenio2m67kvacfbzmpm2uosnrw5zmrzsj4b6cukwmhpjfg6c"),
|
||||
"init": MustParseCid("bafk2bzaceblbm5moflcetob6wbl3tjbi2zhyangfrmp4jux7wyeixi7ptctu6"),
|
||||
"multisig": MustParseCid("bafk2bzaceadileikmkovoi4ewl4jbyjgnntl7rqsqlxs2plj2ruv776qxp5hq"),
|
||||
"paymentchannel": MustParseCid("bafk2bzaceasjtgnksm3infcphwhyg675hip3t65q3pzknatf6aqb3mi57pj2c"),
|
||||
"reward": MustParseCid("bafk2bzacecozr3gal2ywayykdgrhjbttqvwktptyvlvph6dunqrlp2rnl5rbq"),
|
||||
"storagemarket": MustParseCid("bafk2bzacedv5grgmgmoxjvvrszb4phdnhzvlsjv6g3ugirjhgghfuncc67zvu"),
|
||||
"storageminer": MustParseCid("bafk2bzaceb7wvvvx6dduzodqanerefg5q6k2qvbrlzcbhal5yjhkzun64vtvk"),
|
||||
"storagepower": MustParseCid("bafk2bzacecauoq7xxccmc3hrbbsktonlivg7pibysrnplelsvgdzpzpryv6mm"),
|
||||
"system": MustParseCid("bafk2bzaceapfdn6eteiqvvhape3iyybobhcyg6lbmncmerhcpckcj444uk6qo"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacec4v5cozakcgq5btelyjz6hkmcmftj35a2qvcjfcynb6hw4ifxbeq"),
|
||||
"account": MustParseCid("bafk2bzacedpweyqqf7zig5ghdrnn5wi7plhnmicfje75lkgkcneeh4aijcjsg"),
|
||||
"cron": MustParseCid("bafk2bzacecs54gyscdh5u76vpgrhdycxqwheivmgcamyvfau5sr2f7zyazvqg"),
|
||||
"datacap": MustParseCid("bafk2bzacedrwn5sqajrsoyzjgcljou4a44yxx4fo27b4jgysjaqssm2ysydcc"),
|
||||
"eam": MustParseCid("bafk2bzacec4ptxbxh3f3hoqufvbnjm5eiaiuohlxbbqny4c3hgwggoihyude6"),
|
||||
"embryo": MustParseCid("bafk2bzaceaw3z7opkwf2nqh4jodh2oowyi7wn4rx3iuzohn6puvnvmzx3rwoc"),
|
||||
"evm": MustParseCid("bafk2bzaceayxmp4rl4sdsfsdry5e3qv7mdzgkgohk46h3notmxqvjutadtcr4"),
|
||||
"init": MustParseCid("bafk2bzacebiobdrp6ozfsc6ulvi7kflrtibhmfmwbawsotmqgtcu3x6td2dv6"),
|
||||
"multisig": MustParseCid("bafk2bzacecfdh7o3d7fqroy26bugmo6lsenh4eeohuyxudrb72ogzkrrsazus"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacebdtcwhs3a6cem76jthiyr2hrcmmlyxvgn2xcmwhdnfimvoczcwfy"),
|
||||
"reward": MustParseCid("bafk2bzacec4d24zj4qokg5uf7zog24co2rrlkzc6dlwxj5qtaiiwjteapwrpo"),
|
||||
"storagemarket": MustParseCid("bafk2bzaceajfqrzxhldofpifrnfb7shudwgf763n365jpw7ee4inpuqifgvze"),
|
||||
"storageminer": MustParseCid("bafk2bzacedx5c6t5isrkqra4yxubyvccbgvaos7ssdelb25maymyy667mt6iy"),
|
||||
"storagepower": MustParseCid("bafk2bzaceburpflgqepbh44yjsxyggdkmp4eetw3ibmxu5gjea6imfkv2vewm"),
|
||||
"system": MustParseCid("bafk2bzacebm4fcxpznmpwvutvl5qihnfiswkbom5u2ov3mnmynjpqspbhjlfk"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacebcoujf6qbatimkxz57oc5pffswlhslhe73scxcuvopoj2o4gvsg4"),
|
||||
},
|
||||
}, {
|
||||
Network: "testing",
|
||||
@ -324,23 +324,23 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
||||
}, {
|
||||
Network: "testing",
|
||||
Version: 10,
|
||||
ManifestCid: MustParseCid("bafy2bzaceaxppo7nkcn456lgend7oqb4pcxdtvk4rw7xqu4qfxsg76hpgjzdm"),
|
||||
ManifestCid: MustParseCid("bafy2bzaced7earbadfcdlrnpu52d4tcngyudcq6oov5l5upibymhfry5ftvma"),
|
||||
Actors: map[string]cid.Cid{
|
||||
"account": MustParseCid("bafk2bzacecasu6oljznrdqpljjomlstq3yf2c6jbofwn5eoivjkgnl65a52lq"),
|
||||
"cron": MustParseCid("bafk2bzacec535ytbuh2ycyjwyhnnyjz2jolzfzuny6kdyg6a4h6jtjwqfwfdo"),
|
||||
"datacap": MustParseCid("bafk2bzaceay7k6yf5ccms37l2pggjioffyklnzyz4b3sm6567k5dvetlpctfo"),
|
||||
"eam": MustParseCid("bafk2bzaceb5c32bdqtnpteri5okrwyg6m57vvcjqf5hggvhgqxgarpdski7e6"),
|
||||
"embryo": MustParseCid("bafk2bzaceb5shyqwqsogg2izzfteoxcqji6pzqakuc3auvjo44uv5ndhaxt5i"),
|
||||
"evm": MustParseCid("bafk2bzacedq6wp33m7oif4hgro52g4h2gdaxoymaic5js4cyyb5emqjfevi5k"),
|
||||
"init": MustParseCid("bafk2bzacedk5bo33m4bjhii6mc35wmth6sx36azjgc4qbus3q45rtsb4xwl26"),
|
||||
"multisig": MustParseCid("bafk2bzaceal376rbj6h6g3wlrs2kiik57ie7rcdb4jldzhd5i2vhq6lgsek3i"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacec7nsh23sha54ete2jl4eupj2hz4rxzyp4wm4jfu466czhkg7vdwq"),
|
||||
"reward": MustParseCid("bafk2bzacecc4kkj7shrexyjb4bamnjlficb2hfnoqnmobcflx2bmzl4b5vqay"),
|
||||
"storagemarket": MustParseCid("bafk2bzaceat4aedqcvjb42nl2yotog462uy5brffvpnurrvxaghem4ppwdn3y"),
|
||||
"storageminer": MustParseCid("bafk2bzaceaeefkoaj7qpae6hivizqau6me4xdbajl2eny5hnexfbzqyooe4kg"),
|
||||
"storagepower": MustParseCid("bafk2bzacecgejk3gyjauoalkdbwaq5kfdx7nnlvkjh4yfa6g7a43332xc2ajm"),
|
||||
"system": MustParseCid("bafk2bzacebtg7ijnioa4xmscxvu6kk4mrnehfrddqgj4nqmj6f32nmvcc2ray"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacecvdxtzrbtrrgtgw6t3nxw3zsslzdz6dybefzti45qbrlvuwqqt3q"),
|
||||
"account": MustParseCid("bafk2bzacebpicdpebz3cmkxiveviqxipr3ui7b7brrxkmljwqw6xq5l2gzjy6"),
|
||||
"cron": MustParseCid("bafk2bzacebhn7klfyr23ngipexhmsbsr7nxubpurx3xfukxqppcoizeng4vku"),
|
||||
"datacap": MustParseCid("bafk2bzacecr2tl54tis53js6waucd42snfabeqqmxrhzxkyd7om7ni57ivuim"),
|
||||
"eam": MustParseCid("bafk2bzacea3otpwxssxlrscj527kbdhzino4tlopzhfdg4u52rtds6tmqhkrq"),
|
||||
"embryo": MustParseCid("bafk2bzaceaw3z7opkwf2nqh4jodh2oowyi7wn4rx3iuzohn6puvnvmzx3rwoc"),
|
||||
"evm": MustParseCid("bafk2bzaced7qpqgscwiq2um3j5jgigj2cmkrfdeyyet7uais7thxbcybjitxy"),
|
||||
"init": MustParseCid("bafk2bzacec3whoya3dailimj2ozjomngowi2lewmkisvtz4xeiyyt5j4wvmoa"),
|
||||
"multisig": MustParseCid("bafk2bzacectzqdgu6fm2e7rf3gckqwhbo6bchfha6yjjxdlfsllrwu7kkmfic"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacebmyoo7nyqtxyhjucz6xgacnqbqpoec5q5tpu5jbqjrslracq6foc"),
|
||||
"reward": MustParseCid("bafk2bzacedjkb5hvskr7rrjjbtd6yomf5a2hue3bg7yupxpdfhfnbaufdiztm"),
|
||||
"storagemarket": MustParseCid("bafk2bzaceac3c2ajpwiprdage7e23pvbd7zr2bjjotsowoodfxbdbvjzopud6"),
|
||||
"storageminer": MustParseCid("bafk2bzacearulcdrsxqsglmfvvr4idrha5mmyvvdve4sxczp2d7na2q3mito4"),
|
||||
"storagepower": MustParseCid("bafk2bzacecnqpq55qiptnzrrqrhfmuguuiptuflco7zg42f5vcorzj6y232lo"),
|
||||
"system": MustParseCid("bafk2bzacec6qqnlzd35tmowisuydrombj46qdjg225l5c7asdlmsrhhfwezes"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacecojfycqzm3ijydyle4n25pnxhue6bosoxsqhmcj6wtcc4w62vfr2"),
|
||||
},
|
||||
}, {
|
||||
Network: "testing-fake-proofs",
|
||||
@ -380,22 +380,22 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
|
||||
}, {
|
||||
Network: "testing-fake-proofs",
|
||||
Version: 10,
|
||||
ManifestCid: MustParseCid("bafy2bzaceb2ablvyxqk2vjhwxq5f5ptat7xiv3euwshwruppxp6ui7b64tvbu"),
|
||||
ManifestCid: MustParseCid("bafy2bzacebyvmc775dd37hnd34joeqazs5qywk6mgrxqri6iibuk3pp5f5ql2"),
|
||||
Actors: map[string]cid.Cid{
|
||||
"account": MustParseCid("bafk2bzacecasu6oljznrdqpljjomlstq3yf2c6jbofwn5eoivjkgnl65a52lq"),
|
||||
"cron": MustParseCid("bafk2bzacec535ytbuh2ycyjwyhnnyjz2jolzfzuny6kdyg6a4h6jtjwqfwfdo"),
|
||||
"datacap": MustParseCid("bafk2bzaceay7k6yf5ccms37l2pggjioffyklnzyz4b3sm6567k5dvetlpctfo"),
|
||||
"eam": MustParseCid("bafk2bzaceb5c32bdqtnpteri5okrwyg6m57vvcjqf5hggvhgqxgarpdski7e6"),
|
||||
"embryo": MustParseCid("bafk2bzaceb5shyqwqsogg2izzfteoxcqji6pzqakuc3auvjo44uv5ndhaxt5i"),
|
||||
"evm": MustParseCid("bafk2bzacedq6wp33m7oif4hgro52g4h2gdaxoymaic5js4cyyb5emqjfevi5k"),
|
||||
"init": MustParseCid("bafk2bzacedk5bo33m4bjhii6mc35wmth6sx36azjgc4qbus3q45rtsb4xwl26"),
|
||||
"multisig": MustParseCid("bafk2bzaceal376rbj6h6g3wlrs2kiik57ie7rcdb4jldzhd5i2vhq6lgsek3i"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacec7nsh23sha54ete2jl4eupj2hz4rxzyp4wm4jfu466czhkg7vdwq"),
|
||||
"reward": MustParseCid("bafk2bzacecc4kkj7shrexyjb4bamnjlficb2hfnoqnmobcflx2bmzl4b5vqay"),
|
||||
"storagemarket": MustParseCid("bafk2bzaceat4aedqcvjb42nl2yotog462uy5brffvpnurrvxaghem4ppwdn3y"),
|
||||
"storageminer": MustParseCid("bafk2bzacec4sgyamy6iobuxesdwkg3zwffkwxnur57tisfpotbbs6kammr4ds"),
|
||||
"storagepower": MustParseCid("bafk2bzacecqxuizz2wxujshjeh7rsric3fkwpa5mucizzamevdpafqewdtm4y"),
|
||||
"system": MustParseCid("bafk2bzacebtg7ijnioa4xmscxvu6kk4mrnehfrddqgj4nqmj6f32nmvcc2ray"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacecvdxtzrbtrrgtgw6t3nxw3zsslzdz6dybefzti45qbrlvuwqqt3q"),
|
||||
"account": MustParseCid("bafk2bzacebpicdpebz3cmkxiveviqxipr3ui7b7brrxkmljwqw6xq5l2gzjy6"),
|
||||
"cron": MustParseCid("bafk2bzacebhn7klfyr23ngipexhmsbsr7nxubpurx3xfukxqppcoizeng4vku"),
|
||||
"datacap": MustParseCid("bafk2bzacecr2tl54tis53js6waucd42snfabeqqmxrhzxkyd7om7ni57ivuim"),
|
||||
"eam": MustParseCid("bafk2bzacea3otpwxssxlrscj527kbdhzino4tlopzhfdg4u52rtds6tmqhkrq"),
|
||||
"embryo": MustParseCid("bafk2bzaceaw3z7opkwf2nqh4jodh2oowyi7wn4rx3iuzohn6puvnvmzx3rwoc"),
|
||||
"evm": MustParseCid("bafk2bzaced7qpqgscwiq2um3j5jgigj2cmkrfdeyyet7uais7thxbcybjitxy"),
|
||||
"init": MustParseCid("bafk2bzacec3whoya3dailimj2ozjomngowi2lewmkisvtz4xeiyyt5j4wvmoa"),
|
||||
"multisig": MustParseCid("bafk2bzacectzqdgu6fm2e7rf3gckqwhbo6bchfha6yjjxdlfsllrwu7kkmfic"),
|
||||
"paymentchannel": MustParseCid("bafk2bzacebmyoo7nyqtxyhjucz6xgacnqbqpoec5q5tpu5jbqjrslracq6foc"),
|
||||
"reward": MustParseCid("bafk2bzacedjkb5hvskr7rrjjbtd6yomf5a2hue3bg7yupxpdfhfnbaufdiztm"),
|
||||
"storagemarket": MustParseCid("bafk2bzaceac3c2ajpwiprdage7e23pvbd7zr2bjjotsowoodfxbdbvjzopud6"),
|
||||
"storageminer": MustParseCid("bafk2bzacedubngj67gjuacbcfddyyrl2yxyih4zwjrkw26xppecpcw35f5tem"),
|
||||
"storagepower": MustParseCid("bafk2bzaced2w5ijctujk2264a23geeep2fb5d27fexpfsz52muh5735uo27ye"),
|
||||
"system": MustParseCid("bafk2bzacec6qqnlzd35tmowisuydrombj46qdjg225l5c7asdlmsrhhfwezes"),
|
||||
"verifiedregistry": MustParseCid("bafk2bzacecojfycqzm3ijydyle4n25pnxhue6bosoxsqhmcj6wtcc4w62vfr2"),
|
||||
},
|
||||
}}
|
||||
|
2
extern/filecoin-ffi
vendored
2
extern/filecoin-ffi
vendored
@ -1 +1 @@
|
||||
Subproject commit 6bde8568a206ee28ed0344341026ff97af4fe824
|
||||
Subproject commit ef38ec3778bf0b253b46447b1e93dfc75c5c1343
|
@ -2,9 +2,26 @@
|
||||
package itests
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
cbor "github.com/ipfs/go-ipld-cbor"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/filecoin-project/go-address"
|
||||
"github.com/filecoin-project/go-state-types/big"
|
||||
"github.com/filecoin-project/go-state-types/builtin"
|
||||
inittypes "github.com/filecoin-project/go-state-types/builtin/v8/init"
|
||||
multisigtypes "github.com/filecoin-project/go-state-types/builtin/v8/multisig"
|
||||
"github.com/filecoin-project/go-state-types/exitcode"
|
||||
|
||||
"github.com/filecoin-project/lotus/blockstore"
|
||||
"github.com/filecoin-project/lotus/chain/actors"
|
||||
"github.com/filecoin-project/lotus/chain/actors/adt"
|
||||
lmultisig "github.com/filecoin-project/lotus/chain/actors/builtin/multisig"
|
||||
"github.com/filecoin-project/lotus/chain/types"
|
||||
"github.com/filecoin-project/lotus/itests/kit"
|
||||
"github.com/filecoin-project/lotus/itests/multisig"
|
||||
)
|
||||
@ -27,101 +44,101 @@ func TestMultisig(t *testing.T) {
|
||||
}
|
||||
|
||||
// TestMultisigReentrant sends an infinitely recursive message to a multisig.
|
||||
//func TestMultisigReentrant(t *testing.T) {
|
||||
// //stm: @CHAIN_SYNCER_LOAD_GENESIS_001, @CHAIN_SYNCER_FETCH_TIPSET_001,
|
||||
// //stm: @CHAIN_SYNCER_START_001, @CHAIN_SYNCER_SYNC_001, @BLOCKCHAIN_BEACON_VALIDATE_BLOCK_VALUES_01
|
||||
// //stm: @CHAIN_SYNCER_COLLECT_CHAIN_001, @CHAIN_SYNCER_COLLECT_HEADERS_001, @CHAIN_SYNCER_VALIDATE_TIPSET_001
|
||||
// //stm: @CHAIN_SYNCER_NEW_PEER_HEAD_001, @CHAIN_SYNCER_VALIDATE_MESSAGE_META_001, @CHAIN_SYNCER_STOP_001
|
||||
//
|
||||
// //stm: @CHAIN_INCOMING_HANDLE_INCOMING_BLOCKS_001, @CHAIN_INCOMING_VALIDATE_BLOCK_PUBSUB_001, @CHAIN_INCOMING_VALIDATE_MESSAGE_PUBSUB_001
|
||||
// kit.QuietMiningLogs()
|
||||
//
|
||||
// ctx := context.Background()
|
||||
//
|
||||
// blockTime := 5 * time.Millisecond
|
||||
// client, _, ens := kit.EnsembleMinimal(t, kit.MockProofs(), kit.ThroughRPC())
|
||||
// ens.InterconnectAll().BeginMining(blockTime)
|
||||
// store := adt.WrapStore(ctx, cbor.NewCborStore(blockstore.NewAPIBlockstore(client)))
|
||||
//
|
||||
// signer := client.DefaultKey.Address
|
||||
//
|
||||
// // Create the multisig
|
||||
// cp, err := client.MsigCreate(ctx, 1, []address.Address{signer}, 0, big.Zero(), signer, big.Zero())
|
||||
// require.NoError(t, err, "failed to create multisig (MsigCreate)")
|
||||
//
|
||||
// cm, err := client.MpoolPushMessage(ctx, &cp.Message, nil)
|
||||
// require.NoError(t, err, "failed to create multisig (MpooPushMessage)")
|
||||
//
|
||||
// ml, err := client.StateWaitMsg(ctx, cm.Cid(), 5, 100, false)
|
||||
// require.NoError(t, err, "failed to create multisig (StateWaitMsg)")
|
||||
// require.Equal(t, ml.Receipt.ExitCode, exitcode.Ok)
|
||||
//
|
||||
// var execreturn inittypes.ExecReturn
|
||||
// err = execreturn.UnmarshalCBOR(bytes.NewReader(ml.Receipt.Return))
|
||||
// require.NoError(t, err, "failed to decode multisig create return")
|
||||
//
|
||||
// multisigAddress := execreturn.IDAddress
|
||||
//
|
||||
// // Add the multisig itself as a signer, do NOT increase the threshold
|
||||
// ap, err := client.MsigAddPropose(ctx, multisigAddress, signer, multisigAddress, false)
|
||||
// require.NoError(t, err, "failed to add multisig as signer (MsigAddPropose)")
|
||||
//
|
||||
// am, err := client.MpoolPushMessage(ctx, &ap.Message, nil)
|
||||
// require.NoError(t, err, "failed to add multisig as signer (MpooPushMessage)")
|
||||
//
|
||||
// al, err := client.StateWaitMsg(ctx, am.Cid(), 5, 100, false)
|
||||
// require.NoError(t, err, "failed to add multisig as signer (StateWaitMsg)")
|
||||
// require.Equal(t, al.Receipt.ExitCode, exitcode.Ok)
|
||||
//
|
||||
// var propReturn multisigtypes.ProposeReturn
|
||||
// err = propReturn.UnmarshalCBOR(bytes.NewReader(al.Receipt.Return))
|
||||
// require.NoError(t, err, "failed to decode multisig propose return")
|
||||
// require.True(t, propReturn.Applied, "expected proposal to apply the message")
|
||||
//
|
||||
// head, err := client.ChainHead(ctx)
|
||||
// require.NoError(t, err)
|
||||
//
|
||||
// multisigActor, err := client.StateGetActor(ctx, multisigAddress, head.Key())
|
||||
// require.NoError(t, err)
|
||||
//
|
||||
// mstate, err := lmultisig.Load(store, multisigActor)
|
||||
// require.NoError(t, err)
|
||||
//
|
||||
// signers, err := mstate.Signers()
|
||||
// require.NoError(t, err)
|
||||
//
|
||||
// require.Equal(t, 2, len(signers))
|
||||
// require.Equal(t, multisigAddress, signers[1])
|
||||
//
|
||||
// // Send the reentrant tx -- it will try to approve itself (expects to be txid 1)
|
||||
//
|
||||
// approveParams, err := actors.SerializeParams(&multisigtypes.TxnIDParams{ID: 1})
|
||||
// require.NoError(t, err)
|
||||
//
|
||||
// pp, err := client.MsigPropose(ctx, multisigAddress, multisigAddress, big.Zero(), signer, uint64(builtin.MethodsMultisig.Approve), approveParams)
|
||||
// require.NoError(t, err)
|
||||
//
|
||||
// pm, err := client.MpoolPushMessage(ctx, &pp.Message, nil)
|
||||
// require.NoError(t, err, "failed to send reentrant propose message (MpooPushMessage)")
|
||||
//
|
||||
// pl, err := client.StateWaitMsg(ctx, pm.Cid(), 5, 100, false)
|
||||
// require.NoError(t, err, "failed to send reentrant propose message (StateWaitMsg)")
|
||||
// require.Equal(t, pl.Receipt.ExitCode, exitcode.Ok)
|
||||
//
|
||||
// err = propReturn.UnmarshalCBOR(bytes.NewReader(pl.Receipt.Return))
|
||||
// require.NoError(t, err, "failed to decode multisig propose return")
|
||||
// require.True(t, propReturn.Applied, "expected proposal to apply the message")
|
||||
// require.Equal(t, exitcode.Ok, propReturn.Code)
|
||||
//
|
||||
// sl, err := client.StateReplay(ctx, types.EmptyTSK, pm.Cid())
|
||||
// require.NoError(t, err, "failed to replay reentrant propose message (StateWaitMsg)")
|
||||
//
|
||||
// require.Equal(t, 1025, countDepth(sl.ExecutionTrace))
|
||||
//}
|
||||
//
|
||||
//func countDepth(trace types.ExecutionTrace) int {
|
||||
// if len(trace.Subcalls) == 0 {
|
||||
// return 0
|
||||
// }
|
||||
// return countDepth(trace.Subcalls[0]) + 1
|
||||
//}
|
||||
func TestMultisigReentrant(t *testing.T) {
|
||||
//stm: @CHAIN_SYNCER_LOAD_GENESIS_001, @CHAIN_SYNCER_FETCH_TIPSET_001,
|
||||
//stm: @CHAIN_SYNCER_START_001, @CHAIN_SYNCER_SYNC_001, @BLOCKCHAIN_BEACON_VALIDATE_BLOCK_VALUES_01
|
||||
//stm: @CHAIN_SYNCER_COLLECT_CHAIN_001, @CHAIN_SYNCER_COLLECT_HEADERS_001, @CHAIN_SYNCER_VALIDATE_TIPSET_001
|
||||
//stm: @CHAIN_SYNCER_NEW_PEER_HEAD_001, @CHAIN_SYNCER_VALIDATE_MESSAGE_META_001, @CHAIN_SYNCER_STOP_001
|
||||
|
||||
//stm: @CHAIN_INCOMING_HANDLE_INCOMING_BLOCKS_001, @CHAIN_INCOMING_VALIDATE_BLOCK_PUBSUB_001, @CHAIN_INCOMING_VALIDATE_MESSAGE_PUBSUB_001
|
||||
kit.QuietMiningLogs()
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
blockTime := 5 * time.Millisecond
|
||||
client, _, ens := kit.EnsembleMinimal(t, kit.MockProofs(), kit.ThroughRPC())
|
||||
ens.InterconnectAll().BeginMining(blockTime)
|
||||
store := adt.WrapStore(ctx, cbor.NewCborStore(blockstore.NewAPIBlockstore(client)))
|
||||
|
||||
signer := client.DefaultKey.Address
|
||||
|
||||
// Create the multisig
|
||||
cp, err := client.MsigCreate(ctx, 1, []address.Address{signer}, 0, big.Zero(), signer, big.Zero())
|
||||
require.NoError(t, err, "failed to create multisig (MsigCreate)")
|
||||
|
||||
cm, err := client.MpoolPushMessage(ctx, &cp.Message, nil)
|
||||
require.NoError(t, err, "failed to create multisig (MpooPushMessage)")
|
||||
|
||||
ml, err := client.StateWaitMsg(ctx, cm.Cid(), 5, 100, false)
|
||||
require.NoError(t, err, "failed to create multisig (StateWaitMsg)")
|
||||
require.Equal(t, ml.Receipt.ExitCode, exitcode.Ok)
|
||||
|
||||
var execreturn inittypes.ExecReturn
|
||||
err = execreturn.UnmarshalCBOR(bytes.NewReader(ml.Receipt.Return))
|
||||
require.NoError(t, err, "failed to decode multisig create return")
|
||||
|
||||
multisigAddress := execreturn.IDAddress
|
||||
|
||||
// Add the multisig itself as a signer, do NOT increase the threshold
|
||||
ap, err := client.MsigAddPropose(ctx, multisigAddress, signer, multisigAddress, false)
|
||||
require.NoError(t, err, "failed to add multisig as signer (MsigAddPropose)")
|
||||
|
||||
am, err := client.MpoolPushMessage(ctx, &ap.Message, nil)
|
||||
require.NoError(t, err, "failed to add multisig as signer (MpooPushMessage)")
|
||||
|
||||
al, err := client.StateWaitMsg(ctx, am.Cid(), 5, 100, false)
|
||||
require.NoError(t, err, "failed to add multisig as signer (StateWaitMsg)")
|
||||
require.Equal(t, al.Receipt.ExitCode, exitcode.Ok)
|
||||
|
||||
var propReturn multisigtypes.ProposeReturn
|
||||
err = propReturn.UnmarshalCBOR(bytes.NewReader(al.Receipt.Return))
|
||||
require.NoError(t, err, "failed to decode multisig propose return")
|
||||
require.True(t, propReturn.Applied, "expected proposal to apply the message")
|
||||
|
||||
head, err := client.ChainHead(ctx)
|
||||
require.NoError(t, err)
|
||||
|
||||
multisigActor, err := client.StateGetActor(ctx, multisigAddress, head.Key())
|
||||
require.NoError(t, err)
|
||||
|
||||
mstate, err := lmultisig.Load(store, multisigActor)
|
||||
require.NoError(t, err)
|
||||
|
||||
signers, err := mstate.Signers()
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, 2, len(signers))
|
||||
require.Equal(t, multisigAddress, signers[1])
|
||||
|
||||
// Send the reentrant tx -- it will try to approve itself (expects to be txid 1)
|
||||
|
||||
approveParams, err := actors.SerializeParams(&multisigtypes.TxnIDParams{ID: 1})
|
||||
require.NoError(t, err)
|
||||
|
||||
pp, err := client.MsigPropose(ctx, multisigAddress, multisigAddress, big.Zero(), signer, uint64(builtin.MethodsMultisig.Approve), approveParams)
|
||||
require.NoError(t, err)
|
||||
|
||||
pm, err := client.MpoolPushMessage(ctx, &pp.Message, nil)
|
||||
require.NoError(t, err, "failed to send reentrant propose message (MpooPushMessage)")
|
||||
|
||||
pl, err := client.StateWaitMsg(ctx, pm.Cid(), 5, 100, false)
|
||||
require.NoError(t, err, "failed to send reentrant propose message (StateWaitMsg)")
|
||||
require.Equal(t, pl.Receipt.ExitCode, exitcode.Ok)
|
||||
|
||||
err = propReturn.UnmarshalCBOR(bytes.NewReader(pl.Receipt.Return))
|
||||
require.NoError(t, err, "failed to decode multisig propose return")
|
||||
require.True(t, propReturn.Applied, "expected proposal to apply the message")
|
||||
require.Equal(t, exitcode.Ok, propReturn.Code)
|
||||
|
||||
sl, err := client.StateReplay(ctx, types.EmptyTSK, pm.Cid())
|
||||
require.NoError(t, err, "failed to replay reentrant propose message (StateWaitMsg)")
|
||||
|
||||
require.Equal(t, 1025, countDepth(sl.ExecutionTrace))
|
||||
}
|
||||
|
||||
func countDepth(trace types.ExecutionTrace) int {
|
||||
if len(trace.Subcalls) == 0 {
|
||||
return 0
|
||||
}
|
||||
return countDepth(trace.Subcalls[0]) + 1
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user