UNPKG

l1-lottery-contracts

Version:

This repo contains smart contracts and related scripts for ZkNoid L1 Lottery proposed [here](https://forums.minaprotocol.com/t/zknoid-l1-lottery/6269)

1,493 lines (1,464 loc) 35 kB
// import { Field, PublicKey } from 'o1js'; // import { BuyTicketEvent, PLottery } from '../src/PLottery.js'; // import { configDefaultInstance } from './utils.js'; // import { LotteryAction } from '../src/Proofs/TicketReduceProof.js'; import { Field } from 'o1js'; import { LotteryAction } from '../src/Proofs/TicketReduceProof.js'; import { MerkleMap20 } from '../src/Structs/CustomMerkleMap.js'; // const response = { // data: { // actions: [ // { // actionState: { // actionStateOne: // '25313349900211893975382608876719408889698704200031209664249044279080109975560', // }, // }, // { // actionState: { // actionStateOne: // '21763299541040298587753333338371893846810690469232963591372060459026381039252', // }, // }, // { // actionState: { // actionStateOne: // '8628496078274769461115542000844796878294462781470938159543797714990992667559', // }, // }, // { // actionState: { // actionStateOne: // '5514469181095466736859934799926525380889572026984429413409318992237299997028', // }, // }, // { // actionState: { // actionStateOne: // '25885889073951718527354395363806199815487911681101764913596881578771086370107', // }, // }, // { // actionState: { // actionStateOne: // '3084111396668553871010196373800365499745037262843862158729989883860675348483', // }, // }, // { // actionState: { // actionStateOne: // '13532287841471317150184319478504392572847735859185693513218934441300016387637', // }, // }, // { // actionState: { // actionStateOne: // '12636308717155378495657553296284990333618148856424346334743675423201692801125', // }, // }, // { // actionState: { // actionStateOne: // '13552033292375176242184292341671233419412691991179711376625259275814019808194', // }, // }, // { // actionState: { // actionStateOne: // '22428816182994066811035979110138663502097287483003215755615557883450156059598', // }, // }, // { // actionState: { // actionStateOne: // '2657110063538905863496230550574434206907731812034404344231638673775478011856', // }, // }, // { // actionState: { // actionStateOne: // '11553781833537412187998791170094246504179739906426596650283148421062134031747', // }, // }, // { // actionState: { // actionStateOne: // '5036646800226972634599960587058868707090262022460888863204286405189747942769', // }, // }, // { // actionState: { // actionStateOne: // '22676822127286113867589765068900374089270892723224396474888670556596794299564', // }, // }, // { // actionState: { // actionStateOne: // '14450089155455621218882496336231751337940932425300837691009523581147767161552', // }, // }, // { // actionState: { // actionStateOne: // '17343217782575155169164602200877752769390651578694569216079202747806169189400', // }, // }, // { // actionState: { // actionStateOne: // '4721274078801522986713969462049522847078998862315482276343640953261102256362', // }, // }, // { // actionState: { // actionStateOne: // '24590522690942364367249289292250875547314635228745100120965991135101856466170', // }, // }, // { // actionState: { // actionStateOne: // '12019972858140051491726046897631768713365384917855031502876641235872835491337', // }, // }, // { // actionState: { // actionStateOne: // '26933479101281889273961421117413591687444559825118348139804588313346830288078', // }, // }, // { // actionState: { // actionStateOne: // '23201954681884767758512172994752868073493999252959563785369154647654943505003', // }, // }, // { // actionState: { // actionStateOne: // '21085262550220603617926377152517886464296676073611212137713290514256181853522', // }, // }, // { // actionState: { // actionStateOne: // '4146388601077199122206031386411652580617016997869931303420910616895941221197', // }, // }, // { // actionState: { // actionStateOne: // '14718563754416384998379734580498763754546083084109085189673860430296171756381', // }, // }, // { // actionState: { // actionStateOne: // '22436535202149639941751810143299386980419124467745452646260136710636706430818', // }, // }, // { // actionState: { // actionStateOne: // '18015734753837148792640655842002233652997206386955938713795916347682406080658', // }, // }, // { // actionState: { // actionStateOne: // '5989718682878427339698011237393630391441699611966040976806294178468546132857', // }, // }, // { // actionState: { // actionStateOne: // '11039574756583041422705581318606421503121373204996207587125251343333662996114', // }, // }, // { // actionState: { // actionStateOne: // '7379144528024958936343424260830686924904206550439278105352113113000234052189', // }, // }, // { // actionState: { // actionStateOne: // '24283805577955881676900472334374429071021848694541967135292970635633855656883', // }, // }, // { // actionState: { // actionStateOne: // '27917968951373205519442101593104886425493701279695265372489725966028374733614', // }, // }, // { // actionState: { // actionStateOne: // '11937452033494931410595153767448335237459927133492086587705984949580439129039', // }, // }, // { // actionState: { // actionStateOne: // '306448953181338948703362175977727545535067969675851726758279105861051213348', // }, // }, // { // actionState: { // actionStateOne: // '19991151149040056775582798588186971099809360863980267824215220093022078601248', // }, // }, // { // actionState: { // actionStateOne: // '18999781809875195137409610136070952042171951557435220711669467625163107442257', // }, // }, // { // actionState: { // actionStateOne: // '22259450645853554803948670420677142306910404755410865258251921895815255415293', // }, // }, // { // actionState: { // actionStateOne: // '673392883539533741083833323613664749289537716367396287193620007403227590463', // }, // }, // { // actionState: { // actionStateOne: // '180909818899335552282960593032326010452353832984413053838586392982800816361', // }, // }, // { // actionState: { // actionStateOne: // '538225759583776828838980185916932993423635294076028661477767307668950083971', // }, // }, // { // actionState: { // actionStateOne: // '4210843157566732374188279776068401510341581683721677983374406432934351405013', // }, // }, // { // actionState: { // actionStateOne: // '2375606751531955225584659908431366439429720821737589519328970676862230219271', // }, // }, // { // actionState: { // actionStateOne: // '28572180278243802365130664312029280013478342104105268309616763080120835719175', // }, // }, // { // actionState: { // actionStateOne: // '12899116552879177714657258721657037908668833441168563615599253271792804930852', // }, // }, // { // actionState: { // actionStateOne: // '10375799052052966330950685338047579489788902317193326634260491570085922237258', // }, // }, // { // actionState: { // actionStateOne: // '28196269303668651416346699879165004850139154523393478734820585068142981031732', // }, // }, // { // actionState: { // actionStateOne: // '6729748500965556777838399631123462458572881535784863605229371522514436976852', // }, // }, // { // actionState: { // actionStateOne: // '14719305835147967404874431642690015496919031381380405675285238602024771385112', // }, // }, // { // actionState: { // actionStateOne: // '23502921406421697988804387941348397070115790652527000864921063117727632274725', // }, // }, // { // actionState: { // actionStateOne: // '14235722333149067143537863043740008100246151900030018710036040299525674834117', // }, // }, // { // actionState: { // actionStateOne: // '3432500319723012006583645985859849032413742507994268064744704124629760504866', // }, // }, // ], // }, // }; // const actionStates = response.data.actions.map( // (action) => action.actionState.actionStateOne // ); // const { transactionFee } = configDefaultInstance(); // const plotteryAddress = PublicKey.fromBase58( // 'B62qrHzs8Sn6rJW3Jkd8xvUkPKb4RBC4xsTgKnBd7KvVWnjhkXV7YKJ' // ); // let plottery = new PLottery(plotteryAddress); // // let actions = []; // // for (let i = 0; i < actionStates.length - 1; i++) { // // const fromActionState = Field.from(actionStates[i]); // // const endActionState = Field.from(actionStates[i + 1]); // // actions.push( // // await plottery.reducer.fetchActions({ // // fromActionState, // // endActionState, // // }) // // ); // // console.log(actions[i]); // // console.log(actions.flat(1)); // // } // // let actions = await plottery.reducer.fetchActions({ // // endActionState: Field.from( // // '2274732647015854546500491500649598388489089745635220719829682203109227374236' // // ), // // }); // let actionsFucked = await plottery.reducer.fetchActions({ // fromActionState: Field.from( // '2657110063538905863496230550574434206907731812034404344231638673775478011856' // ), // endActionState: Field.from( // '11553781833537412187998791170094246504179739906426596650283148421062134031747' // ), // }); // let actions1 = await plottery.reducer.fetchActions({ // endActionState: Field.from( // '2657110063538905863496230550574434206907731812034404344231638673775478011856' // ), // }); // console.log(actions1); // let actions2 = await plottery.reducer.fetchActions({ // fromActionState: Field.from( // '11553781833537412187998791170094246504179739906426596650283148421062134031747' // ), // }); // const actions = [...actions1, ...actions2]; // console.log(actions); // console.log(actions.length); // console.log(actionStates.length); // const allEvents = await plottery.fetchEvents(); // console.log(allEvents.filter((event) => event.type === 'buy-ticket')); // const actionLists = allEvents // .filter((event) => event.type === 'buy-ticket') // // @ts-ignore // .map((event) => event.event.data as BuyTicketEvent) // .map((ticketEvent) => [ // new LotteryAction({ // ticket: ticketEvent.ticket, // }), // ]); // console.log(actionLists.length); // console.log(actionLists.map((elem) => elem[0].ticket.numbers.map((v) => +v))); const actionData = [ { actions: [ [ '6', '5', '7', '6', '7', '8', '12956991225953906921841684099823101706501308776705520473434038962466907995970', '0', '1', ], ], hash: '25313349900211893975382608876719408889698704200031209664249044279080109975560', }, { actions: [ [ '4', '6', '2', '2', '8', '3', '26088020189287768782099688020326138224459601487567694418767232338236813240193', '0', '2', ], ], hash: '21763299541040298587753333338371893846810690469232963591372060459026381039252', }, { actions: [ [ '2', '6', '9', '7', '5', '6', '25255790042732573450954003712317736246768978834829349553370983848692302775344', '0', '1', ], ], hash: '8628496078274769461115542000844796878294462781470938159543797714990992667559', }, { actions: [ [ '6', '5', '3', '9', '9', '1', '19964205550324939630550545763048675864161800749940585779962982033858494022559', '1', '1', ], ], hash: '5514469181095466736859934799926525380889572026984429413409318992237299997028', }, { actions: [ [ '9', '9', '6', '6', '4', '6', '12346427434327004348125362664915565629710192257864556013521112054257232754796', '1', '1', ], ], hash: '27436192387992217139011123768031802510733783343834317381772204899483202267193', }, { actions: [ [ '9', '7', '1', '9', '8', '8', '12346427434327004348125362664915565629710192257864556013521112054257232754796', '1', '1', ], ], hash: '25885889073951718527354395363806199815487911681101764913596881578771086370107', }, { actions: [ [ '2', '4', '4', '7', '4', '3', '19964205550324939630550545763048675864161800749940585779962982033858494022559', '1', '1', ], ], hash: '3084111396668553871010196373800365499745037262843862158729989883860675348483', }, { actions: [ [ '9', '2', '9', '2', '7', '6', '21377591073895713510341309420398793185576884815818377506681280615802759881106', '0', '1', ], ], hash: '13532287841471317150184319478504392572847735859185693513218934441300016387637', }, { actions: [ [ '7', '5', '9', '4', '7', '6', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '23562173419146814432140831830018386191372262558717813981702672868292521523493', }, { actions: [ [ '2', '7', '4', '3', '1', '3', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '17091049856171838105194364005412166905307014398334933913160405653259432088216', }, { actions: [ [ '1', '6', '3', '5', '2', '7', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '17232885850087529233459756382038742870248640044940153006158312935267918515979', }, { actions: [ [ '4', '7', '5', '1', '2', '2', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '12636308717155378495657553296284990333618148856424346334743675423201692801125', }, { actions: [ [ '3', '1', '3', '1', '5', '6', '12165186923319687572900094011821565862668411524381584956461194876028064035764', '0', '1', ], ], hash: '17082487567758469425757467457967473265642001333824907522427890208991758759731', }, { actions: [ [ '1', '1', '3', '4', '9', '4', '12956991225953906921841684099823101706501308776705520473434038962466907995970', '0', '1', ], ], hash: '14226491442770650712364681911870921131508915865197379983185088742764625929348', }, { actions: [ [ '9', '7', '1', '1', '8', '6', '12444248802460880132081449291546340439683979052479458915102943284375240795308', '1', '1', ], ], hash: '13552033292375176242184292341671233419412691991179711376625259275814019808194', }, { actions: [ [ '9', '2', '1', '1', '2', '8', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '22428816182994066811035979110138663502097287483003215755615557883450156059598', }, { actions: [ [ '6', '5', '7', '6', '7', '8', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '22526342661206194008430176692375034342082965513600234855498984822568539554270', }, { actions: [ [ '4', '6', '2', '2', '8', '3', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '2657110063538905863496230550574434206907731812034404344231638673775478011856', }, { actions: [ [ '7', '7', '7', '7', '7', '7', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '22538126940372893133565877949395572498140210910784052520799713638161217553842', }, { actions: [ [ '3', '4', '5', '7', '6', '2', '6453147199940115032546911372596674482366995380739961315278593325733504245402', '0', '1', ], ], hash: '13346898880455647067452267285098444549289840161340616136535351191377323737874', }, { actions: [ [ '3', '4', '5', '7', '6', '3', '21594276700301685638451290563121567472719745179788000956082286147863718718533', '1', '1', ], ], hash: '8960443634734051886489484343002863270419199667986186484392955287225122849837', }, { actions: [ [ '3', '4', '5', '7', '6', '3', '21594276700301685638451290563121567472719745179788000956082286147863718718533', '1', '1', ], ], hash: '11553781833537412187998791170094246504179739906426596650283148421062134031747', }, { actions: [ [ '2', '3', '4', '5', '6', '7', '21594276700301685638451290563121567472719745179788000956082286147863718718533', '1', '1', ], ], hash: '5036646800226972634599960587058868707090262022460888863204286405189747942769', }, { actions: [ [ '2', '3', '1', '4', '8', '6', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '22676822127286113867589765068900374089270892723224396474888670556596794299564', }, { actions: [ [ '7', '1', '6', '9', '2', '2', '12444248802460880132081449291546340439683979052479458915102943284375240795308', '1', '1', ], ], hash: '14450089155455621218882496336231751337940932425300837691009523581147767161552', }, { actions: [ [ '1', '2', '3', '4', '5', '6', '21594276700301685638451290563121567472719745179788000956082286147863718718533', '1', '1', ], ], hash: '17343217782575155169164602200877752769390651578694569216079202747806169189400', }, { actions: [ [ '6', '4', '3', '4', '5', '8', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '4721274078801522986713969462049522847078998862315482276343640953261102256362', }, { actions: [ [ '2', '4', '2', '9', '3', '7', '15661593045172372274349484602975176160403678593916071611247487060653084577990', '0', '1', ], ], hash: '24590522690942364367249289292250875547314635228745100120965991135101856466170', }, { actions: [ [ '1', '3', '8', '1', '1', '9', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '3', ], ], hash: '12019972858140051491726046897631768713365384917855031502876641235872835491337', }, { actions: [ [ '4', '7', '4', '2', '7', '3', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '26933479101281889273961421117413591687444559825118348139804588313346830288078', }, { actions: [ [ '8', '7', '6', '8', '7', '9', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '23201954681884767758512172994752868073493999252959563785369154647654943505003', }, { actions: [ [ '3', '7', '4', '1', '3', '4', '16117436006122484987940201799625330705159920592877857277902587370363771532990', '0', '1', ], ], hash: '1000179065401720127557736288040692604435268683625844611181682352431913959786', }, { actions: [ [ '2', '8', '2', '4', '6', '4', '16117436006122484987940201799625330705159920592877857277902587370363771532990', '0', '1', ], ], hash: '25629104547868447471450619254775537300502100982314563069790647977264591517687', }, { actions: [ [ '5', '7', '1', '8', '7', '4', '16117436006122484987940201799625330705159920592877857277902587370363771532990', '0', '1', ], ], hash: '21085262550220603617926377152517886464296676073611212137713290514256181853522', }, { actions: [ [ '9', '4', '3', '7', '4', '5', '16117436006122484987940201799625330705159920592877857277902587370363771532990', '0', '15', ], ], hash: '4146388601077199122206031386411652580617016997869931303420910616895941221197', }, { actions: [ [ '9', '9', '8', '1', '5', '7', '16117436006122484987940201799625330705159920592877857277902587370363771532990', '0', '11', ], ], hash: '14718563754416384998379734580498763754546083084109085189673860430296171756381', }, { actions: [ [ '8', '3', '2', '6', '3', '2', '24840112588285523788042659808059218180295445131298006396932946669691657371564', '0', '1', ], ], hash: '22436535202149639941751810143299386980419124467745452646260136710636706430818', }, { actions: [ [ '4', '2', '3', '1', '6', '1', '24840112588285523788042659808059218180295445131298006396932946669691657371564', '0', '1', ], ], hash: '18015734753837148792640655842002233652997206386955938713795916347682406080658', }, { actions: [ [ '7', '5', '2', '2', '5', '9', '26471495794066032558155485203329454126509007011869868179564287910271919232646', '0', '1', ], ], hash: '5989718682878427339698011237393630391441699611966040976806294178468546132857', }, { actions: [ [ '8', '7', '9', '3', '3', '7', '24840112588285523788042659808059218180295445131298006396932946669691657371564', '0', '1', ], ], hash: '11039574756583041422705581318606421503121373204996207587125251343333662996114', }, { actions: [ [ '8', '2', '6', '5', '7', '4', '24840112588285523788042659808059218180295445131298006396932946669691657371564', '0', '2', ], ], hash: '7379144528024958936343424260830686924904206550439278105352113113000234052189', }, { actions: [ [ '4', '1', '6', '1', '1', '6', '26471495794066032558155485203329454126509007011869868179564287910271919232646', '0', '2', ], ], hash: '24283805577955881676900472334374429071021848694541967135292970635633855656883', }, { actions: [ [ '6', '4', '6', '1', '2', '9', '26471495794066032558155485203329454126509007011869868179564287910271919232646', '0', '1', ], ], hash: '19405796317933396070039636056934415509446558084901550036222940955133827617765', }, { actions: [ [ '1', '2', '8', '9', '4', '9', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '13425676685081274200150148900107466661840453492794459505977670505230504369974', }, { actions: [ [ '7', '1', '4', '7', '1', '8', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '27917968951373205519442101593104886425493701279695265372489725966028374733614', }, { actions: [ [ '8', '6', '8', '2', '2', '9', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '11937452033494931410595153767448335237459927133492086587705984949580439129039', }, { actions: [ [ '2', '5', '4', '8', '7', '5', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '306448953181338948703362175977727545535067969675851726758279105861051213348', }, { actions: [ [ '5', '2', '8', '7', '7', '5', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '13037290554120599887681883061039081896239901874775234148973110430688400555848', }, { actions: [ [ '2', '7', '4', '2', '1', '7', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '2', ], ], hash: '19991151149040056775582798588186971099809360863980267824215220093022078601248', }, { actions: [ [ '9', '5', '2', '5', '3', '9', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '18999781809875195137409610136070952042171951557435220711669467625163107442257', }, { actions: [ [ '6', '6', '9', '6', '6', '9', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '22259450645853554803948670420677142306910404755410865258251921895815255415293', }, { actions: [ [ '1', '2', '3', '4', '5', '6', '21594276700301685638451290563121567472719745179788000956082286147863718718533', '1', '1', ], ], hash: '673392883539533741083833323613664749289537716367396287193620007403227590463', }, { actions: [ [ '7', '9', '4', '9', '1', '5', '8131464104783289520687471370575272049926091999122737565948566444191693236634', '0', '1', ], ], hash: '180909818899335552282960593032326010452353832984413053838586392982800816361', }, { actions: [ [ '7', '9', '4', '9', '1', '5', '8131464104783289520687471370575272049926091999122737565948566444191693236634', '0', '1', ], ], hash: '538225759583776828838980185916932993423635294076028661477767307668950083971', }, { actions: [ [ '2', '2', '2', '8', '8', '9', '8131464104783289520687471370575272049926091999122737565948566444191693236634', '0', '1', ], ], hash: '4210843157566732374188279776068401510341581683721677983374406432934351405013', }, { actions: [ [ '1', '2', '5', '2', '2', '5', '10329935204614394060743187454419407441282038590465076620570686354885776266705', '1', '1', ], ], hash: '2375606751531955225584659908431366439429720821737589519328970676862230219271', }, { actions: [ [ '3', '8', '3', '4', '6', '3', '5184473896111145264519431161346885015530479516304070497804290646708961158413', '0', '1', ], ], hash: '28572180278243802365130664312029280013478342104105268309616763080120835719175', }, { actions: [ [ '3', '8', '3', '4', '6', '3', '5184473896111145264519431161346885015530479516304070497804290646708961158413', '0', '1', ], ], hash: '12899116552879177714657258721657037908668833441168563615599253271792804930852', }, { actions: [ [ '1', '2', '1', '5', '9', '1', '10329935204614394060743187454419407441282038590465076620570686354885776266705', '1', '1', ], ], hash: '2555885378598582391522968633614983571379707146909737091855320170891477716903', }, { actions: [ [ '5', '3', '5', '6', '4', '7', '10329935204614394060743187454419407441282038590465076620570686354885776266705', '1', '1', ], ], hash: '28693111339694534490617800963939986871474892326167009476909279946629415762752', }, { actions: [ [ '1', '2', '5', '2', '2', '5', '10329935204614394060743187454419407441282038590465076620570686354885776266705', '1', '1', ], ], hash: '10375799052052966330950685338047579489788902317193326634260491570085922237258', }, { actions: [ [ '6', '6', '6', '6', '6', '7', '10329935204614394060743187454419407441282038590465076620570686354885776266705', '1', '2', ], ], hash: '28196269303668651416346699879165004850139154523393478734820585068142981031732', }, { actions: [ [ '2', '8', '2', '8', '2', '8', '13935000824120239057894068646248236946420165139009401302919178322058796491040', '1', '1', ], ], hash: '6729748500965556777838399631123462458572881535784863605229371522514436976852', }, { actions: [ [ '1', '2', '5', '2', '2', '5', '10329935204614394060743187454419407441282038590465076620570686354885776266705', '1', '1', ], ], hash: '14719305835147967404874431642690015496919031381380405675285238602024771385112', }, { actions: [ [ '5', '7', '9', '4', '1', '7', '10329935204614394060743187454419407441282038590465076620570686354885776266705', '1', '1', ], ], hash: '23502921406421697988804387941348397070115790652527000864921063117727632274725', }, { actions: [ [ '3', '1', '3', '1', '3', '1', '3358872557945087289287973916777076282977688673157429840747067769412340487925', '1', '1', ], ], hash: '14235722333149067143537863043740008100246151900030018710036040299525674834117', }, { actions: [ [ '9', '8', '5', '3', '2', '7', '5706376253943510402705579272467768662733130021399469094173930489992680696927', '1', '1', ], ], hash: '3432500319723012006583645985859849032413742507994268064744704124629760504866', }, ]; let ac = actionData .map((elem) => elem.actions.map((actions) => LotteryAction.fromFields(actions.map((v) => Field(v))) ) ) .flat(1); console.log(ac); console.log(ac.map((elem) => elem.ticket.numbers.map((v) => +v).join(','))); let curMap = new MerkleMap20(); for (let i = 0; i < ac.length; i++) { console.log(`Root before: ${curMap.getRoot().toString()}`); curMap.set(Field(i), ac[i].ticket.hash()); } console.log(`Final root: ${curMap.getRoot().toString()}`);