diff --git a/contracts/deployments/chatroom/alephzero-testnet.ts b/contracts/deployments/chatroom/alephzero-testnet.ts index fcfe394..6bc7007 100644 --- a/contracts/deployments/chatroom/alephzero-testnet.ts +++ b/contracts/deployments/chatroom/alephzero-testnet.ts @@ -1,2 +1,2 @@ -export const address = '5Ebup7yb8hMRb3pfzRxyTjNvRatnZieTsh5GeLtc38Cr2uvc' -export const blockNumber = 56383197 +export const address = '5GpiEYmPMVqMcJaR3eeDm4z8a5qZBsAmshYYSCBtuHYa96Bk' +export const blockNumber = 56675826 diff --git a/contracts/deployments/chatroom/chatroom.contract b/contracts/deployments/chatroom/chatroom.contract index d7e0dc0..119cf31 100644 --- a/contracts/deployments/chatroom/chatroom.contract +++ b/contracts/deployments/chatroom/chatroom.contract @@ -1 +1 @@ -{"source":{"hash":"0x99b5dc5c125fb6cfd87e38133acca4918d6dab6e49b27ec665e97ef0ee9bbe0a","language":"ink! 4.3.0","compiler":"rustc 1.76.0","wasm":"0x0061736d0100000001370a60027f7f0060027f7f017f60037f7f7f0060037f7f7f017f60000060047f7f7f7f017f60017f0060047f7f7f7f006000017e6000017f02a50109057365616c310b6765745f73746f726167650005057365616c301176616c75655f7472616e736665727265640000057365616c30036e6f770000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c320b7365745f73746f726167650005057365616c310d636c6561725f73746f726167650001057365616c300b7365616c5f72657475726e000203656e76066d656d6f7279020102100325240300030000000000010000000000020006020000080609000103000207010700040004040608017f01418080040b0711020463616c6c002a066465706c6f79002b0ae44c242b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0bc30201067f230041106b22022400024020012802042206450440410121030c010b200128020022072d000021042001200641016b360204410121032001200741016a3602000240024002400240200441037141016b0e03020301000b20044102762105410021030c030b2006410549200441034b720d02200728000121052001200641056b3602042001200741056a36020020054180808080044921030c020b200241096a20043a0000200241013a000820022001360204200241003b010c200241046a2002410c6a4102100a0d0120022f010c220141ff014d0d0120014102762105410021030c010b200241096a20043a0000200241013a0008200220013602042002410036020c200241046a2002410c6a4104100a0d00200228020c220141027621052001418080044921030b2000200536020420002003360200200241106a24000b8e0101017f20002d00042103200041003a0004027f0240200304402001200041056a2d00003a00004101200028020022002802042203200241016b2202490d021a200141016a20002802002201200210081a0c010b41012000280200220028020422032002490d011a200120002802002201200210081a0b2000200320026b3602042000200120026a36020041000b0ba30201047f230041406a22022400200241146a200141086a2900003702002002411c6a200141106a290000370200200241246a200141186a2900003702002002418080043602082002200129000037020c20024280800137023820024190820436023441ebd990fb06200241346a2201100c2002410c6a2001100d024020022802382204200228023c2201490d00200228023421032002200420016b220436023420032001200120036a2201200241346a10002103200420022802342205490d002000027e0240024020030e0400030301030b200220053602302002200136022c200241346a2002412c6a100e20022802342201418080808078460d0220022902380c010b418080808078210142000b37020420002001360200200241406b24000f0b000b2601017f230041106b220224002002200036020c20012002410c6a41041019200241106a24000b0a0020012000412010190bc30201047f230041406a22022400200241086a20011009024002402002280208450440024020012802044105762203200228020c220420032004491b2203450440410121050c010b200341ffffff1f4b0d03200341057422054100480d032003418080802049200510102205450d030b2002410036021c20022005360218200220033602140240200404400340200128020422034120490d022001200341206b36020420012001280200220341206a360200200241286a200341086a290000370300200241306a200341106a290000370300200241386a200341186a29000037030020022003290000370320200241146a200241206a1022200441016b22040d000b0b20002002290214370200200041086a2002411c6a2802003602000c020b20004180808080783602000c010b20004180808080783602000b200241406b24000f0b000bd70502047f027e23004190016b22022400200241386a200141086a290000370200200241406b200141106a290000370200200241c8006a200141186a29000037020020024184800436022c2002200129000037023020024280800137025c2002419082043602584199c5f1ec07200241d8006a2201100c200241306a2001100d0240200228025c220420022802602201490d00200228025821032002200420016b220436025820032001200120036a2201200241d8006a10002105200420022802582203490d0002400240024020050e0400030301030b20034120490d02200241e0006a200141096a290000370300200241e8006a200141116a290000370300200241ef006a200141186a2900003700002002200341206b3602542002200141206a3602502002200129000137035820012d000021042002200241d0006a100920022802000d0202402002280254410c6e220320022802042201200120034b1b2203450440410421050c010b200341aad5aad5004b0d032003410c6c22054100480d034104200510102205450d030b20024100360280012002200536027c2002200336027820010440034020024184016a200241d0006a10112002280284012203418080808078460d04200220022902880137020c20022003360208200241f8006a200241086a1012200141016b22010d000b20022802782203418080808078460d030b200229027c2106200228025441074d0d02200241106a200241e0006a290300370300200241186a200241e8006a2903003703002002411f6a200241ef006a290000370000200220022903583703082003418180808078460d02200228025029000021070c010b4180808080782103410021040b200020043a0000200020022903083700012000200637022c2000200336022820002007370320200041096a200241106a290300370000200041116a200241186a290300370000200041186a2002411f6a29000037000020024190016a24000f0b000b1000419082052d00001a2000200110250bf50501087f230041106b22062400200641086a200110090240024020062802080d0020012802042205200628020c2202490d00024002402002450440410121030c010b20024100480d012006410120024101102620062802002203450d01200128020421050b200220054b0d012003200128020022042002100821032001200520026b3602042001200220046a36020002402002450d00200241076b22014100200120024d1b2108200341036a417c7120036b21094100210103400240024002400240024002400240024002400240200120036a2d00002205411874411875220741004804402005418880046a2d000041026b0e03030102080b200920016b410371450440200120084f0d090340200120036a220541046a280200200528020072418081828478710d0a2008200141086a22014b0d000b0c090b200141016a21010c090b200141016a220420024f0d06200320046a2c000021040240200541e001470440200541ed01460d012007411f6a41ff0171410c490d042007417e71416e470d0820044140480d050c080b200441607141a07f460d040c070b2004419f7f4a0d060c030b200141016a220420024f0d05200320046a2c000021040240024002400240200541f0016b0e050100000002000b2007410f6a41ff017141024b0d0820044140480d020c080b200441f0006a41ff01714130490d010c070b2004418f7f4a0d060b200141026a220520024f0d05200320056a2c000041bf7f4a0d05200141036a220120024f0d05200120036a2c000041bf7f4a0d050c040b200141016a22012002490d020c040b200441404e0d030b200141026a220120024f0d02200120036a2c000041bf7f4c0d010c020b200120036a2c000041bf7f4a0d010b200141016a21010c020b20004180808080783602000c060b200120024f0d000340200120036a2c00004100480d012002200141016a2201470d000b0c020b20012002490d000b0b2000200236020820002002ad2003ad422086843702000c020b000b20004180808080783602000b200641106a24000b8e0201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d00200028020022034100480d00410420034101742205200420042005491b2204200441044d1b2204410c6c2105200441abd5aad50049410274210602402003450440200241003602180c010b2002410436021820022003410c6c36021c200220002802043602140b200241086a20062005200241146a10242002280208450d01200228020c1a0b000b200228020c21032000200436020020002003360204200241206a2400200028020821030b20002802042003410c6c6a22022001290200370200200241086a200141086a280200360200200341016a22010440200020013602080f0b000bdd0101047f230041206b2202240020024280800137021820024190820436021441ebd990fb06200241146a2203100c20012003100d024020022802182204200228021c2201490d00200228021421032002200420016b220436021420032001200120036a2201200241146a10002103200420022802142205490d002000027e0240024020030e0400030301030b200220053602102002200136020c200241146a2002410c6a100e20022802142201418080808078460d0220022902180c010b418080808078210142000b37020420002001360200200241206a24000f0b000bdf0101037f230041306b220224002002410c6a200041086a290000370200200241146a200041106a2900003702002002411c6a200041186a290000370200200241848004360200200220002900003702042002428080013702282002419082043602244199c5f1ec07200241246a2200100c200241046a2000100d024020022802282204200228022c2200490d00200228022421032002410036022c2002200420006b3602282002200020036a3602242001200241246a1015200228022c220120022802284b0d00200320002002280224200110051a200241306a24000f0b000b4301017f230041106b2202240020002001100d2000412c6a280200200041306a28020020011023200220002903203703082001200241086a41081019200241106a24000b870201037f230041306b220324002003410c6a200041086a290000370200200341146a200041106a2900003702002003411c6a200041186a2900003702002003418080043602002003200029000037020420034280800137022820034190820436022441ebd990fb06200341246a2200100c200341046a2000100d024020032802282200200328022c2204490d00200328022421052003410036022c2003200020046b3602282003200420056a360224200341246a20021017200204402002410574210003402001200341246a100d200141206a2101200041206b22000d000b0b200328022c220020032802284b0d00200520042003280224200010051a200341306a24000f0b000b7401017f230041106b2202240002402001413f4d044020002001410274101b0c010b200141ffff004d0440200220014102744101723b010e20002002410e6a410210190c010b200141ffffffff034d044020014102744102722000100c0c010b20004103101b20012000100c0b200241106a24000b9c0101017f230041306b220124002001410c6a200041086a290000370200200141146a200041106a2900003702002001411c6a200041186a290000370200200141848004360200200120002900003702042001428080013702282001419082043602244199c5f1ec07200141246a2200100c200141046a2000100d200128022c220020012802284b0440000b2001280224200010061a200141306a24000b4801027f024002402000280208220320026a22042003490d00200420002802044b0d00200420036b2002470d01200028020020036a2001200210081a200020043602080f0b000b000bf70101057f230041406a2202240002402001280204220541204f04402001200541206b220636020420012001280200220341206a2204360200200641204f04402001200541406a3602042001200341406b360200200241286a200441086a290000370300200241306a200441106a290000370300200241386a200441186a290000370300200241086a200341086a290000370300200241106a200341106a290000370300200241186a200341186a2900003703002002200429000037032020022003290000370300200041016a200241c00010081a200041003a00000c020b200041013a00000c010b200041013a00000b200241406b24000b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b3602017f017e230041106b22002400200042003703002000410836020c20002000410c6a100220002903002101200041106a240020010b6d01017f230041106b2201240020014180800136020c419082042001410c6a1004200041918204290000370001200041096a41998204290000370000200041116a41a18204290000370000200041186a41a882042900003700002000419082042d00003a0000200141106a24000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10012000290308210120002903002102200041206a2400410541042001200284501b0b4801017f230041406a22022400200241086a2001100f0240200228023041808080807846044020004180808080783602280c010b2000200241086a413810081a0b200241406b24000b4601037f027f41202102034041002002450d011a200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b450b3501027f200141057421010340200122030440200341206b21012000200210202104200041206a21002004450d010b0b20034100470baa0201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d00200028020022034100480d00410420034101742205200420042005491b2204200441044d1b220441808080204921052004410574210602402003450440200241003602180c010b200241013602182002200341057436021c200220002802043602140b200241086a20052006200241146a10242002280208450d01200228020c1a0b000b200228020c21032000200436020020002003360204200241206a2400200028020821030b200028020420034105746a22022001290000370000200241086a200141086a290000370000200241106a200141106a290000370000200241186a200141186a290000370000200341016a22010440200020013602080f0b000b4d01027f200220011017200104402001410c6c2103200041086a21010340200141046b2802002100200220012802002204101720022000200410192001410c6a21012003410c6b22030d000b0b0bec0101037f230041106b220424002000027f024002402001044020024100480d01027f20032802040440200341086a2802002205450440200441086a200120024100102620042802082103200428020c0c020b2003280200210602402001200210252203450440410021030c010b20032006200510081a0b20020c010b200420012002410010262004280200210320042802040b21052003044020002003360204200041086a200536020041000c040b20002001360204200041086a20023602000c020b20004100360204200041086a20023602000c010b200041003602040b41010b360200200441106a24000ba00101027f02402001200020016a41016b410020006b7122004d0440024041888204280200220120006a22032001490d00418c82042802002003490440200041ffff036a22022000490d0320024110764000220141ffff034b0d032001411074220120024180807c716a22032001490d0341002102418c82042003360200200020016a22032001490d010b418882042003360200200121020b20020f0b000b41000b2b00200204402003450440419082052d00001a0b20012002102521010b20002002360204200020013602000b3c01027f027f200145044041908204210141010c010b410121024190820441013a000041918204210141020b2103200120023a0000200020031029000b5301037f230041106b220024002000428080013702082000419082043602044100200041046a100c200028020c220120002802084b0440000b200028020422022001200120026a410010051a200041106a24000b0d0020004190820420011007000b9f1e02077f027e230041b0016b220024000240024002400240101e41ff01714105470d00200041808001360200419082042000100320002802002205418180014f0d0020054104490d012000419482043602482000200541046b220636024c419382042d00002101419282042d00002102419182042d00002103027f02400240024002400240024002400240419082042d0000220441db01470440200441c000460d07200441d300460d05200441fa00460d062004418d01460d02200441a901460d04200441af01460d03200441be01460d01200441344720034196014772200241ff017141810147200141ff017141024772720d0b41000c090b2003411c47200241ff017141e6004772200141ff017141f501472006411f4d72720d0a20004180016a41a0820429020037030020004188016a41a8820429020037030020004190016a41b08204280200360200200041988204290200370378419782042d00002103419582042f00002101419482042d0000210241010c080b200341d50047200241ff01714199014772200141ff017141da0147720d092000200041c8006a101a20002d00000d0920004180016a2000410d6a29000037030020004188016a200041156a2900003703002000418f016a2000411c6a290000370000200041d8006a200041386a290000370300200041e0006a200041406b2d00003a00002000200041056a2900003703782000200041306a290000370350200041046a2d00002103200041026a2f00002101200041246a2800002105200041286a290000210720002d0001210241020c070b200341d50047200241ff017141fa0147720d08200141ff01714139460d050c080b200341dc0147200241ff017141c0004772200141ff0171413f47200641204972720d07200041086a2204419d8204290000370300200041106a220241a58204290000370300200041176a220141ac8204290000370000200041b482043602482000200541246b36024c200041958204290000370300419482042d00002103200041ec006a200041c8006a1011200028026c2205418080808078460d072000418f016a200129000037000020004188016a200229030037030020004180016a2004290300370300200020002903003703782000290270210741040c050b200341eb0147200241ff0171411c4772200141ff0171411447200641204972720d0620004180016a41a0820429020037030020004188016a41a8820429020037030020004190016a41b08204280200360200200041b482043602482000200541246b36024c200041988204290200370378419782042d00002103419582042f00002101419482042d0000210241050c040b200341f60147200241ff017141cf004772200141ff017141da0147200641204972720d0520004180016a41a0820429020037030020004188016a41a8820429020037030020004190016a41b08204280200360200200041b482043602482000200541246b36024c200041988204290200370378419782042d00002103419582042f00002101419482042d0000210241060c030b2003419a0147200241ff017141cd014772200141ff017141e50047200641204972720d042005412c6b220441774b0d0441b0820428020021052000410b6a419c8204290200370000200041136a41a482042902003700002000411b6a41ac820428020036000020004194820429020037000320004180016a200041086a29000037030020004188016a200041106a2900003703002000418f016a200041176a290000370000200041bc82043602482000200436024c2000200029000037037841b48204290200210741070c020b2003412847200241ff0171410e4772200141ff017141e80147200641204972720d0320004180016a41a0820429020037030020004188016a41a8820429020037030020004190016a41b08204280200360200200041b482043602482000200541246b36024c200041988204290200370378419782042d00002103419582042f00002101419482042d0000210241080c010b2000200041c8006a101a20002d00000d0220004180016a2000410d6a29000037030020004188016a200041156a2900003703002000418f016a2000411c6a290000370000200041d8006a200041386a290000370300200041e0006a200041406b2d00003a00002000200041056a2900003703782000200041306a290000370350200041046a2d00002103200041026a2f00002101200041246a2800002105200041286a290000210720002d0001210241030b21042000411c6a2000418f016a290000370000200041156a20004188016a2903003700002000410d6a20004180016a290300370000200041386a200041d8006a290300370300200041406b200041e0006a29030037030020002000290378370005200020002903503703302000200536022420002007370328200020033a0004200020013b0102200020023a0001200020043a000020004280800137027c2000419082043602784100200041f8006a100c200028027c22032000280280012201490d00200028027821022000200320016b220336027820022001200120026a200041f8006a10002003200028027849720d0020004101722103024002400240024002400240024002400240200441016b0e080001020304050607080b230041306b22022400200241186a200341086a290000370200200241206a200341106a290000370200200241286a200341186a2900003702002002200041d0006a36020c20022003290000370210200041f8006a2201200241106a101f200241306a2400230041106b22002400200041808001360208200041908204360204024041918204027f200128022822024181808080784704404190820441003a000041002002418080808078460d011a4191820441013a00002000410236020c2001200041046a1015200028020c220141818001490d02000b4190820441013a000041010b3a0000410221010b0c0b0b23004180016b220124002001200041d0006a36020c200141106a200341c00010082100200141e8006a200141c8006a290200370300200141e0006a200141406b290200370300200141d8006a200141386a2902003703002001200141306a290200370350200141f4006a2000100b4100210020012802744180808080784704402001280278200128027c200141d0006a102121000b20014180016a2400230041106b220124002001419082043602004190820441003a00002001428080818010370204200120003a000f20012001410f6a4101101920012802082201418180014f0440000b0c0a0b230041d0016b220124002001200041d0006a36020c20014188016a200141106a200341c0001008101f0240024020012802b001418080808078460d00200141d0006a220220014188016a2200413810081a2000101d200220001020450d0020014188016a200141d0006a100b200128028801418080808078460d00200141c8016a220020014190016a28020036020020012001290288013703c001200141c0016a200141306a102220014188016a2202101d200220012802c40120002802001016200141d0016a24000c010b000b0c080b230041c0016b220124002001200041d0006a360200200141046a2000410472412c10082100200141306a101d20014188016a2000101302400240200128028801418080808078460d00200128028c01200128029001200141306a1021450d0020014188016a2000100f20012802b001418080808078460d00200141d0006a220220014188016a413810081a200141f8006a200141246a1012200020021014200141c0016a24000c010b000b0c070b200041f8006a2101230041c0016b22022400200241186a200341086a290000370200200241206a200341106a290000370200200241286a200341186a2900003702002002200041d0006a36020c20022003290000370210200241306a101d20024188016a200241106a2200101302400240200228028801418080808078460d00200228028c01200228029001200241306a1021450d0020024188016a2000101f20022802b001418080808078460d00200241d0006a20024188016a413810081a200141086a20024180016a28020036020020012002290378370200200241c0016a24000c010b000b230041106b2200240020004180800136020820004190820436020402402001280200418080808078460440419082044181023b0100410221010c010b2000410136020c4190820441003a000020012802042001280208200041046a1023200028020c220141818001490d00000b0c070b230041a0016b22012400200141186a200341086a290000370200200141206a200341106a290000370200200141286a200341186a2900003702002001200041d0006a36020c20012003290000370210200141e8006a200141106a101f02400240200128029001418080808078460d00200141306a2202200141e8006a2200413810081a2000101d200220001020450d00200141306a1018200141a0016a24000c010b000b0c050b230041a0016b220124002001200041d0006a360200200141e8006a200141086a200041086a41281008101f02400240200128029001418080808078460d00200141306a2202200141e8006a2200413810081a2000101d200220001020450d00200141a0016a24000c010b000b0c040b230041a0016b22012400200141186a200341086a290000370200200141206a200341106a290000370200200141286a200341186a2900003702002001200041d0006a36020c20012003290000370210200141e8006a200141106a101f02400240200128029001418080808078460d00200141306a2202200141e8006a2200413810081a2000101d200220001020450d00101c20012903505a0440200141306a10180b200141a0016a24000c010b000b0c030b230041d0006b22022400200041f8006a22014101722203101d101c22074280dddb017c22082007540440000b200241086a2205101d200241386a410036020020024280808080c000370330200220083703282003200510142002410036024c2002428080808010370244200241c4006a2003102220032002280248200228024c1016200241d0006a24001028200041003a0078230041106b22002400200041808001360208200041908204360204024020012d00000440419082044181023b0100410221010c010b4190820441003a00002000410136020c200141016a200041046a100d200028020c220141818001490d00000b0c030b000b410141011027000b1028410041001027000b410020011029000b940101017f230041106b2200240002400240101e41ff01714105470d0020004180800136020c419082042000410c6a1003200028020c2200418180014f0d00200041044f0440419082042d0000419b0147419182042d000041ae014772419282042d0000419d014772419382042d000041de004772450d020b410141011027000b000b10284190820441003b0100410041021029000b0bcb010200418080040b8801eb2c646f99629c7d01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041ca81040b33020202020202020202020202020202020202020202020202020202020202030303030303030303030303030303030404040404","build_info":{"build_mode":"Release","cargo_contract_version":"3.2.0","rust_toolchain":"stable-x86_64-unknown-linux-gnu","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"chatroom","version":"0.1.0","authors":["od41 <[your_email]>"]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":9},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":0},"balance":{"displayName":["Balance"],"type":19},"blockNumber":{"displayName":["BlockNumber"],"type":21},"chainExtension":{"displayName":["ChainExtension"],"type":22},"hash":{"displayName":["Hash"],"type":20},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":5}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":11},"messages":[{"args":[],"default":false,"docs":[],"label":"create_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x34968102"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_chatroom","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":13},"selector":"0xdb1c66f5"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"is_a_participant","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xbe5599da"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"invite","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x8d55fa39"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"message","type":{"displayName":["String"],"type":4}}],"default":false,"docs":[],"label":"send_message","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0xafdc403f"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_messages","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":18},"selector":"0xa9eb1c14"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"delete_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x53f64fda"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"timeout","type":{"displayName":["Timestamp"],"type":5}}],"default":false,"docs":[],"label":"set_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x7a9acd65"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"check_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x40280ee8"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d9c6299","ty":0}},"name":"owner"},{"layout":{"leaf":{"key":"0x7d9c6299","ty":3}},"name":"messages"},{"layout":{"leaf":{"key":"0x7d9c6299","ty":5}},"name":"timeout"}],"name":"Room"}},"root_key":"0x7d9c6299"}},"name":"chatrooms"},{"layout":{"root":{"layout":{"leaf":{"key":"0x6f642ceb","ty":6}},"root_key":"0x6f642ceb"}},"name":"participants"},{"layout":{"root":{"layout":{"leaf":{"key":"0x2d625b4e","ty":7}},"root_key":"0x2d625b4e"}},"name":"messages"}],"name":"Chatroom"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":1,"type":{"def":{"array":{"len":32,"type":2}}}},{"id":2,"type":{"def":{"primitive":"u8"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"primitive":"u64"}}},{"id":6,"type":{"def":{"sequence":{"type":0}}}},{"id":7,"type":{"def":{"sequence":{"type":8}}}},{"id":8,"type":{"def":{"composite":{"fields":[{"name":"sender","type":0,"typeName":"AccountId"},{"name":"content","type":4,"typeName":"String"},{"name":"sent_timestamp","type":5,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Message"]}},{"id":9,"type":{"def":{"variant":{"variants":[{"fields":[{"type":10}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":10},{"name":"E","type":11}],"path":["Result"]}},{"id":10,"type":{"def":{"tuple":[]}}},{"id":11,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":11}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":14}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":14},{"name":"E","type":11}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":15,"type":{"def":{"composite":{"fields":[{"name":"owner","type":0,"typeName":"AccountId"},{"name":"messages","type":3,"typeName":"Vec"},{"name":"timeout","type":5,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Room"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":11}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":11}],"path":["Result"]}},{"id":19,"type":{"def":{"primitive":"u128"}}},{"id":20,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":21,"type":{"def":{"primitive":"u32"}}},{"id":22,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"} \ No newline at end of file +{"source":{"hash":"0x7190db7b8123fd07458afd55a9843488fe35ef32e6d6f42484d49af718b7151b","language":"ink! 4.3.0","compiler":"rustc 1.76.0","wasm":"0x0061736d01000000013c0b60027f7f0060037f7f7f0060027f7f017f60037f7f7f017f60000060047f7f7f7f017f60017f0060047f7f7f7f0060027e7f006000017e6000017f02a50109057365616c310b6765745f73746f726167650005057365616c301176616c75655f7472616e736665727265640000057365616c30036e6f770000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c320b7365745f73746f726167650005057365616c310d636c6561725f73746f726167650002057365616c300b7365616c5f72657475726e000103656e76066d656d6f72790201021003282703000300000002000000000001010100060100000809060a0002030000010702000400040407010608017f01418080040b0711020463616c6c002b066465706c6f79002c0abd54272b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0bc30201067f230041106b22022400024020012802042206450440410121030c010b200128020022072d000021042001200641016b360204410121032001200741016a3602000240024002400240200441037141016b0e03020301000b20044102762105410021030c030b2006410549200441034b720d02200728000121052001200641056b3602042001200741056a36020020054180808080044921030c020b200241096a20043a0000200241013a000820022001360204200241003b010c200241046a2002410c6a4102100a0d0120022f010c220141ff014d0d0120014102762105410021030c010b200241096a20043a0000200241013a0008200220013602042002410036020c200241046a2002410c6a4104100a0d00200228020c220141027621052001418080044921030b2000200536020420002003360200200241106a24000b8e0101017f20002d00042103200041003a0004027f0240200304402001200041056a2d00003a00004101200028020022002802042203200241016b2202490d021a200141016a20002802002201200210081a0c010b41012000280200220028020422032002490d011a200120002802002201200210081a0b2000200320026b3602042000200120026a36020041000b0bb50502067f017e230041b0016b220224002002411c6a200141086a290000370200200241246a200141106a2900003702002002412c6a200141186a2900003702002002418080043602102002200129000037021420024280800137024c200241a8820436024841ceb689eb02200241c8006a2201100c200241146a2001100d0240200228024c220320022802502201490d00200228024821042002200320016b220336024820042001200120046a2201200241c8006a10002104200320022802482205490d002000027e0240024020040e0400030301030b2002200536023820022001360234200241086a200241346a100920022802080d020240200228023841386e2201200228020c220420012004491b2201450440410821030c010b20014192c9a4124b0d03200141386c22034100480d0341082003100e2203450d030b20024100360244200220033602402002200136023c200404400340200228023822034120490d0420024188016a22052002280234220141086a29000037030020024190016a2206200141106a29000037030020024198016a2207200141186a2900003703002002200341206b3602382002200141206a3602342002200129000037038001200241a4016a200241346a100f20022802a4012201418080808078460d042002280238220341074d0d0420022902a8012108200241d0006a2005290300370300200241d8006a2006290300370300200241e0006a200729030037030020022002290380013703482002200341086b36023820022002280234220341086a3602342002200837027420022001360270200220032900003703682002413c6a200241c8006a1010200441016b22040d000b200228023c220141808080807846200141818080807846720d030b20022902400c010b418080808078210142000b37020420002001360200200241b0016a24000f0b000b2601017f230041106b220224002002200036020c20012002410c6a41041019200241106a24000b0a0020012000412010190b100041a882052d00001a2000200110270be00501097f230041106b22062400200641086a200110090240024020062802080d00200628020c220220012802044b0d002006200241011025200128020422052002490d00200628020021082006280204200128020022032002100821042001200520026b3602042001200220036a3602002008418080808078460d0002402002450d00200241076b22014100200120024d1b2109200441036a417c7120046b210a4100210103400240024002400240024002400240024002400240200120046a2d00002205411874411875220741004804402005419f80046a2d000041026b0e03030102080b200a20016b410371450440200120094f0d090340200120046a220541046a280200200528020072418081828478710d0a2009200141086a22014b0d000b0c090b200141016a21010c090b200141016a220320024f0d06200320046a2c000021030240200541e001470440200541ed01460d012007411f6a41ff0171410c490d042007417e71416e470d0820034140480d050c080b200341607141a07f460d040c070b2003419f7f4a0d060c030b200141016a220320024f0d05200320046a2c000021030240024002400240200541f0016b0e050100000002000b2007410f6a41ff017141024b0d0820034140480d020c080b200341f0006a41ff01714130490d010c070b2003418f7f4a0d060b200141026a220520024f0d05200420056a2c000041bf7f4a0d05200141036a220120024f0d05200120046a2c000041bf7f4a0d050c040b200141016a22012002490d020c040b200341404e0d030b200141026a220120024f0d02200120046a2c000041bf7f4c0d010c020b200120046a2c000041bf7f4a0d010b200141016a21010c020b20004180808080783602000c050b200120024f0d000340200120046a2c00004100480d012002200141016a2201470d000b0c020b20012002490d000b0b2000200236020820002008ad2004ad422086843702000c010b20004180808080783602000b200641106a24000bfa0101057f200028020822022000280200460440230041206b2203240002400240200241016a2204450d00200028020022024100480d00410420024101742205200420042005491b2204200441044d1b220441386c210520044193c9a41249410374210602402002450440200341003602180c010b200341083602182003200241386c36021c200320002802043602140b200341086a20062005200341146a10262003280208450d01200328020c1a0b000b200328020c21022000200436020020002002360204200341206a2400200028020821020b2000280204200241386c6a2001413810081a200241016a22010440200020013602080f0b000ba30201047f230041406a22022400200241146a200141086a2900003702002002411c6a200141106a290000370200200241246a200141186a2900003702002002418880043602082002200129000037020c200242808001370238200241a8820436023441ebd990fb06200241346a2201100c2002410c6a2001100d024020022802382204200228023c2201490d00200228023421032002200420016b220436023420032001200120036a2201200241346a10002103200420022802342205490d002000027e0240024020030e0400030301030b200220053602302002200136022c200241346a2002412c6a101220022802342201418080808078460d0220022902380c010b418080808078210142000b37020420002001360200200241406b24000f0b000bc30201047f230041406a22022400200241086a20011009024002402002280208450440024020012802044105762203200228020c220420032004491b2203450440410121050c010b200341ffffff1f4b0d03200341057422054100480d0320034180808020492005100e2205450d030b2002410036021c20022005360218200220033602140240200404400340200128020422034120490d022001200341206b36020420012001280200220341206a360200200241286a200341086a290000370300200241306a200341106a290000370300200241386a200341186a29000037030020022003290000370320200241146a200241206a1023200441016b22040d000b0b20002002290214370200200041086a2002411c6a2802003602000c020b20004180808080783602000c010b20004180808080783602000b200241406b24000f0b000bdd0101047f230041206b22022400200242808001370218200241a8820436021441ebd990fb06200241146a2203100c20012003100d024020022802182204200228021c2201490d00200228021421032002200420016b220436021420032001200120036a2201200241146a10002103200420022802142205490d002000027e0240024020030e0400030301030b200220053602102002200136020c200241146a2002410c6a101220022802142201418080808078460d0220022902180c010b418080808078210142000b37020420002001360200200241206a24000f0b000be10101037f230041306b220324002003410c6a200041086a290000370200200341146a200041106a2900003702002003411c6a200041186a29000037020020034180800436020020032000290000370204200342808001370228200341a8820436022441ceb689eb02200341246a2200100c200341046a2000100d024020032802282205200328022c2200490d00200328022421042003410036022c2003200520006b3602282003200020046a36022420012002200341246a1015200328022c220120032802284b0d00200420002003280224200110051a200341306a24000f0b000b5a01027f200220011017200104402000200141386c6a2101034020002002100d2000412c6a28020021032002200041306a280200220410172002200320041019200041206a2903002002101c200041386a22002001470d000b0b0b870201037f230041306b220324002003410c6a200041086a290000370200200341146a200041106a2900003702002003411c6a200041186a29000037020020034188800436020020032000290000370204200342808001370228200341a8820436022441ebd990fb06200341246a2200100c200341046a2000100d024020032802282200200328022c2204490d00200328022421052003410036022c2003200020046b3602282003200420056a360224200341246a20021017200204402002410574210003402001200341246a100d200141206a2101200041206b22000d000b0b200328022c220020032802284b0d00200520042003280224200010051a200341306a24000f0b000b7401017f230041106b2202240002402001413f4d044020002001410274101b0c010b200141ffff004d0440200220014102744101723b010e20002002410e6a410210190c010b200141ffffffff034d044020014102744102722000100c0c010b20004103101b20012000100c0b200241106a24000b9c0101017f230041306b220124002001410c6a200041086a290000370200200141146a200041106a2900003702002001411c6a200041186a29000037020020014184800436020020012000290000370204200142808001370228200141a882043602244199c5f1ec07200141246a2200100c200141046a2000100d200128022c220020012802284b0440000b2001280224200010061a200141306a24000b4801027f024002402000280208220320026a22042003490d00200420002802044b0d00200420036b2002470d01200028020020036a2001200210081a200020043602080f0b000b000bf70101057f230041406a2202240002402001280204220541204f04402001200541206b220636020420012001280200220341206a2204360200200641204f04402001200541406a3602042001200341406b360200200241286a200441086a290000370300200241306a200441106a290000370300200241386a200441186a290000370300200241086a200341086a290000370300200241106a200341106a290000370300200241186a200341186a2900003703002002200429000037032020022003290000370300200041016a200241c00010081a200041003a00000c020b200041013a00000c010b200041013a00000b200241406b24000b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b2601017f230041106b22022400200220003703082001200241086a41081019200241106a24000b3602017f017e230041106b22002400200042003703002000410836020c20002000410c6a100220002903002101200041106a240020010b6d01017f230041106b2201240020014180800136020c41a882042001410c6a1004200041a98204290000370001200041096a41b18204290000370000200041116a41b98204290000370000200041186a41c08204290000370000200041a882042d00003a0000200141106a24000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10012000290308210120002903002102200041206a2400410541042001200284501b0bce0201047f230041306b220224002002410c6a200141086a290000370200200241146a200141106a2900003702002002411c6a200141186a29000037020020024184800436020020022001290000370204200242808001370228200241a882043602244199c5f1ec07200241246a2201100c200241046a2001100d2000027e0240024020022802282204200228022c2201490d00200228022421032002200420016b220436022420032001200120036a2201200241246a10002105200420022802242203490d00024020050e0400010102010b20034178714120462003412049720d00200041096a2001290001370000200041116a200141096a290000370000200041196a200141116a290000370000200041206a200141186a29000037000020012d00002103200041286a2001290020370300200020033a000842010c020b000b42000b370300200241306a24000b4601037f027f41202102034041002002450d011a200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b450b3501027f200141057421010340200122030440200341206b21012000200210212104200041206a21002004450d010b0b20034100470baa0201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d00200028020022034100480d00410420034101742205200420042005491b2204200441044d1b220441808080204921052004410574210602402003450440200241003602180c010b200241013602182002200341057436021c200220002802043602140b200241086a20052006200241146a10262002280208450d01200228020c1a0b000b200228020c21032000200436020020002003360204200241206a2400200028020821030b200028020420034105746a22022001290000370000200241086a200141086a290000370000200241106a200141106a290000370000200241186a200141186a290000370000200341016a22010440200020013602080f0b000b110020002001100d20002903202001101c0b6f01027f230041106b22032400024002402001450440410121020c010b200141004e2204450d01027f2002450440200341086a20042001102e20032802080c010b2003200420014101102d20032802000b2202450d010b2000200236020420002001360200200341106a24000f0b000bea0101037f230041106b220424002000027f024002402001044020024100480d01027f20032802040440200341086a2802002205450440200441086a200120024100102d20042802082103200428020c0c020b2003280200210602402001200210272203450440410021030c010b20032006200510081a0b20020c010b200420012002102e2004280200210320042802040b21052003044020002003360204200041086a200536020041000c040b20002001360204200041086a20023602000c020b20004100360204200041086a20023602000c010b200041003602040b41010b360200200441106a24000ba00101027f02402001200020016a41016b410020006b7122004d0440024041a08204280200220120006a22032001490d0041a482042802002003490440200041ffff036a22022000490d0320024110764000220141ffff034b0d032001411074220120024180807c716a22032001490d034100210241a482042003360200200020016a22032001490d010b41a082042003360200200121020b20020f0b000b41000b3c01027f027f200145044041a88204210141010c010b4101210241a8820441013a000041a98204210141020b2103200120023a000020002003102a000b5301037f230041106b22002400200042808001370208200041a882043602044100200041046a100c200028020c220120002802084b0440000b200028020422022001200120026a410010051a200041106a24000b0d00200041a8820420011007000b902302077f027e230041b0016b220024000240024002400240101f41ff01714105470d0020004180800136020841a88204200041086a100320002802082204418180014f0d0020044104490d01200041ac82043602502000200441046b220636025441ab82042d0000210141aa82042d0000210241a982042d00002103027f0240024002400240024002400240024041a882042d0000220541db01470440200541c000460d07200541d300460d05200541fa00460d062005418d01460d02200541a901460d04200541af01460d03200541be01460d01200541344720034196014772200241ff017141810147200141ff017141024772720d0b41000c090b2003411c47200241ff017141e6004772200141ff017141f501472006411f4d72720d0a20004188016a41b8820429020037030020004190016a41c0820429020037030020004198016a41c88204280200360200200041b082042902003703800141af82042d0000210341ad82042f0000210141ac82042d0000210241010c080b200341d50047200241ff01714199014772200141ff017141da0147720d09200041086a200041d0006a101a20002d00080d0920004188016a200041156a29000037030020004190016a2000411d6a29000037030020004197016a200041246a290000370000200041e0006a200041406b290000370300200041e8006a200041c8006a2d00003a000020002000410d6a290000370380012000200041386a2900003703582000410c6a2d000021032000410a6a2f000021012000412c6a2800002104200041306a290000210720002d0009210241020c070b200341d50047200241ff017141fa0147720d08200141ff01714139460d050c080b200341dc0147200241ff017141c0004772200141ff0171413f47200641204972720d07200041106a220541b58204290000370300200041186a220241bd82042900003703002000411f6a220141c48204290000370000200041cc82043602502000200441246b360254200041ad820429000037030841ac82042d00002103200041f4006a200041d0006a100f20002802742204418080808078460d0720004197016a200129000037000020004190016a200229030037030020004188016a200529030037030020002000290308370380012000290278210741040c050b200341eb0147200241ff0171411c4772200141ff0171411447200641204972720d0620004188016a41b8820429020037030020004190016a41c0820429020037030020004198016a41c88204280200360200200041cc82043602502000200441246b360254200041b082042902003703800141af82042d0000210341ad82042f0000210141ac82042d0000210241050c040b200341f60147200241ff017141cf004772200141ff017141da0147200641204972720d0520004188016a41b8820429020037030020004190016a41c0820429020037030020004198016a41c88204280200360200200041cc82043602502000200441246b360254200041b082042902003703800141af82042d0000210341ad82042f0000210141ac82042d0000210241060c030b2003419a0147200241ff017141cd014772200141ff017141e50047200641204972720d042004412c6b220541774b0d0441c882042802002104200041136a41b482042902003700002000411b6a41bc8204290200370000200041236a41c48204280200360000200041ac820429020037000b20004188016a200041106a29000037030020004190016a200041186a29000037030020004197016a2000411f6a290000370000200041d4820436025020002005360254200020002900083703800141cc8204290200210741070c020b2003412847200241ff0171410e4772200141ff017141e80147200641204972720d0320004188016a41b8820429020037030020004190016a41c0820429020037030020004198016a41c88204280200360200200041cc82043602502000200441246b360254200041b082042902003703800141af82042d0000210341ad82042f0000210141ac82042d0000210241080c010b200041086a200041d0006a101a20002d00080d0220004188016a200041156a29000037030020004190016a2000411d6a29000037030020004197016a200041246a290000370000200041e0006a200041406b290000370300200041e8006a200041c8006a2d00003a000020002000410d6a290000370380012000200041386a2900003703582000410c6a2d000021032000410a6a2f000021012000412c6a2800002104200041306a290000210720002d0009210241030b2105200041246a20004197016a2900003700002000411d6a20004190016a290300370000200041156a20004188016a290300370000200041406b200041e0006a290300370300200041c8006a200041e8006a290300370300200020002903800137000d200020002903583703382000200436022c20002007370330200020033a000c200020013b010a200020023a0009200020053a000820004280800137028401200041a8820436028001410020004180016a100c20002802840122032000280288012201490d0020002802800121022000200320016b22033602800120022001200120026a20004180016a1000200320002802800149720d00200041086a4101722102024002400240024002400240024002400240200541016b0e080001020304050607080b230041306b22032400200341186a200241086a290000370200200341206a200241106a290000370200200341286a200241186a2900003702002003200041d8006a36020c2003200229000037021020004180016a2201200341106a1020200341306a2400230041106b22002400200041808001360208200041a88204360204024041a98204027f20012903002207420252044041a8820441003a000041002007500d011a41a9820441013a00002000410236020c200141086a200041046a1024200028020c220141818001490d02000b41a8820441013a000041010b3a0000410221010b0c0b0b23004180016b220124002001200041d8006a36020c200141106a200241c00010082100200141e8006a200141c8006a290200370300200141e0006a200141406b290200370300200141d8006a200141386a2902003703002001200141306a290200370350200141f4006a200010114100210020012802744180808080784704402001280278200128027c200141d0006a102221000b20014180016a2400230041106b22012400200141a8820436020041a8820441003a00002001428080818010370204200120003a000f20012001410f6a4101101920012802082201418180014f0440000b0c0a0b230041b0016b220124002001200041d8006a360204200141f0006a200141086a200241c00010081020024002402001290370500d00200141c8006a2200200141f8006a412810081a200141f0006a2202101e200020021021450d00200141f0006a200141c8006a10112001280270418080808078460d00200141a8016a2200200141f8006a280200360200200120012902703703a001200141a0016a200141286a1023200141f0006a2202101e200220012802a40120002802001016200141b0016a24000c010b000b0c080b230041a0016b220124002001200041d8006a3602082001410c6a200041086a410472412c10082100200141386a101e200141e8006a20001013024002402001280268418080808078460d00200128026c2001280270200141386a1022450d00200141e8006a2000100b2001280268418080808078460d00200141e0006a2202200141f0006a22032802003602002001200129026837035820014180016a200141d0006a290000370300200141f8006a200141c8006a2900003703002003200141406b29000037030020012001290038370368101d210720014198016a200141346a280200360200200120073703880120012001412c6a29020037039001200141d8006a200141e8006a10102000200128025c20022802001014200141a0016a24000c010b000b0c070b20004180016a2101230041d0006b220324002003410c6a200241086a290000370200200341146a200241106a2900003702002003411c6a200241186a2900003702002003200041d8006a36020020032002290000370204200341246a101e200341c4006a200341046a22001013024002402003280244418080808078460d002003280248200328024c200341246a1022450d00200341c4006a2000100b2003280244418080808078460d0020012003290244370200200141086a200341cc006a280200360200200341d0006a24000c010b000b230041106b22002400200041808001360208200041a882043602040240200128020041808080807846044041a882044181023b0100410221010c010b2000410136020c41a8820441003a000020012802042001280208200041046a1015200028020c220141818001490d00000b0c070b23004180016b22012400200141106a200241086a290000370200200141186a200241106a290000370200200141206a200241186a2900003702002001200041d8006a36020420012002290000370208200141d0006a200141086a1020024002402001290350500d00200141286a2200200141d8006a412810081a200141d0006a2202101e200020021021450d00200141286a101820014180016a24000c010b000b0c050b23004180016b220124002001200041d8006a360200200141306a200141086a200041106a412810081020024002402001290330500d00200141f8006a200141d0006a290300370300200141f0006a200141c8006a290300370300200141e8006a200141406b29030037030020012001290338370360200141306a2200101e200141e0006a20001021450d0020014180016a24000c010b000b0c040b23004180016b22012400200141186a200241086a290000370200200141206a200241106a290000370200200141286a200241186a2900003702002001200041d8006a36020c20012002290000370210200141d0006a200141106a1020024002402001290350500d00200141c8006a200141f0006a290300370300200141406b200141e8006a290300370300200141386a200141e0006a29030037030020012001290358370330200141f8006a2903002107200141d0006a2200101e200141306a20001021450d00101d20075a0440200141306a10180b20014180016a24000c010b000b0c030b23004190016b2202240020004180016a22014101722203101e02400240101d22074280dddb017c22082007540d00200241106a101e20022008370330200241e4006a200341186a290000370200200241dc006a200341106a290000370200200241d4006a200341086a2900003702002002418480043602482002200329000037024c20024280800137028801200241a88204360284014199c5f1ec0720024184016a2204100c200241cc006a2004100d2002280288012206200228028c012204490d0020022802840121052002410036028c012002200620046b360288012002200420056a36028401200241106a20024184016a1024200228028c0122062002280288014b0d0020052004200228028401200610051a20024100360244200242808080801037023c2002413c6a2003102320032002280240200228024410162002410036028c0120024280808080800137028401200241086a41134100102520022802082105200228020c2204418c80042900003700002004410f6a419b8004280000360000200441086a41948004290000370000200241f8006a4113360200200241f4006a200436020020022005360270101d2107200241e0006a200341186a290000370300200241d8006a200341106a290000370300200241d0006a200341086a290000370300200220073703682002200329000037034820024184016a200241c8006a10102003200228028801200228028c01101420024190016a24000c010b000b1029200041003a008001230041106b22002400200041808001360208200041a88204360204024020012d0000044041a882044181023b0100410221010c010b41a8820441003a00002000410136020c200141016a200041046a100d200028020c220141818001490d00000b0c030b000b410141011028000b1029410041001028000b41002001102a000b940101017f230041106b2200240002400240101f41ff01714105470d0020004180800136020c41a882042000410c6a1003200028020c2200418180014f0d00200041044f044041a882042d0000419b014741a982042d000041ae01477241aa82042d0000419d01477241ab82042d000041de004772450d020b410141011028000b000b102941a8820441003b010041004102102a000b2b0020020440200345044041a882052d00001a0b20012002102721010b20002002360204200020013602000b3901017f230041106b22032400200341086a200120024100102d200328020c21012000200328020836020020002001360204200341106a24000b0be2010200418080040b9f014e5b622d99629c7deb2c646f57656c636f6d6520746f20776869737065722101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041e181040b33020202020202020202020202020202020202020202020202020202020202030303030303030303030303030303030404040404","build_info":{"build_mode":"Release","cargo_contract_version":"3.2.0","rust_toolchain":"stable-x86_64-unknown-linux-gnu","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"chatroom","version":"0.1.0","authors":["od41 <[your_email]>"]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":0},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":20},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":3}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[],"label":"create_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x34968102"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_chatroom","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0xdb1c66f5"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"is_a_participant","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0xbe5599da"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"invite","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x8d55fa39"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"message","type":{"displayName":["String"],"type":7}}],"default":false,"docs":[],"label":"send_message","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0xafdc403f"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_messages","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0xa9eb1c14"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"delete_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x53f64fda"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"timeout","type":{"displayName":["Timestamp"],"type":3}}],"default":false,"docs":[],"label":"set_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x7a9acd65"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"check_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x40280ee8"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d9c6299","ty":0}},"name":"owner"},{"layout":{"leaf":{"key":"0x7d9c6299","ty":3}},"name":"timeout"}],"name":"Room"}},"root_key":"0x7d9c6299"}},"name":"chatrooms"},{"layout":{"root":{"layout":{"leaf":{"key":"0x6f642ceb","ty":4}},"root_key":"0x6f642ceb"}},"name":"participants"},{"layout":{"root":{"layout":{"leaf":{"key":"0x2d625b4e","ty":5}},"root_key":"0x2d625b4e"}},"name":"messages"}],"name":"Chatroom"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":1,"type":{"def":{"array":{"len":32,"type":2}}}},{"id":2,"type":{"def":{"primitive":"u8"}}},{"id":3,"type":{"def":{"primitive":"u64"}}},{"id":4,"type":{"def":{"sequence":{"type":0}}}},{"id":5,"type":{"def":{"sequence":{"type":6}}}},{"id":6,"type":{"def":{"composite":{"fields":[{"name":"sender","type":0,"typeName":"AccountId"},{"name":"content","type":7,"typeName":"String"},{"name":"sent_timestamp","type":3,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Message"]}},{"id":7,"type":{"def":{"primitive":"str"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"owner","type":0,"typeName":"AccountId"},{"name":"timeout","type":3,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Room"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":16}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":16},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"primitive":"bool"}}},{"id":17,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u32"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"} \ No newline at end of file diff --git a/contracts/deployments/chatroom/chatroom.json b/contracts/deployments/chatroom/chatroom.json index fd25426..a76199c 100644 --- a/contracts/deployments/chatroom/chatroom.json +++ b/contracts/deployments/chatroom/chatroom.json @@ -1,6 +1,6 @@ { "source": { - "hash": "0x99b5dc5c125fb6cfd87e38133acca4918d6dab6e49b27ec665e97ef0ee9bbe0a", + "hash": "0x7190db7b8123fd07458afd55a9843488fe35ef32e6d6f42484d49af718b7151b", "language": "ink! 4.3.0", "compiler": "rustc 1.76.0", "build_info": { @@ -33,7 +33,7 @@ "ink_primitives", "ConstructorResult" ], - "type": 9 + "type": 8 }, "selector": "0x9bae9d5e" } @@ -50,32 +50,32 @@ "displayName": [ "Balance" ], - "type": 19 + "type": 18 }, "blockNumber": { "displayName": [ "BlockNumber" ], - "type": 21 + "type": 20 }, "chainExtension": { "displayName": [ "ChainExtension" ], - "type": 22 + "type": 21 }, "hash": { "displayName": [ "Hash" ], - "type": 20 + "type": 19 }, "maxEventTopics": 4, "timestamp": { "displayName": [ "Timestamp" ], - "type": 5 + "type": 3 } }, "events": [], @@ -84,7 +84,7 @@ "ink", "LangError" ], - "type": 11 + "type": 10 }, "messages": [ { @@ -99,7 +99,7 @@ "ink", "MessageResult" ], - "type": 12 + "type": 11 }, "selector": "0x34968102" }, @@ -125,7 +125,7 @@ "ink", "MessageResult" ], - "type": 13 + "type": 12 }, "selector": "0xdb1c66f5" }, @@ -160,7 +160,7 @@ "ink", "MessageResult" ], - "type": 16 + "type": 15 }, "selector": "0xbe5599da" }, @@ -195,7 +195,7 @@ "ink", "MessageResult" ], - "type": 9 + "type": 8 }, "selector": "0x8d55fa39" }, @@ -216,7 +216,7 @@ "displayName": [ "String" ], - "type": 4 + "type": 7 } } ], @@ -230,7 +230,7 @@ "ink", "MessageResult" ], - "type": 9 + "type": 8 }, "selector": "0xafdc403f" }, @@ -256,7 +256,7 @@ "ink", "MessageResult" ], - "type": 18 + "type": 17 }, "selector": "0xa9eb1c14" }, @@ -282,7 +282,7 @@ "ink", "MessageResult" ], - "type": 9 + "type": 8 }, "selector": "0x53f64fda" }, @@ -303,7 +303,7 @@ "displayName": [ "Timestamp" ], - "type": 5 + "type": 3 } } ], @@ -317,7 +317,7 @@ "ink", "MessageResult" ], - "type": 9 + "type": 8 }, "selector": "0x7a9acd65" }, @@ -343,7 +343,7 @@ "ink", "MessageResult" ], - "type": 9 + "type": 8 }, "selector": "0x40280ee8" } @@ -376,15 +376,6 @@ "ty": 3 } }, - "name": "messages" - }, - { - "layout": { - "leaf": { - "key": "0x7d9c6299", - "ty": 5 - } - }, "name": "timeout" } ], @@ -402,7 +393,7 @@ "layout": { "leaf": { "key": "0x6f642ceb", - "ty": 6 + "ty": 4 } }, "root_key": "0x6f642ceb" @@ -416,7 +407,7 @@ "layout": { "leaf": { "key": "0x2d625b4e", - "ty": 7 + "ty": 5 } }, "root_key": "0x2d625b4e" @@ -473,24 +464,6 @@ }, { "id": 3, - "type": { - "def": { - "sequence": { - "type": 4 - } - } - } - }, - { - "id": 4, - "type": { - "def": { - "primitive": "str" - } - } - }, - { - "id": 5, "type": { "def": { "primitive": "u64" @@ -498,7 +471,7 @@ } }, { - "id": 6, + "id": 4, "type": { "def": { "sequence": { @@ -508,17 +481,17 @@ } }, { - "id": 7, + "id": 5, "type": { "def": { "sequence": { - "type": 8 + "type": 6 } } } }, { - "id": 8, + "id": 6, "type": { "def": { "composite": { @@ -530,12 +503,12 @@ }, { "name": "content", - "type": 4, + "type": 7, "typeName": "String" }, { "name": "sent_timestamp", - "type": 5, + "type": 3, "typeName": "Timestamp" } ] @@ -549,7 +522,15 @@ } }, { - "id": 9, + "id": 7, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 8, "type": { "def": { "variant": { @@ -557,7 +538,7 @@ { "fields": [ { - "type": 10 + "type": 9 } ], "index": 0, @@ -566,7 +547,7 @@ { "fields": [ { - "type": 11 + "type": 10 } ], "index": 1, @@ -578,11 +559,11 @@ "params": [ { "name": "T", - "type": 10 + "type": 9 }, { "name": "E", - "type": 11 + "type": 10 } ], "path": [ @@ -591,7 +572,7 @@ } }, { - "id": 10, + "id": 9, "type": { "def": { "tuple": [] @@ -599,7 +580,7 @@ } }, { - "id": 11, + "id": 10, "type": { "def": { "variant": { @@ -618,7 +599,7 @@ } }, { - "id": 12, + "id": 11, "type": { "def": { "variant": { @@ -635,7 +616,7 @@ { "fields": [ { - "type": 11 + "type": 10 } ], "index": 1, @@ -651,7 +632,7 @@ }, { "name": "E", - "type": 11 + "type": 10 } ], "path": [ @@ -660,7 +641,7 @@ } }, { - "id": 13, + "id": 12, "type": { "def": { "variant": { @@ -668,7 +649,7 @@ { "fields": [ { - "type": 14 + "type": 13 } ], "index": 0, @@ -677,7 +658,7 @@ { "fields": [ { - "type": 11 + "type": 10 } ], "index": 1, @@ -689,11 +670,11 @@ "params": [ { "name": "T", - "type": 14 + "type": 13 }, { "name": "E", - "type": 11 + "type": 10 } ], "path": [ @@ -702,7 +683,7 @@ } }, { - "id": 14, + "id": 13, "type": { "def": { "variant": { @@ -714,7 +695,7 @@ { "fields": [ { - "type": 15 + "type": 14 } ], "index": 1, @@ -726,7 +707,7 @@ "params": [ { "name": "T", - "type": 15 + "type": 14 } ], "path": [ @@ -735,7 +716,7 @@ } }, { - "id": 15, + "id": 14, "type": { "def": { "composite": { @@ -745,14 +726,9 @@ "type": 0, "typeName": "AccountId" }, - { - "name": "messages", - "type": 3, - "typeName": "Vec" - }, { "name": "timeout", - "type": 5, + "type": 3, "typeName": "Timestamp" } ] @@ -766,7 +742,7 @@ } }, { - "id": 16, + "id": 15, "type": { "def": { "variant": { @@ -774,7 +750,7 @@ { "fields": [ { - "type": 17 + "type": 16 } ], "index": 0, @@ -783,7 +759,7 @@ { "fields": [ { - "type": 11 + "type": 10 } ], "index": 1, @@ -795,11 +771,11 @@ "params": [ { "name": "T", - "type": 17 + "type": 16 }, { "name": "E", - "type": 11 + "type": 10 } ], "path": [ @@ -808,7 +784,7 @@ } }, { - "id": 17, + "id": 16, "type": { "def": { "primitive": "bool" @@ -816,7 +792,7 @@ } }, { - "id": 18, + "id": 17, "type": { "def": { "variant": { @@ -824,7 +800,7 @@ { "fields": [ { - "type": 3 + "type": 5 } ], "index": 0, @@ -833,7 +809,7 @@ { "fields": [ { - "type": 11 + "type": 10 } ], "index": 1, @@ -845,11 +821,11 @@ "params": [ { "name": "T", - "type": 3 + "type": 5 }, { "name": "E", - "type": 11 + "type": 10 } ], "path": [ @@ -858,7 +834,7 @@ } }, { - "id": 19, + "id": 18, "type": { "def": { "primitive": "u128" @@ -866,7 +842,7 @@ } }, { - "id": 20, + "id": 19, "type": { "def": { "composite": { @@ -886,7 +862,7 @@ } }, { - "id": 21, + "id": 20, "type": { "def": { "primitive": "u32" @@ -894,7 +870,7 @@ } }, { - "id": 22, + "id": 21, "type": { "def": { "variant": {} diff --git a/contracts/deployments/chatroom/chatroom.wasm b/contracts/deployments/chatroom/chatroom.wasm index 62e6824..6df3915 100644 Binary files a/contracts/deployments/chatroom/chatroom.wasm and b/contracts/deployments/chatroom/chatroom.wasm differ diff --git a/contracts/src/chatroom/lib.rs b/contracts/src/chatroom/lib.rs index 7ed7b60..a804f7f 100755 --- a/contracts/src/chatroom/lib.rs +++ b/contracts/src/chatroom/lib.rs @@ -25,7 +25,6 @@ mod chatroom { )] pub struct Room { owner: AccountId, - messages: Vec, timeout: Timestamp, } @@ -55,7 +54,6 @@ mod chatroom { let timeout = self.env().block_timestamp() + &3600000; // 60 minutes destroy chatroom in 60 minutes let new_chatroom = Room { owner: Self::env().caller(), - messages: Vec::new(), timeout: timeout, }; @@ -67,6 +65,15 @@ mod chatroom { new_participants.push(caller); self.participants.insert(caller, &new_participants); + // Store the messages + let mut new_messages = Vec::new(); + new_messages.push(Message { + sender: caller, + content: String::from("Welcome to whisper!"), + sent_timestamp: self.env().block_timestamp(), + }); + self.messages.insert(caller, &new_messages); + caller // caller account_id is the id for the chatroom } @@ -116,16 +123,19 @@ mod chatroom { None => panic!("Chatroom doesn't exist"), }; - let mut room = self.chatrooms.get(chatroom_id).unwrap(); + let mut messages = self.messages.get(chatroom_id).unwrap(); - // let mut messages = chatroom.messages; - room.messages.push(message); + messages.push(Message { + sender: caller, + content: message, + sent_timestamp: self.env().block_timestamp(), + }); - self.chatrooms.insert(chatroom_id, &room); + self.messages.insert(chatroom_id, &messages); } #[ink(message)] - pub fn get_messages(&self, chatroom_id: AccountId) -> Vec { + pub fn get_messages(&self, chatroom_id: AccountId) -> Vec { let caller = self.env().caller(); // Ensure the sender is a participant of the chatroom match self.participants.get(&chatroom_id) { @@ -137,10 +147,8 @@ mod chatroom { } None => panic!("Chatroom doesn't exist"), }; - let room = self.get_chatroom(chatroom_id).unwrap(); - // Retrieve messages for the caller if any - room.messages + self.messages.get(chatroom_id).unwrap() } #[ink(message)] @@ -262,6 +270,8 @@ mod chatroom { chatroom.invite(chatroom_id, accounts.alice); chatroom.invite(chatroom_id, accounts.charlie); + // test to see if member is a participant + // account 2 send message ink::env::test::set_caller::(accounts.alice); // set account2 as the current caller let message1 = String::from("This is the first message"); @@ -269,7 +279,12 @@ mod chatroom { // check message1 assert!( - chatroom.get_messages(chatroom_id).contains(&message1), + chatroom + .messages + .get(chatroom_id) + .unwrap() + .iter() + .any(|e| e.content == message1), "Message does not exist" ); @@ -280,7 +295,12 @@ mod chatroom { // check message2 assert!( - chatroom.get_messages(chatroom_id).contains(&message2), + chatroom + .messages + .get(chatroom_id) + .unwrap() + .iter() + .any(|e| e.content == message2), "Message does not exist" ); } @@ -304,6 +324,26 @@ mod chatroom { chatroom.delete_chatroom(chatroom_id); } + #[ink::test] + fn is_a_participant_works() { + let accounts = ink::env::test::default_accounts::(); + + let chatroom_id = accounts.bob.clone(); + ink::env::test::set_caller::(chatroom_id); + + let mut chatroom = Chatroom::new(); + chatroom.create_chatroom(); + + // invite alice & charlie + chatroom.invite(chatroom_id, accounts.alice); + chatroom.invite(chatroom_id, accounts.charlie); + + assert!(chatroom.is_a_participant(chatroom_id, accounts.alice)); + assert!(!chatroom.is_a_participant(chatroom_id, accounts.eve)); // eve has not been invited, so it should fail + + // test to see if member is a participant + } + // TODO write a test for auto delete after 60 minutes } } diff --git a/contracts/typed-contracts/contract-info/chatroom.ts b/contracts/typed-contracts/contract-info/chatroom.ts index 5d5249b..f97dc7a 100644 --- a/contracts/typed-contracts/contract-info/chatroom.ts +++ b/contracts/typed-contracts/contract-info/chatroom.ts @@ -1,2 +1,2 @@ -export const ContractAbi = `{"source":{"hash":"0x99b5dc5c125fb6cfd87e38133acca4918d6dab6e49b27ec665e97ef0ee9bbe0a","language":"ink! 4.3.0","compiler":"rustc 1.76.0","build_info":{"build_mode":"Release","cargo_contract_version":"3.2.0","rust_toolchain":"stable-x86_64-unknown-linux-gnu","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"chatroom","version":"0.1.0","authors":["od41 <[your_email]>"]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":9},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":0},"balance":{"displayName":["Balance"],"type":19},"blockNumber":{"displayName":["BlockNumber"],"type":21},"chainExtension":{"displayName":["ChainExtension"],"type":22},"hash":{"displayName":["Hash"],"type":20},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":5}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":11},"messages":[{"args":[],"default":false,"docs":[],"label":"create_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x34968102"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_chatroom","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":13},"selector":"0xdb1c66f5"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"is_a_participant","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xbe5599da"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"invite","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x8d55fa39"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"message","type":{"displayName":["String"],"type":4}}],"default":false,"docs":[],"label":"send_message","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0xafdc403f"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_messages","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":18},"selector":"0xa9eb1c14"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"delete_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x53f64fda"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"timeout","type":{"displayName":["Timestamp"],"type":5}}],"default":false,"docs":[],"label":"set_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x7a9acd65"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"check_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x40280ee8"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d9c6299","ty":0}},"name":"owner"},{"layout":{"leaf":{"key":"0x7d9c6299","ty":3}},"name":"messages"},{"layout":{"leaf":{"key":"0x7d9c6299","ty":5}},"name":"timeout"}],"name":"Room"}},"root_key":"0x7d9c6299"}},"name":"chatrooms"},{"layout":{"root":{"layout":{"leaf":{"key":"0x6f642ceb","ty":6}},"root_key":"0x6f642ceb"}},"name":"participants"},{"layout":{"root":{"layout":{"leaf":{"key":"0x2d625b4e","ty":7}},"root_key":"0x2d625b4e"}},"name":"messages"}],"name":"Chatroom"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":1,"type":{"def":{"array":{"len":32,"type":2}}}},{"id":2,"type":{"def":{"primitive":"u8"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"primitive":"u64"}}},{"id":6,"type":{"def":{"sequence":{"type":0}}}},{"id":7,"type":{"def":{"sequence":{"type":8}}}},{"id":8,"type":{"def":{"composite":{"fields":[{"name":"sender","type":0,"typeName":"AccountId"},{"name":"content","type":4,"typeName":"String"},{"name":"sent_timestamp","type":5,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Message"]}},{"id":9,"type":{"def":{"variant":{"variants":[{"fields":[{"type":10}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":10},{"name":"E","type":11}],"path":["Result"]}},{"id":10,"type":{"def":{"tuple":[]}}},{"id":11,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":11}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":14}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":14},{"name":"E","type":11}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":15,"type":{"def":{"composite":{"fields":[{"name":"owner","type":0,"typeName":"AccountId"},{"name":"messages","type":3,"typeName":"Vec"},{"name":"timeout","type":5,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Room"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":11}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":11}],"path":["Result"]}},{"id":19,"type":{"def":{"primitive":"u128"}}},{"id":20,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":21,"type":{"def":{"primitive":"u32"}}},{"id":22,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; -export const ContractFile = `{"source":{"hash":"0x99b5dc5c125fb6cfd87e38133acca4918d6dab6e49b27ec665e97ef0ee9bbe0a","language":"ink! 4.3.0","compiler":"rustc 1.76.0","wasm":"0x0061736d0100000001370a60027f7f0060027f7f017f60037f7f7f0060037f7f7f017f60000060047f7f7f7f017f60017f0060047f7f7f7f006000017e6000017f02a50109057365616c310b6765745f73746f726167650005057365616c301176616c75655f7472616e736665727265640000057365616c30036e6f770000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c320b7365745f73746f726167650005057365616c310d636c6561725f73746f726167650001057365616c300b7365616c5f72657475726e000203656e76066d656d6f7279020102100325240300030000000000010000000000020006020000080609000103000207010700040004040608017f01418080040b0711020463616c6c002a066465706c6f79002b0ae44c242b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0bc30201067f230041106b22022400024020012802042206450440410121030c010b200128020022072d000021042001200641016b360204410121032001200741016a3602000240024002400240200441037141016b0e03020301000b20044102762105410021030c030b2006410549200441034b720d02200728000121052001200641056b3602042001200741056a36020020054180808080044921030c020b200241096a20043a0000200241013a000820022001360204200241003b010c200241046a2002410c6a4102100a0d0120022f010c220141ff014d0d0120014102762105410021030c010b200241096a20043a0000200241013a0008200220013602042002410036020c200241046a2002410c6a4104100a0d00200228020c220141027621052001418080044921030b2000200536020420002003360200200241106a24000b8e0101017f20002d00042103200041003a0004027f0240200304402001200041056a2d00003a00004101200028020022002802042203200241016b2202490d021a200141016a20002802002201200210081a0c010b41012000280200220028020422032002490d011a200120002802002201200210081a0b2000200320026b3602042000200120026a36020041000b0ba30201047f230041406a22022400200241146a200141086a2900003702002002411c6a200141106a290000370200200241246a200141186a2900003702002002418080043602082002200129000037020c20024280800137023820024190820436023441ebd990fb06200241346a2201100c2002410c6a2001100d024020022802382204200228023c2201490d00200228023421032002200420016b220436023420032001200120036a2201200241346a10002103200420022802342205490d002000027e0240024020030e0400030301030b200220053602302002200136022c200241346a2002412c6a100e20022802342201418080808078460d0220022902380c010b418080808078210142000b37020420002001360200200241406b24000f0b000b2601017f230041106b220224002002200036020c20012002410c6a41041019200241106a24000b0a0020012000412010190bc30201047f230041406a22022400200241086a20011009024002402002280208450440024020012802044105762203200228020c220420032004491b2203450440410121050c010b200341ffffff1f4b0d03200341057422054100480d032003418080802049200510102205450d030b2002410036021c20022005360218200220033602140240200404400340200128020422034120490d022001200341206b36020420012001280200220341206a360200200241286a200341086a290000370300200241306a200341106a290000370300200241386a200341186a29000037030020022003290000370320200241146a200241206a1022200441016b22040d000b0b20002002290214370200200041086a2002411c6a2802003602000c020b20004180808080783602000c010b20004180808080783602000b200241406b24000f0b000bd70502047f027e23004190016b22022400200241386a200141086a290000370200200241406b200141106a290000370200200241c8006a200141186a29000037020020024184800436022c2002200129000037023020024280800137025c2002419082043602584199c5f1ec07200241d8006a2201100c200241306a2001100d0240200228025c220420022802602201490d00200228025821032002200420016b220436025820032001200120036a2201200241d8006a10002105200420022802582203490d0002400240024020050e0400030301030b20034120490d02200241e0006a200141096a290000370300200241e8006a200141116a290000370300200241ef006a200141186a2900003700002002200341206b3602542002200141206a3602502002200129000137035820012d000021042002200241d0006a100920022802000d0202402002280254410c6e220320022802042201200120034b1b2203450440410421050c010b200341aad5aad5004b0d032003410c6c22054100480d034104200510102205450d030b20024100360280012002200536027c2002200336027820010440034020024184016a200241d0006a10112002280284012203418080808078460d04200220022902880137020c20022003360208200241f8006a200241086a1012200141016b22010d000b20022802782203418080808078460d030b200229027c2106200228025441074d0d02200241106a200241e0006a290300370300200241186a200241e8006a2903003703002002411f6a200241ef006a290000370000200220022903583703082003418180808078460d02200228025029000021070c010b4180808080782103410021040b200020043a0000200020022903083700012000200637022c2000200336022820002007370320200041096a200241106a290300370000200041116a200241186a290300370000200041186a2002411f6a29000037000020024190016a24000f0b000b1000419082052d00001a2000200110250bf50501087f230041106b22062400200641086a200110090240024020062802080d0020012802042205200628020c2202490d00024002402002450440410121030c010b20024100480d012006410120024101102620062802002203450d01200128020421050b200220054b0d012003200128020022042002100821032001200520026b3602042001200220046a36020002402002450d00200241076b22014100200120024d1b2108200341036a417c7120036b21094100210103400240024002400240024002400240024002400240200120036a2d00002205411874411875220741004804402005418880046a2d000041026b0e03030102080b200920016b410371450440200120084f0d090340200120036a220541046a280200200528020072418081828478710d0a2008200141086a22014b0d000b0c090b200141016a21010c090b200141016a220420024f0d06200320046a2c000021040240200541e001470440200541ed01460d012007411f6a41ff0171410c490d042007417e71416e470d0820044140480d050c080b200441607141a07f460d040c070b2004419f7f4a0d060c030b200141016a220420024f0d05200320046a2c000021040240024002400240200541f0016b0e050100000002000b2007410f6a41ff017141024b0d0820044140480d020c080b200441f0006a41ff01714130490d010c070b2004418f7f4a0d060b200141026a220520024f0d05200320056a2c000041bf7f4a0d05200141036a220120024f0d05200120036a2c000041bf7f4a0d050c040b200141016a22012002490d020c040b200441404e0d030b200141026a220120024f0d02200120036a2c000041bf7f4c0d010c020b200120036a2c000041bf7f4a0d010b200141016a21010c020b20004180808080783602000c060b200120024f0d000340200120036a2c00004100480d012002200141016a2201470d000b0c020b20012002490d000b0b2000200236020820002002ad2003ad422086843702000c020b000b20004180808080783602000b200641106a24000b8e0201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d00200028020022034100480d00410420034101742205200420042005491b2204200441044d1b2204410c6c2105200441abd5aad50049410274210602402003450440200241003602180c010b2002410436021820022003410c6c36021c200220002802043602140b200241086a20062005200241146a10242002280208450d01200228020c1a0b000b200228020c21032000200436020020002003360204200241206a2400200028020821030b20002802042003410c6c6a22022001290200370200200241086a200141086a280200360200200341016a22010440200020013602080f0b000bdd0101047f230041206b2202240020024280800137021820024190820436021441ebd990fb06200241146a2203100c20012003100d024020022802182204200228021c2201490d00200228021421032002200420016b220436021420032001200120036a2201200241146a10002103200420022802142205490d002000027e0240024020030e0400030301030b200220053602102002200136020c200241146a2002410c6a100e20022802142201418080808078460d0220022902180c010b418080808078210142000b37020420002001360200200241206a24000f0b000bdf0101037f230041306b220224002002410c6a200041086a290000370200200241146a200041106a2900003702002002411c6a200041186a290000370200200241848004360200200220002900003702042002428080013702282002419082043602244199c5f1ec07200241246a2200100c200241046a2000100d024020022802282204200228022c2200490d00200228022421032002410036022c2002200420006b3602282002200020036a3602242001200241246a1015200228022c220120022802284b0d00200320002002280224200110051a200241306a24000f0b000b4301017f230041106b2202240020002001100d2000412c6a280200200041306a28020020011023200220002903203703082001200241086a41081019200241106a24000b870201037f230041306b220324002003410c6a200041086a290000370200200341146a200041106a2900003702002003411c6a200041186a2900003702002003418080043602002003200029000037020420034280800137022820034190820436022441ebd990fb06200341246a2200100c200341046a2000100d024020032802282200200328022c2204490d00200328022421052003410036022c2003200020046b3602282003200420056a360224200341246a20021017200204402002410574210003402001200341246a100d200141206a2101200041206b22000d000b0b200328022c220020032802284b0d00200520042003280224200010051a200341306a24000f0b000b7401017f230041106b2202240002402001413f4d044020002001410274101b0c010b200141ffff004d0440200220014102744101723b010e20002002410e6a410210190c010b200141ffffffff034d044020014102744102722000100c0c010b20004103101b20012000100c0b200241106a24000b9c0101017f230041306b220124002001410c6a200041086a290000370200200141146a200041106a2900003702002001411c6a200041186a290000370200200141848004360200200120002900003702042001428080013702282001419082043602244199c5f1ec07200141246a2200100c200141046a2000100d200128022c220020012802284b0440000b2001280224200010061a200141306a24000b4801027f024002402000280208220320026a22042003490d00200420002802044b0d00200420036b2002470d01200028020020036a2001200210081a200020043602080f0b000b000bf70101057f230041406a2202240002402001280204220541204f04402001200541206b220636020420012001280200220341206a2204360200200641204f04402001200541406a3602042001200341406b360200200241286a200441086a290000370300200241306a200441106a290000370300200241386a200441186a290000370300200241086a200341086a290000370300200241106a200341106a290000370300200241186a200341186a2900003703002002200429000037032020022003290000370300200041016a200241c00010081a200041003a00000c020b200041013a00000c010b200041013a00000b200241406b24000b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b3602017f017e230041106b22002400200042003703002000410836020c20002000410c6a100220002903002101200041106a240020010b6d01017f230041106b2201240020014180800136020c419082042001410c6a1004200041918204290000370001200041096a41998204290000370000200041116a41a18204290000370000200041186a41a882042900003700002000419082042d00003a0000200141106a24000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10012000290308210120002903002102200041206a2400410541042001200284501b0b4801017f230041406a22022400200241086a2001100f0240200228023041808080807846044020004180808080783602280c010b2000200241086a413810081a0b200241406b24000b4601037f027f41202102034041002002450d011a200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b450b3501027f200141057421010340200122030440200341206b21012000200210202104200041206a21002004450d010b0b20034100470baa0201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d00200028020022034100480d00410420034101742205200420042005491b2204200441044d1b220441808080204921052004410574210602402003450440200241003602180c010b200241013602182002200341057436021c200220002802043602140b200241086a20052006200241146a10242002280208450d01200228020c1a0b000b200228020c21032000200436020020002003360204200241206a2400200028020821030b200028020420034105746a22022001290000370000200241086a200141086a290000370000200241106a200141106a290000370000200241186a200141186a290000370000200341016a22010440200020013602080f0b000b4d01027f200220011017200104402001410c6c2103200041086a21010340200141046b2802002100200220012802002204101720022000200410192001410c6a21012003410c6b22030d000b0b0bec0101037f230041106b220424002000027f024002402001044020024100480d01027f20032802040440200341086a2802002205450440200441086a200120024100102620042802082103200428020c0c020b2003280200210602402001200210252203450440410021030c010b20032006200510081a0b20020c010b200420012002410010262004280200210320042802040b21052003044020002003360204200041086a200536020041000c040b20002001360204200041086a20023602000c020b20004100360204200041086a20023602000c010b200041003602040b41010b360200200441106a24000ba00101027f02402001200020016a41016b410020006b7122004d0440024041888204280200220120006a22032001490d00418c82042802002003490440200041ffff036a22022000490d0320024110764000220141ffff034b0d032001411074220120024180807c716a22032001490d0341002102418c82042003360200200020016a22032001490d010b418882042003360200200121020b20020f0b000b41000b2b00200204402003450440419082052d00001a0b20012002102521010b20002002360204200020013602000b3c01027f027f200145044041908204210141010c010b410121024190820441013a000041918204210141020b2103200120023a0000200020031029000b5301037f230041106b220024002000428080013702082000419082043602044100200041046a100c200028020c220120002802084b0440000b200028020422022001200120026a410010051a200041106a24000b0d0020004190820420011007000b9f1e02077f027e230041b0016b220024000240024002400240101e41ff01714105470d00200041808001360200419082042000100320002802002205418180014f0d0020054104490d012000419482043602482000200541046b220636024c419382042d00002101419282042d00002102419182042d00002103027f02400240024002400240024002400240419082042d0000220441db01470440200441c000460d07200441d300460d05200441fa00460d062004418d01460d02200441a901460d04200441af01460d03200441be01460d01200441344720034196014772200241ff017141810147200141ff017141024772720d0b41000c090b2003411c47200241ff017141e6004772200141ff017141f501472006411f4d72720d0a20004180016a41a0820429020037030020004188016a41a8820429020037030020004190016a41b08204280200360200200041988204290200370378419782042d00002103419582042f00002101419482042d0000210241010c080b200341d50047200241ff01714199014772200141ff017141da0147720d092000200041c8006a101a20002d00000d0920004180016a2000410d6a29000037030020004188016a200041156a2900003703002000418f016a2000411c6a290000370000200041d8006a200041386a290000370300200041e0006a200041406b2d00003a00002000200041056a2900003703782000200041306a290000370350200041046a2d00002103200041026a2f00002101200041246a2800002105200041286a290000210720002d0001210241020c070b200341d50047200241ff017141fa0147720d08200141ff01714139460d050c080b200341dc0147200241ff017141c0004772200141ff0171413f47200641204972720d07200041086a2204419d8204290000370300200041106a220241a58204290000370300200041176a220141ac8204290000370000200041b482043602482000200541246b36024c200041958204290000370300419482042d00002103200041ec006a200041c8006a1011200028026c2205418080808078460d072000418f016a200129000037000020004188016a200229030037030020004180016a2004290300370300200020002903003703782000290270210741040c050b200341eb0147200241ff0171411c4772200141ff0171411447200641204972720d0620004180016a41a0820429020037030020004188016a41a8820429020037030020004190016a41b08204280200360200200041b482043602482000200541246b36024c200041988204290200370378419782042d00002103419582042f00002101419482042d0000210241050c040b200341f60147200241ff017141cf004772200141ff017141da0147200641204972720d0520004180016a41a0820429020037030020004188016a41a8820429020037030020004190016a41b08204280200360200200041b482043602482000200541246b36024c200041988204290200370378419782042d00002103419582042f00002101419482042d0000210241060c030b2003419a0147200241ff017141cd014772200141ff017141e50047200641204972720d042005412c6b220441774b0d0441b0820428020021052000410b6a419c8204290200370000200041136a41a482042902003700002000411b6a41ac820428020036000020004194820429020037000320004180016a200041086a29000037030020004188016a200041106a2900003703002000418f016a200041176a290000370000200041bc82043602482000200436024c2000200029000037037841b48204290200210741070c020b2003412847200241ff0171410e4772200141ff017141e80147200641204972720d0320004180016a41a0820429020037030020004188016a41a8820429020037030020004190016a41b08204280200360200200041b482043602482000200541246b36024c200041988204290200370378419782042d00002103419582042f00002101419482042d0000210241080c010b2000200041c8006a101a20002d00000d0220004180016a2000410d6a29000037030020004188016a200041156a2900003703002000418f016a2000411c6a290000370000200041d8006a200041386a290000370300200041e0006a200041406b2d00003a00002000200041056a2900003703782000200041306a290000370350200041046a2d00002103200041026a2f00002101200041246a2800002105200041286a290000210720002d0001210241030b21042000411c6a2000418f016a290000370000200041156a20004188016a2903003700002000410d6a20004180016a290300370000200041386a200041d8006a290300370300200041406b200041e0006a29030037030020002000290378370005200020002903503703302000200536022420002007370328200020033a0004200020013b0102200020023a0001200020043a000020004280800137027c2000419082043602784100200041f8006a100c200028027c22032000280280012201490d00200028027821022000200320016b220336027820022001200120026a200041f8006a10002003200028027849720d0020004101722103024002400240024002400240024002400240200441016b0e080001020304050607080b230041306b22022400200241186a200341086a290000370200200241206a200341106a290000370200200241286a200341186a2900003702002002200041d0006a36020c20022003290000370210200041f8006a2201200241106a101f200241306a2400230041106b22002400200041808001360208200041908204360204024041918204027f200128022822024181808080784704404190820441003a000041002002418080808078460d011a4191820441013a00002000410236020c2001200041046a1015200028020c220141818001490d02000b4190820441013a000041010b3a0000410221010b0c0b0b23004180016b220124002001200041d0006a36020c200141106a200341c00010082100200141e8006a200141c8006a290200370300200141e0006a200141406b290200370300200141d8006a200141386a2902003703002001200141306a290200370350200141f4006a2000100b4100210020012802744180808080784704402001280278200128027c200141d0006a102121000b20014180016a2400230041106b220124002001419082043602004190820441003a00002001428080818010370204200120003a000f20012001410f6a4101101920012802082201418180014f0440000b0c0a0b230041d0016b220124002001200041d0006a36020c20014188016a200141106a200341c0001008101f0240024020012802b001418080808078460d00200141d0006a220220014188016a2200413810081a2000101d200220001020450d0020014188016a200141d0006a100b200128028801418080808078460d00200141c8016a220020014190016a28020036020020012001290288013703c001200141c0016a200141306a102220014188016a2202101d200220012802c40120002802001016200141d0016a24000c010b000b0c080b230041c0016b220124002001200041d0006a360200200141046a2000410472412c10082100200141306a101d20014188016a2000101302400240200128028801418080808078460d00200128028c01200128029001200141306a1021450d0020014188016a2000100f20012802b001418080808078460d00200141d0006a220220014188016a413810081a200141f8006a200141246a1012200020021014200141c0016a24000c010b000b0c070b200041f8006a2101230041c0016b22022400200241186a200341086a290000370200200241206a200341106a290000370200200241286a200341186a2900003702002002200041d0006a36020c20022003290000370210200241306a101d20024188016a200241106a2200101302400240200228028801418080808078460d00200228028c01200228029001200241306a1021450d0020024188016a2000101f20022802b001418080808078460d00200241d0006a20024188016a413810081a200141086a20024180016a28020036020020012002290378370200200241c0016a24000c010b000b230041106b2200240020004180800136020820004190820436020402402001280200418080808078460440419082044181023b0100410221010c010b2000410136020c4190820441003a000020012802042001280208200041046a1023200028020c220141818001490d00000b0c070b230041a0016b22012400200141186a200341086a290000370200200141206a200341106a290000370200200141286a200341186a2900003702002001200041d0006a36020c20012003290000370210200141e8006a200141106a101f02400240200128029001418080808078460d00200141306a2202200141e8006a2200413810081a2000101d200220001020450d00200141306a1018200141a0016a24000c010b000b0c050b230041a0016b220124002001200041d0006a360200200141e8006a200141086a200041086a41281008101f02400240200128029001418080808078460d00200141306a2202200141e8006a2200413810081a2000101d200220001020450d00200141a0016a24000c010b000b0c040b230041a0016b22012400200141186a200341086a290000370200200141206a200341106a290000370200200141286a200341186a2900003702002001200041d0006a36020c20012003290000370210200141e8006a200141106a101f02400240200128029001418080808078460d00200141306a2202200141e8006a2200413810081a2000101d200220001020450d00101c20012903505a0440200141306a10180b200141a0016a24000c010b000b0c030b230041d0006b22022400200041f8006a22014101722203101d101c22074280dddb017c22082007540440000b200241086a2205101d200241386a410036020020024280808080c000370330200220083703282003200510142002410036024c2002428080808010370244200241c4006a2003102220032002280248200228024c1016200241d0006a24001028200041003a0078230041106b22002400200041808001360208200041908204360204024020012d00000440419082044181023b0100410221010c010b4190820441003a00002000410136020c200141016a200041046a100d200028020c220141818001490d00000b0c030b000b410141011027000b1028410041001027000b410020011029000b940101017f230041106b2200240002400240101e41ff01714105470d0020004180800136020c419082042000410c6a1003200028020c2200418180014f0d00200041044f0440419082042d0000419b0147419182042d000041ae014772419282042d0000419d014772419382042d000041de004772450d020b410141011027000b000b10284190820441003b0100410041021029000b0bcb010200418080040b8801eb2c646f99629c7d01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041ca81040b33020202020202020202020202020202020202020202020202020202020202030303030303030303030303030303030404040404","build_info":{"build_mode":"Release","cargo_contract_version":"3.2.0","rust_toolchain":"stable-x86_64-unknown-linux-gnu","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"chatroom","version":"0.1.0","authors":["od41 <[your_email]>"]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":9},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":0},"balance":{"displayName":["Balance"],"type":19},"blockNumber":{"displayName":["BlockNumber"],"type":21},"chainExtension":{"displayName":["ChainExtension"],"type":22},"hash":{"displayName":["Hash"],"type":20},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":5}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":11},"messages":[{"args":[],"default":false,"docs":[],"label":"create_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x34968102"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_chatroom","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":13},"selector":"0xdb1c66f5"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"is_a_participant","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xbe5599da"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"invite","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x8d55fa39"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"message","type":{"displayName":["String"],"type":4}}],"default":false,"docs":[],"label":"send_message","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0xafdc403f"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_messages","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":18},"selector":"0xa9eb1c14"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"delete_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x53f64fda"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"timeout","type":{"displayName":["Timestamp"],"type":5}}],"default":false,"docs":[],"label":"set_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x7a9acd65"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"check_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":9},"selector":"0x40280ee8"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d9c6299","ty":0}},"name":"owner"},{"layout":{"leaf":{"key":"0x7d9c6299","ty":3}},"name":"messages"},{"layout":{"leaf":{"key":"0x7d9c6299","ty":5}},"name":"timeout"}],"name":"Room"}},"root_key":"0x7d9c6299"}},"name":"chatrooms"},{"layout":{"root":{"layout":{"leaf":{"key":"0x6f642ceb","ty":6}},"root_key":"0x6f642ceb"}},"name":"participants"},{"layout":{"root":{"layout":{"leaf":{"key":"0x2d625b4e","ty":7}},"root_key":"0x2d625b4e"}},"name":"messages"}],"name":"Chatroom"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":1,"type":{"def":{"array":{"len":32,"type":2}}}},{"id":2,"type":{"def":{"primitive":"u8"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"str"}}},{"id":5,"type":{"def":{"primitive":"u64"}}},{"id":6,"type":{"def":{"sequence":{"type":0}}}},{"id":7,"type":{"def":{"sequence":{"type":8}}}},{"id":8,"type":{"def":{"composite":{"fields":[{"name":"sender","type":0,"typeName":"AccountId"},{"name":"content","type":4,"typeName":"String"},{"name":"sent_timestamp","type":5,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Message"]}},{"id":9,"type":{"def":{"variant":{"variants":[{"fields":[{"type":10}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":10},{"name":"E","type":11}],"path":["Result"]}},{"id":10,"type":{"def":{"tuple":[]}}},{"id":11,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":11}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"fields":[{"type":14}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":14},{"name":"E","type":11}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":15,"type":{"def":{"composite":{"fields":[{"name":"owner","type":0,"typeName":"AccountId"},{"name":"messages","type":3,"typeName":"Vec"},{"name":"timeout","type":5,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Room"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":11}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":11}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":11}],"path":["Result"]}},{"id":19,"type":{"def":{"primitive":"u128"}}},{"id":20,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":21,"type":{"def":{"primitive":"u32"}}},{"id":22,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file +export const ContractAbi = `{"source":{"hash":"0x7190db7b8123fd07458afd55a9843488fe35ef32e6d6f42484d49af718b7151b","language":"ink! 4.3.0","compiler":"rustc 1.76.0","build_info":{"build_mode":"Release","cargo_contract_version":"3.2.0","rust_toolchain":"stable-x86_64-unknown-linux-gnu","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"chatroom","version":"0.1.0","authors":["od41 <[your_email]>"]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":0},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":20},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":3}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[],"label":"create_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x34968102"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_chatroom","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0xdb1c66f5"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"is_a_participant","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0xbe5599da"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"invite","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x8d55fa39"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"message","type":{"displayName":["String"],"type":7}}],"default":false,"docs":[],"label":"send_message","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0xafdc403f"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_messages","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0xa9eb1c14"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"delete_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x53f64fda"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"timeout","type":{"displayName":["Timestamp"],"type":3}}],"default":false,"docs":[],"label":"set_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x7a9acd65"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"check_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x40280ee8"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d9c6299","ty":0}},"name":"owner"},{"layout":{"leaf":{"key":"0x7d9c6299","ty":3}},"name":"timeout"}],"name":"Room"}},"root_key":"0x7d9c6299"}},"name":"chatrooms"},{"layout":{"root":{"layout":{"leaf":{"key":"0x6f642ceb","ty":4}},"root_key":"0x6f642ceb"}},"name":"participants"},{"layout":{"root":{"layout":{"leaf":{"key":"0x2d625b4e","ty":5}},"root_key":"0x2d625b4e"}},"name":"messages"}],"name":"Chatroom"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":1,"type":{"def":{"array":{"len":32,"type":2}}}},{"id":2,"type":{"def":{"primitive":"u8"}}},{"id":3,"type":{"def":{"primitive":"u64"}}},{"id":4,"type":{"def":{"sequence":{"type":0}}}},{"id":5,"type":{"def":{"sequence":{"type":6}}}},{"id":6,"type":{"def":{"composite":{"fields":[{"name":"sender","type":0,"typeName":"AccountId"},{"name":"content","type":7,"typeName":"String"},{"name":"sent_timestamp","type":3,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Message"]}},{"id":7,"type":{"def":{"primitive":"str"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"owner","type":0,"typeName":"AccountId"},{"name":"timeout","type":3,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Room"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":16}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":16},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"primitive":"bool"}}},{"id":17,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u32"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; +export const ContractFile = `{"source":{"hash":"0x7190db7b8123fd07458afd55a9843488fe35ef32e6d6f42484d49af718b7151b","language":"ink! 4.3.0","compiler":"rustc 1.76.0","wasm":"0x0061736d01000000013c0b60027f7f0060037f7f7f0060027f7f017f60037f7f7f017f60000060047f7f7f7f017f60017f0060047f7f7f7f0060027e7f006000017e6000017f02a50109057365616c310b6765745f73746f726167650005057365616c301176616c75655f7472616e736665727265640000057365616c30036e6f770000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c320b7365745f73746f726167650005057365616c310d636c6561725f73746f726167650002057365616c300b7365616c5f72657475726e000103656e76066d656d6f72790201021003282703000300000002000000000001010100060100000809060a0002030000010702000400040407010608017f01418080040b0711020463616c6c002b066465706c6f79002c0abd54272b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0bc30201067f230041106b22022400024020012802042206450440410121030c010b200128020022072d000021042001200641016b360204410121032001200741016a3602000240024002400240200441037141016b0e03020301000b20044102762105410021030c030b2006410549200441034b720d02200728000121052001200641056b3602042001200741056a36020020054180808080044921030c020b200241096a20043a0000200241013a000820022001360204200241003b010c200241046a2002410c6a4102100a0d0120022f010c220141ff014d0d0120014102762105410021030c010b200241096a20043a0000200241013a0008200220013602042002410036020c200241046a2002410c6a4104100a0d00200228020c220141027621052001418080044921030b2000200536020420002003360200200241106a24000b8e0101017f20002d00042103200041003a0004027f0240200304402001200041056a2d00003a00004101200028020022002802042203200241016b2202490d021a200141016a20002802002201200210081a0c010b41012000280200220028020422032002490d011a200120002802002201200210081a0b2000200320026b3602042000200120026a36020041000b0bb50502067f017e230041b0016b220224002002411c6a200141086a290000370200200241246a200141106a2900003702002002412c6a200141186a2900003702002002418080043602102002200129000037021420024280800137024c200241a8820436024841ceb689eb02200241c8006a2201100c200241146a2001100d0240200228024c220320022802502201490d00200228024821042002200320016b220336024820042001200120046a2201200241c8006a10002104200320022802482205490d002000027e0240024020040e0400030301030b2002200536023820022001360234200241086a200241346a100920022802080d020240200228023841386e2201200228020c220420012004491b2201450440410821030c010b20014192c9a4124b0d03200141386c22034100480d0341082003100e2203450d030b20024100360244200220033602402002200136023c200404400340200228023822034120490d0420024188016a22052002280234220141086a29000037030020024190016a2206200141106a29000037030020024198016a2207200141186a2900003703002002200341206b3602382002200141206a3602342002200129000037038001200241a4016a200241346a100f20022802a4012201418080808078460d042002280238220341074d0d0420022902a8012108200241d0006a2005290300370300200241d8006a2006290300370300200241e0006a200729030037030020022002290380013703482002200341086b36023820022002280234220341086a3602342002200837027420022001360270200220032900003703682002413c6a200241c8006a1010200441016b22040d000b200228023c220141808080807846200141818080807846720d030b20022902400c010b418080808078210142000b37020420002001360200200241b0016a24000f0b000b2601017f230041106b220224002002200036020c20012002410c6a41041019200241106a24000b0a0020012000412010190b100041a882052d00001a2000200110270be00501097f230041106b22062400200641086a200110090240024020062802080d00200628020c220220012802044b0d002006200241011025200128020422052002490d00200628020021082006280204200128020022032002100821042001200520026b3602042001200220036a3602002008418080808078460d0002402002450d00200241076b22014100200120024d1b2109200441036a417c7120046b210a4100210103400240024002400240024002400240024002400240200120046a2d00002205411874411875220741004804402005419f80046a2d000041026b0e03030102080b200a20016b410371450440200120094f0d090340200120046a220541046a280200200528020072418081828478710d0a2009200141086a22014b0d000b0c090b200141016a21010c090b200141016a220320024f0d06200320046a2c000021030240200541e001470440200541ed01460d012007411f6a41ff0171410c490d042007417e71416e470d0820034140480d050c080b200341607141a07f460d040c070b2003419f7f4a0d060c030b200141016a220320024f0d05200320046a2c000021030240024002400240200541f0016b0e050100000002000b2007410f6a41ff017141024b0d0820034140480d020c080b200341f0006a41ff01714130490d010c070b2003418f7f4a0d060b200141026a220520024f0d05200420056a2c000041bf7f4a0d05200141036a220120024f0d05200120046a2c000041bf7f4a0d050c040b200141016a22012002490d020c040b200341404e0d030b200141026a220120024f0d02200120046a2c000041bf7f4c0d010c020b200120046a2c000041bf7f4a0d010b200141016a21010c020b20004180808080783602000c050b200120024f0d000340200120046a2c00004100480d012002200141016a2201470d000b0c020b20012002490d000b0b2000200236020820002008ad2004ad422086843702000c010b20004180808080783602000b200641106a24000bfa0101057f200028020822022000280200460440230041206b2203240002400240200241016a2204450d00200028020022024100480d00410420024101742205200420042005491b2204200441044d1b220441386c210520044193c9a41249410374210602402002450440200341003602180c010b200341083602182003200241386c36021c200320002802043602140b200341086a20062005200341146a10262003280208450d01200328020c1a0b000b200328020c21022000200436020020002002360204200341206a2400200028020821020b2000280204200241386c6a2001413810081a200241016a22010440200020013602080f0b000ba30201047f230041406a22022400200241146a200141086a2900003702002002411c6a200141106a290000370200200241246a200141186a2900003702002002418880043602082002200129000037020c200242808001370238200241a8820436023441ebd990fb06200241346a2201100c2002410c6a2001100d024020022802382204200228023c2201490d00200228023421032002200420016b220436023420032001200120036a2201200241346a10002103200420022802342205490d002000027e0240024020030e0400030301030b200220053602302002200136022c200241346a2002412c6a101220022802342201418080808078460d0220022902380c010b418080808078210142000b37020420002001360200200241406b24000f0b000bc30201047f230041406a22022400200241086a20011009024002402002280208450440024020012802044105762203200228020c220420032004491b2203450440410121050c010b200341ffffff1f4b0d03200341057422054100480d0320034180808020492005100e2205450d030b2002410036021c20022005360218200220033602140240200404400340200128020422034120490d022001200341206b36020420012001280200220341206a360200200241286a200341086a290000370300200241306a200341106a290000370300200241386a200341186a29000037030020022003290000370320200241146a200241206a1023200441016b22040d000b0b20002002290214370200200041086a2002411c6a2802003602000c020b20004180808080783602000c010b20004180808080783602000b200241406b24000f0b000bdd0101047f230041206b22022400200242808001370218200241a8820436021441ebd990fb06200241146a2203100c20012003100d024020022802182204200228021c2201490d00200228021421032002200420016b220436021420032001200120036a2201200241146a10002103200420022802142205490d002000027e0240024020030e0400030301030b200220053602102002200136020c200241146a2002410c6a101220022802142201418080808078460d0220022902180c010b418080808078210142000b37020420002001360200200241206a24000f0b000be10101037f230041306b220324002003410c6a200041086a290000370200200341146a200041106a2900003702002003411c6a200041186a29000037020020034180800436020020032000290000370204200342808001370228200341a8820436022441ceb689eb02200341246a2200100c200341046a2000100d024020032802282205200328022c2200490d00200328022421042003410036022c2003200520006b3602282003200020046a36022420012002200341246a1015200328022c220120032802284b0d00200420002003280224200110051a200341306a24000f0b000b5a01027f200220011017200104402000200141386c6a2101034020002002100d2000412c6a28020021032002200041306a280200220410172002200320041019200041206a2903002002101c200041386a22002001470d000b0b0b870201037f230041306b220324002003410c6a200041086a290000370200200341146a200041106a2900003702002003411c6a200041186a29000037020020034188800436020020032000290000370204200342808001370228200341a8820436022441ebd990fb06200341246a2200100c200341046a2000100d024020032802282200200328022c2204490d00200328022421052003410036022c2003200020046b3602282003200420056a360224200341246a20021017200204402002410574210003402001200341246a100d200141206a2101200041206b22000d000b0b200328022c220020032802284b0d00200520042003280224200010051a200341306a24000f0b000b7401017f230041106b2202240002402001413f4d044020002001410274101b0c010b200141ffff004d0440200220014102744101723b010e20002002410e6a410210190c010b200141ffffffff034d044020014102744102722000100c0c010b20004103101b20012000100c0b200241106a24000b9c0101017f230041306b220124002001410c6a200041086a290000370200200141146a200041106a2900003702002001411c6a200041186a29000037020020014184800436020020012000290000370204200142808001370228200141a882043602244199c5f1ec07200141246a2200100c200141046a2000100d200128022c220020012802284b0440000b2001280224200010061a200141306a24000b4801027f024002402000280208220320026a22042003490d00200420002802044b0d00200420036b2002470d01200028020020036a2001200210081a200020043602080f0b000b000bf70101057f230041406a2202240002402001280204220541204f04402001200541206b220636020420012001280200220341206a2204360200200641204f04402001200541406a3602042001200341406b360200200241286a200441086a290000370300200241306a200441106a290000370300200241386a200441186a290000370300200241086a200341086a290000370300200241106a200341106a290000370300200241186a200341186a2900003703002002200429000037032020022003290000370300200041016a200241c00010081a200041003a00000c020b200041013a00000c010b200041013a00000b200241406b24000b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b2601017f230041106b22022400200220003703082001200241086a41081019200241106a24000b3602017f017e230041106b22002400200042003703002000410836020c20002000410c6a100220002903002101200041106a240020010b6d01017f230041106b2201240020014180800136020c41a882042001410c6a1004200041a98204290000370001200041096a41b18204290000370000200041116a41b98204290000370000200041186a41c08204290000370000200041a882042d00003a0000200141106a24000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10012000290308210120002903002102200041206a2400410541042001200284501b0bce0201047f230041306b220224002002410c6a200141086a290000370200200241146a200141106a2900003702002002411c6a200141186a29000037020020024184800436020020022001290000370204200242808001370228200241a882043602244199c5f1ec07200241246a2201100c200241046a2001100d2000027e0240024020022802282204200228022c2201490d00200228022421032002200420016b220436022420032001200120036a2201200241246a10002105200420022802242203490d00024020050e0400010102010b20034178714120462003412049720d00200041096a2001290001370000200041116a200141096a290000370000200041196a200141116a290000370000200041206a200141186a29000037000020012d00002103200041286a2001290020370300200020033a000842010c020b000b42000b370300200241306a24000b4601037f027f41202102034041002002450d011a200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b450b3501027f200141057421010340200122030440200341206b21012000200210212104200041206a21002004450d010b0b20034100470baa0201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d00200028020022034100480d00410420034101742205200420042005491b2204200441044d1b220441808080204921052004410574210602402003450440200241003602180c010b200241013602182002200341057436021c200220002802043602140b200241086a20052006200241146a10262002280208450d01200228020c1a0b000b200228020c21032000200436020020002003360204200241206a2400200028020821030b200028020420034105746a22022001290000370000200241086a200141086a290000370000200241106a200141106a290000370000200241186a200141186a290000370000200341016a22010440200020013602080f0b000b110020002001100d20002903202001101c0b6f01027f230041106b22032400024002402001450440410121020c010b200141004e2204450d01027f2002450440200341086a20042001102e20032802080c010b2003200420014101102d20032802000b2202450d010b2000200236020420002001360200200341106a24000f0b000bea0101037f230041106b220424002000027f024002402001044020024100480d01027f20032802040440200341086a2802002205450440200441086a200120024100102d20042802082103200428020c0c020b2003280200210602402001200210272203450440410021030c010b20032006200510081a0b20020c010b200420012002102e2004280200210320042802040b21052003044020002003360204200041086a200536020041000c040b20002001360204200041086a20023602000c020b20004100360204200041086a20023602000c010b200041003602040b41010b360200200441106a24000ba00101027f02402001200020016a41016b410020006b7122004d0440024041a08204280200220120006a22032001490d0041a482042802002003490440200041ffff036a22022000490d0320024110764000220141ffff034b0d032001411074220120024180807c716a22032001490d034100210241a482042003360200200020016a22032001490d010b41a082042003360200200121020b20020f0b000b41000b3c01027f027f200145044041a88204210141010c010b4101210241a8820441013a000041a98204210141020b2103200120023a000020002003102a000b5301037f230041106b22002400200042808001370208200041a882043602044100200041046a100c200028020c220120002802084b0440000b200028020422022001200120026a410010051a200041106a24000b0d00200041a8820420011007000b902302077f027e230041b0016b220024000240024002400240101f41ff01714105470d0020004180800136020841a88204200041086a100320002802082204418180014f0d0020044104490d01200041ac82043602502000200441046b220636025441ab82042d0000210141aa82042d0000210241a982042d00002103027f0240024002400240024002400240024041a882042d0000220541db01470440200541c000460d07200541d300460d05200541fa00460d062005418d01460d02200541a901460d04200541af01460d03200541be01460d01200541344720034196014772200241ff017141810147200141ff017141024772720d0b41000c090b2003411c47200241ff017141e6004772200141ff017141f501472006411f4d72720d0a20004188016a41b8820429020037030020004190016a41c0820429020037030020004198016a41c88204280200360200200041b082042902003703800141af82042d0000210341ad82042f0000210141ac82042d0000210241010c080b200341d50047200241ff01714199014772200141ff017141da0147720d09200041086a200041d0006a101a20002d00080d0920004188016a200041156a29000037030020004190016a2000411d6a29000037030020004197016a200041246a290000370000200041e0006a200041406b290000370300200041e8006a200041c8006a2d00003a000020002000410d6a290000370380012000200041386a2900003703582000410c6a2d000021032000410a6a2f000021012000412c6a2800002104200041306a290000210720002d0009210241020c070b200341d50047200241ff017141fa0147720d08200141ff01714139460d050c080b200341dc0147200241ff017141c0004772200141ff0171413f47200641204972720d07200041106a220541b58204290000370300200041186a220241bd82042900003703002000411f6a220141c48204290000370000200041cc82043602502000200441246b360254200041ad820429000037030841ac82042d00002103200041f4006a200041d0006a100f20002802742204418080808078460d0720004197016a200129000037000020004190016a200229030037030020004188016a200529030037030020002000290308370380012000290278210741040c050b200341eb0147200241ff0171411c4772200141ff0171411447200641204972720d0620004188016a41b8820429020037030020004190016a41c0820429020037030020004198016a41c88204280200360200200041cc82043602502000200441246b360254200041b082042902003703800141af82042d0000210341ad82042f0000210141ac82042d0000210241050c040b200341f60147200241ff017141cf004772200141ff017141da0147200641204972720d0520004188016a41b8820429020037030020004190016a41c0820429020037030020004198016a41c88204280200360200200041cc82043602502000200441246b360254200041b082042902003703800141af82042d0000210341ad82042f0000210141ac82042d0000210241060c030b2003419a0147200241ff017141cd014772200141ff017141e50047200641204972720d042004412c6b220541774b0d0441c882042802002104200041136a41b482042902003700002000411b6a41bc8204290200370000200041236a41c48204280200360000200041ac820429020037000b20004188016a200041106a29000037030020004190016a200041186a29000037030020004197016a2000411f6a290000370000200041d4820436025020002005360254200020002900083703800141cc8204290200210741070c020b2003412847200241ff0171410e4772200141ff017141e80147200641204972720d0320004188016a41b8820429020037030020004190016a41c0820429020037030020004198016a41c88204280200360200200041cc82043602502000200441246b360254200041b082042902003703800141af82042d0000210341ad82042f0000210141ac82042d0000210241080c010b200041086a200041d0006a101a20002d00080d0220004188016a200041156a29000037030020004190016a2000411d6a29000037030020004197016a200041246a290000370000200041e0006a200041406b290000370300200041e8006a200041c8006a2d00003a000020002000410d6a290000370380012000200041386a2900003703582000410c6a2d000021032000410a6a2f000021012000412c6a2800002104200041306a290000210720002d0009210241030b2105200041246a20004197016a2900003700002000411d6a20004190016a290300370000200041156a20004188016a290300370000200041406b200041e0006a290300370300200041c8006a200041e8006a290300370300200020002903800137000d200020002903583703382000200436022c20002007370330200020033a000c200020013b010a200020023a0009200020053a000820004280800137028401200041a8820436028001410020004180016a100c20002802840122032000280288012201490d0020002802800121022000200320016b22033602800120022001200120026a20004180016a1000200320002802800149720d00200041086a4101722102024002400240024002400240024002400240200541016b0e080001020304050607080b230041306b22032400200341186a200241086a290000370200200341206a200241106a290000370200200341286a200241186a2900003702002003200041d8006a36020c2003200229000037021020004180016a2201200341106a1020200341306a2400230041106b22002400200041808001360208200041a88204360204024041a98204027f20012903002207420252044041a8820441003a000041002007500d011a41a9820441013a00002000410236020c200141086a200041046a1024200028020c220141818001490d02000b41a8820441013a000041010b3a0000410221010b0c0b0b23004180016b220124002001200041d8006a36020c200141106a200241c00010082100200141e8006a200141c8006a290200370300200141e0006a200141406b290200370300200141d8006a200141386a2902003703002001200141306a290200370350200141f4006a200010114100210020012802744180808080784704402001280278200128027c200141d0006a102221000b20014180016a2400230041106b22012400200141a8820436020041a8820441003a00002001428080818010370204200120003a000f20012001410f6a4101101920012802082201418180014f0440000b0c0a0b230041b0016b220124002001200041d8006a360204200141f0006a200141086a200241c00010081020024002402001290370500d00200141c8006a2200200141f8006a412810081a200141f0006a2202101e200020021021450d00200141f0006a200141c8006a10112001280270418080808078460d00200141a8016a2200200141f8006a280200360200200120012902703703a001200141a0016a200141286a1023200141f0006a2202101e200220012802a40120002802001016200141b0016a24000c010b000b0c080b230041a0016b220124002001200041d8006a3602082001410c6a200041086a410472412c10082100200141386a101e200141e8006a20001013024002402001280268418080808078460d00200128026c2001280270200141386a1022450d00200141e8006a2000100b2001280268418080808078460d00200141e0006a2202200141f0006a22032802003602002001200129026837035820014180016a200141d0006a290000370300200141f8006a200141c8006a2900003703002003200141406b29000037030020012001290038370368101d210720014198016a200141346a280200360200200120073703880120012001412c6a29020037039001200141d8006a200141e8006a10102000200128025c20022802001014200141a0016a24000c010b000b0c070b20004180016a2101230041d0006b220324002003410c6a200241086a290000370200200341146a200241106a2900003702002003411c6a200241186a2900003702002003200041d8006a36020020032002290000370204200341246a101e200341c4006a200341046a22001013024002402003280244418080808078460d002003280248200328024c200341246a1022450d00200341c4006a2000100b2003280244418080808078460d0020012003290244370200200141086a200341cc006a280200360200200341d0006a24000c010b000b230041106b22002400200041808001360208200041a882043602040240200128020041808080807846044041a882044181023b0100410221010c010b2000410136020c41a8820441003a000020012802042001280208200041046a1015200028020c220141818001490d00000b0c070b23004180016b22012400200141106a200241086a290000370200200141186a200241106a290000370200200141206a200241186a2900003702002001200041d8006a36020420012002290000370208200141d0006a200141086a1020024002402001290350500d00200141286a2200200141d8006a412810081a200141d0006a2202101e200020021021450d00200141286a101820014180016a24000c010b000b0c050b23004180016b220124002001200041d8006a360200200141306a200141086a200041106a412810081020024002402001290330500d00200141f8006a200141d0006a290300370300200141f0006a200141c8006a290300370300200141e8006a200141406b29030037030020012001290338370360200141306a2200101e200141e0006a20001021450d0020014180016a24000c010b000b0c040b23004180016b22012400200141186a200241086a290000370200200141206a200241106a290000370200200141286a200241186a2900003702002001200041d8006a36020c20012002290000370210200141d0006a200141106a1020024002402001290350500d00200141c8006a200141f0006a290300370300200141406b200141e8006a290300370300200141386a200141e0006a29030037030020012001290358370330200141f8006a2903002107200141d0006a2200101e200141306a20001021450d00101d20075a0440200141306a10180b20014180016a24000c010b000b0c030b23004190016b2202240020004180016a22014101722203101e02400240101d22074280dddb017c22082007540d00200241106a101e20022008370330200241e4006a200341186a290000370200200241dc006a200341106a290000370200200241d4006a200341086a2900003702002002418480043602482002200329000037024c20024280800137028801200241a88204360284014199c5f1ec0720024184016a2204100c200241cc006a2004100d2002280288012206200228028c012204490d0020022802840121052002410036028c012002200620046b360288012002200420056a36028401200241106a20024184016a1024200228028c0122062002280288014b0d0020052004200228028401200610051a20024100360244200242808080801037023c2002413c6a2003102320032002280240200228024410162002410036028c0120024280808080800137028401200241086a41134100102520022802082105200228020c2204418c80042900003700002004410f6a419b8004280000360000200441086a41948004290000370000200241f8006a4113360200200241f4006a200436020020022005360270101d2107200241e0006a200341186a290000370300200241d8006a200341106a290000370300200241d0006a200341086a290000370300200220073703682002200329000037034820024184016a200241c8006a10102003200228028801200228028c01101420024190016a24000c010b000b1029200041003a008001230041106b22002400200041808001360208200041a88204360204024020012d0000044041a882044181023b0100410221010c010b41a8820441003a00002000410136020c200141016a200041046a100d200028020c220141818001490d00000b0c030b000b410141011028000b1029410041001028000b41002001102a000b940101017f230041106b2200240002400240101f41ff01714105470d0020004180800136020c41a882042000410c6a1003200028020c2200418180014f0d00200041044f044041a882042d0000419b014741a982042d000041ae01477241aa82042d0000419d01477241ab82042d000041de004772450d020b410141011028000b000b102941a8820441003b010041004102102a000b2b0020020440200345044041a882052d00001a0b20012002102721010b20002002360204200020013602000b3901017f230041106b22032400200341086a200120024100102d200328020c21012000200328020836020020002001360204200341106a24000b0be2010200418080040b9f014e5b622d99629c7deb2c646f57656c636f6d6520746f20776869737065722101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041e181040b33020202020202020202020202020202020202020202020202020202020202030303030303030303030303030303030404040404","build_info":{"build_mode":"Release","cargo_contract_version":"3.2.0","rust_toolchain":"stable-x86_64-unknown-linux-gnu","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"chatroom","version":"0.1.0","authors":["od41 <[your_email]>"]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":0},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":20},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":3}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[],"label":"create_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x34968102"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_chatroom","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0xdb1c66f5"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"is_a_participant","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0xbe5599da"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"participant","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"invite","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x8d55fa39"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"message","type":{"displayName":["String"],"type":7}}],"default":false,"docs":[],"label":"send_message","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0xafdc403f"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"get_messages","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0xa9eb1c14"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"delete_chatroom","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x53f64fda"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}},{"label":"timeout","type":{"displayName":["Timestamp"],"type":3}}],"default":false,"docs":[],"label":"set_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x7a9acd65"},{"args":[{"label":"chatroom_id","type":{"displayName":["AccountId"],"type":0}}],"default":false,"docs":[],"label":"check_timeout","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x40280ee8"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d9c6299","ty":0}},"name":"owner"},{"layout":{"leaf":{"key":"0x7d9c6299","ty":3}},"name":"timeout"}],"name":"Room"}},"root_key":"0x7d9c6299"}},"name":"chatrooms"},{"layout":{"root":{"layout":{"leaf":{"key":"0x6f642ceb","ty":4}},"root_key":"0x6f642ceb"}},"name":"participants"},{"layout":{"root":{"layout":{"leaf":{"key":"0x2d625b4e","ty":5}},"root_key":"0x2d625b4e"}},"name":"messages"}],"name":"Chatroom"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":1,"type":{"def":{"array":{"len":32,"type":2}}}},{"id":2,"type":{"def":{"primitive":"u8"}}},{"id":3,"type":{"def":{"primitive":"u64"}}},{"id":4,"type":{"def":{"sequence":{"type":0}}}},{"id":5,"type":{"def":{"sequence":{"type":6}}}},{"id":6,"type":{"def":{"composite":{"fields":[{"name":"sender","type":0,"typeName":"AccountId"},{"name":"content","type":7,"typeName":"String"},{"name":"sent_timestamp","type":3,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Message"]}},{"id":7,"type":{"def":{"primitive":"str"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":10}],"path":["Result"]}},{"id":9,"type":{"def":{"tuple":[]}}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":12,"type":{"def":{"variant":{"variants":[{"fields":[{"type":13}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":13},{"name":"E","type":10}],"path":["Result"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"owner","type":0,"typeName":"AccountId"},{"name":"timeout","type":3,"typeName":"Timestamp"}]}},"path":["chatroom","chatroom","Room"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":16}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":16},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"primitive":"bool"}}},{"id":17,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":10}],"path":["Result"]}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u32"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file diff --git a/contracts/typed-contracts/data/chatroom.json b/contracts/typed-contracts/data/chatroom.json index 6195a74..6127d37 100644 --- a/contracts/typed-contracts/data/chatroom.json +++ b/contracts/typed-contracts/data/chatroom.json @@ -1,3 +1,3 @@ { -"0": {"name":"AccountId","body":"string | number[]","isResult":false,"isPrimitive":true,"isConvertable":false},"1": {"name":"Array","body":{"0":{"name":"number","isResult":false,"isPrimitive":true,"isConvertable":false}},"isResult":false,"isPrimitive":false,"isConvertable":false},"2": {"name":"number","isResult":false,"isPrimitive":true,"isConvertable":false},"3": {"name":"Array","body":{"0":{"name":"string","isResult":false,"isPrimitive":true,"isConvertable":false}},"isResult":false,"isPrimitive":false,"isConvertable":false},"4": {"name":"string","isResult":false,"isPrimitive":true,"isConvertable":false},"5": {"name":"number","isResult":false,"isPrimitive":true,"isConvertable":false},"8": {"name":"Message","body":{"sender":{"name":"AccountId","body":"string | number[]","isResult":false,"isPrimitive":true,"isConvertable":false},"content":{"name":"string","isResult":false,"isPrimitive":true,"isConvertable":false},"sentTimestamp":{"name":"number","isResult":false,"isPrimitive":true,"isConvertable":false}},"isResult":false,"isPrimitive":false,"isConvertable":false},"9": {"name":"Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "getChatroom", [chatroomId], __options, (result) => { return handleReturnType(result, getTypeDescription(13, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "getChatroom", [chatroomId], __options, (result) => { return handleReturnType(result, getTypeDescription(12, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -75,7 +75,7 @@ export default class Methods { participantId: ArgumentTypes.AccountId, __options: GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "isAParticipant", [chatroomId, participantId], __options, (result) => { return handleReturnType(result, getTypeDescription(16, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "isAParticipant", [chatroomId, participantId], __options, (result) => { return handleReturnType(result, getTypeDescription(15, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -116,13 +116,13 @@ export default class Methods { * getMessages * * @param { ArgumentTypes.AccountId } chatroomId, - * @returns { Result, ReturnTypes.LangError> } + * @returns { Result, ReturnTypes.LangError> } */ "getMessages" ( chatroomId: ArgumentTypes.AccountId, __options: GasLimit, - ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "getMessages", [chatroomId], __options, (result) => { return handleReturnType(result, getTypeDescription(18, DATA_TYPE_DESCRIPTIONS)); }); + ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "getMessages", [chatroomId], __options, (result) => { return handleReturnType(result, getTypeDescription(17, DATA_TYPE_DESCRIPTIONS)); }); } /** diff --git a/contracts/typed-contracts/query/chatroom.ts b/contracts/typed-contracts/query/chatroom.ts index 22f1765..82bcb23 100644 --- a/contracts/typed-contracts/query/chatroom.ts +++ b/contracts/typed-contracts/query/chatroom.ts @@ -37,7 +37,7 @@ export default class Methods { "createChatroom" ( __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "createChatroom", [], __options , (result) => { return handleReturnType(result, getTypeDescription(12, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "createChatroom", [], __options , (result) => { return handleReturnType(result, getTypeDescription(11, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -50,7 +50,7 @@ export default class Methods { chatroomId: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "getChatroom", [chatroomId], __options , (result) => { return handleReturnType(result, getTypeDescription(13, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "getChatroom", [chatroomId], __options , (result) => { return handleReturnType(result, getTypeDescription(12, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -65,7 +65,7 @@ export default class Methods { participantId: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "isAParticipant", [chatroomId, participantId], __options , (result) => { return handleReturnType(result, getTypeDescription(16, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "isAParticipant", [chatroomId, participantId], __options , (result) => { return handleReturnType(result, getTypeDescription(15, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -80,7 +80,7 @@ export default class Methods { participant: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "invite", [chatroomId, participant], __options , (result) => { return handleReturnType(result, getTypeDescription(9, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "invite", [chatroomId, participant], __options , (result) => { return handleReturnType(result, getTypeDescription(8, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -95,20 +95,20 @@ export default class Methods { message: string, __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "sendMessage", [chatroomId, message], __options , (result) => { return handleReturnType(result, getTypeDescription(9, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "sendMessage", [chatroomId, message], __options , (result) => { return handleReturnType(result, getTypeDescription(8, DATA_TYPE_DESCRIPTIONS)); }); } /** * getMessages * * @param { ArgumentTypes.AccountId } chatroomId, - * @returns { Result, ReturnTypes.LangError> } + * @returns { Result, ReturnTypes.LangError> } */ "getMessages" ( chatroomId: ArgumentTypes.AccountId, __options ? : GasLimit, - ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "getMessages", [chatroomId], __options , (result) => { return handleReturnType(result, getTypeDescription(18, DATA_TYPE_DESCRIPTIONS)); }); + ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "getMessages", [chatroomId], __options , (result) => { return handleReturnType(result, getTypeDescription(17, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -121,7 +121,7 @@ export default class Methods { chatroomId: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "deleteChatroom", [chatroomId], __options , (result) => { return handleReturnType(result, getTypeDescription(9, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "deleteChatroom", [chatroomId], __options , (result) => { return handleReturnType(result, getTypeDescription(8, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -136,7 +136,7 @@ export default class Methods { timeout: (number | string | BN), __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "setTimeout", [chatroomId, timeout], __options , (result) => { return handleReturnType(result, getTypeDescription(9, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "setTimeout", [chatroomId, timeout], __options , (result) => { return handleReturnType(result, getTypeDescription(8, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -149,7 +149,7 @@ export default class Methods { chatroomId: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "checkTimeout", [chatroomId], __options , (result) => { return handleReturnType(result, getTypeDescription(9, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "checkTimeout", [chatroomId], __options , (result) => { return handleReturnType(result, getTypeDescription(8, DATA_TYPE_DESCRIPTIONS)); }); } } \ No newline at end of file diff --git a/contracts/typed-contracts/types-arguments/chatroom.ts b/contracts/typed-contracts/types-arguments/chatroom.ts index 0605fff..d1a232a 100644 --- a/contracts/typed-contracts/types-arguments/chatroom.ts +++ b/contracts/typed-contracts/types-arguments/chatroom.ts @@ -14,7 +14,6 @@ export enum LangError { export type Room = { owner: AccountId, - messages: Array, timeout: (number | string | BN) } diff --git a/contracts/typed-contracts/types-returns/chatroom.ts b/contracts/typed-contracts/types-returns/chatroom.ts index d94942f..3045a60 100644 --- a/contracts/typed-contracts/types-returns/chatroom.ts +++ b/contracts/typed-contracts/types-returns/chatroom.ts @@ -15,7 +15,6 @@ export enum LangError { export type Room = { owner: AccountId, - messages: Array, timeout: number } diff --git a/frontend/src/components/web3/chat-messages.tsx b/frontend/src/components/web3/chat-messages.tsx index 66bfe36..38fdeef 100644 --- a/frontend/src/components/web3/chat-messages.tsx +++ b/frontend/src/components/web3/chat-messages.tsx @@ -14,7 +14,6 @@ import { Message } from './message' import { SendMessage } from './send-message' export const ChatMessages: FC = () => { - const { activeChain } = useInkathon() const { isChatroomLoading, isChatroomActive, messages, chatroomId, isMessagesLoading } = useContext(AppContext) diff --git a/frontend/src/components/web3/message.tsx b/frontend/src/components/web3/message.tsx index 7857d18..48f0108 100644 --- a/frontend/src/components/web3/message.tsx +++ b/frontend/src/components/web3/message.tsx @@ -9,9 +9,8 @@ export const Message = ({ message }: { message: MessageProps }) => { return ( <>
- {/* @ts-expect-error the data isn't in an object */} -
{message}
- {sender &&
{sender}
} +
{content}
+ {sender &&
@{sender.slice(0, 5)}
}
) diff --git a/frontend/src/context/app-context.tsx b/frontend/src/context/app-context.tsx index c13aeff..c3b50a0 100644 --- a/frontend/src/context/app-context.tsx +++ b/frontend/src/context/app-context.tsx @@ -60,7 +60,7 @@ export function AppProvider({ children }: { children: React.ReactNode }) { // web3 state const { api, activeAccount, activeSigner } = useInkathon() - const { contract, address: contractAddress } = useRegisteredContract(ContractIds.Chatroom) + const { contract } = useRegisteredContract(ContractIds.Chatroom) // set app as loaded useEffect(() => { @@ -70,10 +70,9 @@ export function AppProvider({ children }: { children: React.ReactNode }) { const room = await queryChatroom(activeAccount.address) // check if room object is not empty if (!(Object.keys(room).length === 0 && room.constructor === Object)) { - console.log('room', room) setIsChatroomActive(true) setChatroomId(activeAccount.address) - setMessages(room.messages) + await getMessages(activeAccount.address) } else { // you haven't created a chatroom, so join one if you've been invited setIsChatroomActive(false) @@ -101,7 +100,6 @@ export function AppProvider({ children }: { children: React.ReactNode }) { ]) const { output, isError, decodedOutput } = decodeOutput(result, contract, 'getChatroom') if (isError) throw new Error(decodedOutput) - console.log('out', output, decodedOutput) if (!(Object.keys(output).length === 0 && output.constructor === Object)) { // TODO change contract to output None and check for null here return output @@ -112,46 +110,8 @@ export function AppProvider({ children }: { children: React.ReactNode }) { } return {} } - - // fetch chatroom - const fetchChatroom = async () => { - if (!activeAccount || !contract || !activeSigner || !api) { - toast.error('Wallet not connected. Try again… chatroom') - return - } - - setIsChatroomLoading(true) - - try { - console.log('chatroomId in fetchchatroom', chatroomId) - const result = await contractQuery(api, activeAccount.address, contract, 'getChatroom', {}, [ - chatroomId, - ]) - const { output, isError, decodedOutput } = decodeOutput(result, contract, 'getChatroom') - if (isError) throw new Error(decodedOutput) - console.log('in fetchChatroom. output:', output) - if (!(Object.keys(output).length === 0 && output.constructor === Object)) { - // TODO change contract to output None and check for null here - setIsChatroomActive(true) - getMessages() - } - } catch (e) { - console.error(e) - toast.error('Error while loading chatroom. Try again…') - setIsChatroomLoading(false) - } finally { - setIsChatroomLoading(false) - } - } - - // useEffect(() => { - // if (chatroomId) { - // fetchChatroom() - // } - // }, [isAppLoading]) - // Fetch messages - const getMessages = async () => { + const getMessages = async (_chatroomId: string) => { if (!activeAccount || !contract || !activeSigner || !api) { toast.error('Wallet not connected. Try again… mesasges') return @@ -161,11 +121,10 @@ export function AppProvider({ children }: { children: React.ReactNode }) { try { const result = await contractQuery(api, activeAccount.address, contract, 'getMessages', {}, [ - chatroomId, + _chatroomId, ]) const { output, isError, decodedOutput } = decodeOutput(result, contract, 'getMessages') if (isError) throw new Error(decodedOutput) - console.log('messages: ', output) setMessages(output) } catch (e) { console.error(e) @@ -177,7 +136,7 @@ export function AppProvider({ children }: { children: React.ReactNode }) { } async function refreshMessages() { - await getMessages() + // await getMessages(chatroomId) } // send a message @@ -192,7 +151,7 @@ export function AppProvider({ children }: { children: React.ReactNode }) { chatroomId, newMessage, ]) - await getMessages() + await getMessages(chatroomId!) } catch (e) { console.error(e) } finally { @@ -211,13 +170,11 @@ export function AppProvider({ children }: { children: React.ReactNode }) { //set chatroomid to the caller of the create function setChatroomId(activeAccount.address) //fetch messages - await getMessages() + await getMessages(activeAccount.address) //set active chat to true setIsChatroomActive(true) } catch (e) { console.error(e) - } finally { - // fetchMessages() } } @@ -235,8 +192,6 @@ export function AppProvider({ children }: { children: React.ReactNode }) { ]) } catch (e) { console.error(e) - } finally { - // fetchMessages() } } @@ -246,9 +201,6 @@ export function AppProvider({ children }: { children: React.ReactNode }) { return } - // TODO include check that caller must be owner - console.log('invite', chatroomId, participants[0]) - try { await contractTxWithToast(api, activeAccount.address, contract, 'invite', {}, [ chatroomId, @@ -256,8 +208,6 @@ export function AppProvider({ children }: { children: React.ReactNode }) { ]) } catch (e) { console.error(e) - } finally { - // fetchMessages() } } @@ -270,12 +220,35 @@ export function AppProvider({ children }: { children: React.ReactNode }) { return } - //check if you've been invited + //check if you've been invited to the chatroom + try { + const result = await contractQuery( + api, + activeAccount.address, + contract, + 'isAParticipant', + {}, + [joinChatroomId, activeAccount.address], + ) + const { output, isError, decodedOutput } = decodeOutput(result, contract, 'isAParticipant') + if (isError) { + toast.error('Something went wrong') + throw new Error(decodedOutput) + } + if (!output) { + toast.error("You haven't been invited to this chatroom") + setIsChatroomLoading(false) + setIsMessagesLoading(false) + return + } + } catch (e) { + console.error(e) + toast.error("Error we couldn't verify your invitation. Try again…") + } const room = await queryChatroom(joinChatroomId) // check if room object is not empty if (!(Object.keys(room).length === 0 && room.constructor === Object)) { - console.log('room', room) setIsChatroomActive(true) setChatroomId(joinChatroomId) setMessages(room.messages)