tx · 6JS4FoujrrwzN2ajHzTFBb23TLugrwkEsZYNwrDTUaVL 3Mxk4Jmjd8SdE2MojSXsUQ8LVYM8vRzmFSA: -0.10000000 Waves 2020.12.21 18:51 [1318656] smart account 3Mxk4Jmjd8SdE2MojSXsUQ8LVYM8vRzmFSA > SELF 0.00000000 Waves
{ "type": 13, "id": "6JS4FoujrrwzN2ajHzTFBb23TLugrwkEsZYNwrDTUaVL", "fee": 10000000, "feeAssetId": null, "timestamp": 1608565948085, "version": 2, "chainId": 84, "sender": "3Mxk4Jmjd8SdE2MojSXsUQ8LVYM8vRzmFSA", "senderPublicKey": "4xMxUnfdbHYsent96ThiYC63gXHiahi6bh3urdHHntHi", "proofs": [ "cJuTJYEdiwLEs9yZUvdF8KPwo4k5Tqc6dhGTezXM2Zi6G7WE2rmQ1nNUWSc1A3RFWPWiAgQScuEzk3A2Qy8z1qK" ], "script": "base64:AAIDAAAAAAAAADUIARIECgIICBIDCgEIEgQKAggBEgMKAQgSBQoDCAgIEgUKAwgIARIDCgEIEgMKAQgSAwoBCAAAAAoAAAAADG1haW5Db250cmFjdAkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABAgAAACMzTXdSemkyQm1xWlpYV3JDR0N3Y1JRTHNuaWMyQW9kNnpoUwAAAAAGUVVPUlVNAAAAAAAAAAABAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgAAAAAAAAAAAAUAAAADdmFsAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAAFAAAAA3ZhbAEAAAAHaXNPd25lcgAAAAEAAAAHYWRkcmVzcwkAAAAAAAACBQAAAAdhZGRyZXNzBQAAAAR0aGlzAQAAAAhnZXRHcm91cAAAAAAEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAxtYWluQ29udHJhY3QCAAAAFXdvcmtpbmdfZ3JvdXBfbWVtYmVycwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAAFAAAAA3ZhbAEAAAAKZ2V0TWVtYmVycwAAAAAEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAxtYWluQ29udHJhY3QCAAAAC2Rhb19tZW1iZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAUAAAADdmFsAQAAAApnZXREQU9TaXplAAAAAAQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAADG1haW5Db250cmFjdAIAAAAIZGFvX3NpemUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgAAAAAAAAAAAAUAAAADdmFsAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQAAAAFhBAAAAAN2YWwEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAMbWFpbkNvbnRyYWN0CQABLAAAAAIJAAEsAAAAAgIAAAAVd29ya2luZ19ncm91cF9tZW1iZXJfCQAEJQAAAAEFAAAAAWECAAAAB193ZWlnaHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgAAAAAAAAAAAAkAAGYAAAACBQAAAAN2YWwAAAAAAAAAAAABAAAADWNhbk1lbWJlclZvdGUAAAABAAAAAWkEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAxtYWluQ29udHJhY3QJAAEsAAAAAgkAASwAAAACAgAAAAtkYW9fbWVtYmVyXwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAB193ZWlnaHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgAAAAAAAAAAAAkAAGYAAAACBQAAAAN2YWwAAAAAAAAAAAAAAAAJAAAAAWkBAAAAB2FkZFRhc2sAAAACAAAABXRpdGxlAAAABGxpbmsDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQCAAAABl90aXRsZQUAAAAFdGl0bGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18JAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAIAAAAFX2xpbmsFAAAABGxpbmsFAAAAA25pbAAAAAFpAQAAAA5hZGRUYXNrRGV0YWlscwAAAAEAAAAGdGFza0lkAwkBAAAAASEAAAABCQEAAAANaXNHcm91cE1lbWJlcgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAACBncmFudHMgd29ya2luZyBncm91cCBhY2Nlc3Mgb25seQQAAAAGcmV3YXJkCAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AAAABmFtb3VudAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfcmV3YXJkBQAAAAZyZXdhcmQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAHX3N0YXR1cwIAAAAIcHJvcG9zZWQFAAAAA25pbAAAAAFpAQAAABN2b3RlRm9yVGFza1Byb3Bvc2FsAAAAAgAAAAZ0YXNrSWQAAAAJdm90ZVZhbHVlAwkBAAAAASEAAAABCQEAAAANY2FuTWVtYmVyVm90ZQAAAAEFAAAAAWkJAAACAAAAAQIAAAAOeW91IGNhbid0IHZvdGUDCQEAAAACIT0AAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAAB19zdGF0dXMCAAAACHByb3Bvc2VkCQAAAgAAAAECAAAAH3ZvdGluZyBpcyBjbG9zZWQgb3Igbm90IHN0YXJ0ZWQDAwkBAAAAAiE9AAAAAgUAAAAJdm90ZVZhbHVlAP//////////CQEAAAACIT0AAAACBQAAAAl2b3RlVmFsdWUAAAAAAAAAAAEHCQAAAgAAAAECAAAAGHlvdSBuZWVkIHRvIHZvdGUgMSBvciAtMQQAAAAHdm90ZUtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAAB192b3RlZF8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAxwcmV2aW91c1ZvdGUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAHdm90ZUtleQMJAQAAAAEhAAAAAQkAAAAAAAACBQAAAAxwcmV2aW91c1ZvdGUAAAAAAAAAAAAJAAACAAAAAQIAAAAWeW91IGhhdmUgYWxyZWFkeSB2b3RlZAQAAAAJdm90aW5nS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAADV92b3Rpbmdfc3RhdGUEAAAAC3ZvdGluZ1N0YXRlCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAACXZvdGluZ0tleQQAAAAOdm90ZXNBbW91bnRLZXkJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAOX3ZvdGluZ19hbW91bnQEAAAAEHZvdGVzQW1vdW50U3RhdGUJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABBQAAAAl2b3RpbmdLZXkAAAAAAAAAAAEEAAAADm5ld1ZvdGluZ1N0YXRlCQAAZAAAAAIFAAAAC3ZvdGluZ1N0YXRlBQAAAAl2b3RlVmFsdWUJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAl2b3RpbmdLZXkFAAAADm5ld1ZvdGluZ1N0YXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAd2b3RlS2V5BQAAAAl2b3RlVmFsdWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADnZvdGVzQW1vdW50S2V5BQAAABB2b3Rlc0Ftb3VudFN0YXRlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAB6EgBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAYZmluaXNoVGFza1Byb3Bvc2FsVm90aW5nAAAAAQAAAAZ0YXNrSWQDCQAAZgAAAAIFAAAABlFVT1JVTQkAAGkAAAACCQAAaAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAA5fdm90aW5nX2Ftb3VudAAAAAAAAAAAZAkBAAAACmdldERBT1NpemUAAAAACQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAptb3JlIHRoYW4gCQABpAAAAAEFAAAABlFVT1JVTQIAAAAyJSBtZW1iZXJzIGhhdmUgdG8gdm90ZSBiZWZvcmUgZmluaXNoaW5nIHRoZSB2b3RpbmcDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5BAAAAAl2b3RpbmdLZXkJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAANX3ZvdGluZ19zdGF0ZQQAAAALdm90aW5nU3RhdGUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAJdm90aW5nS2V5AwkAAGYAAAACBQAAAAt2b3RpbmdTdGF0ZQAAAAAAAAAAAAQAAAAMdm90aW5nUmVzdWx0AgAAAA5yZWFkeV90b19hcHBseQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzBQAAAAx2b3RpbmdSZXN1bHQFAAAAA25pbAQAAAAMdm90aW5nUmVzdWx0AgAAAAhyZWplY3RlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzBQAAAAx2b3RpbmdSZXN1bHQFAAAAA25pbAAAAAFpAQAAAAxhcHBseUZvclRhc2sAAAADAAAABnRhc2tJZAAAAAh0ZWFtTmFtZQAAAARsaW5rBAAAAAZzdGF0dXMJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAAB19zdGF0dXMDCQEAAAACIT0AAAACBQAAAAZzdGF0dXMCAAAADnJlYWR5X3RvX2FwcGx5CQAAAgAAAAECAAAAJFRoaXMgZ3JhbnQgaGFzIG5vdCB5ZXQgYmVlbiBhcHByb3ZlZAQAAAAHbGlzdEtleQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAtfYXBwbGljYW50cwQAAAAVY3VycmVudEFwcGxpY2FudHNMaXN0CQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQUAAAAHbGlzdEtleQQAAAAMYXBwbGljYW50S2V5CQABMAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAAKBAAAABFuZXdBcHBsaWNhbnRzTGlzdAkAASwAAAACCQABLAAAAAIFAAAAFWN1cnJlbnRBcHBsaWNhbnRzTGlzdAIAAAABOwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAAxhcHBsaWNhbnRLZXkCAAAABV9uYW1lBQAAAAh0ZWFtTmFtZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADGFwcGxpY2FudEtleQIAAAAFX2xpbmsFAAAABGxpbmsJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAAxhcHBsaWNhbnRLZXkCAAAAB19sZWFkZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAMYXBwbGljYW50S2V5AgAAAANfaWQFAAAADGFwcGxpY2FudEtleQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAHbGlzdEtleQUAAAARbmV3QXBwbGljYW50c0xpc3QFAAAAA25pbAAAAAFpAQAAABB2b3RlRm9yQXBwbGljYW50AAAAAwAAAAZ0YXNrSWQAAAAOdGVhbUlkZW50aWZpZXIAAAAJdm90ZVZhbHVlAwkBAAAAASEAAAABCQEAAAANY2FuTWVtYmVyVm90ZQAAAAEFAAAAAWkJAAACAAAAAQIAAAAOeW91IGNhbid0IHZvdGUEAAAACHZvdGVIYXNoCQABLAAAAAIJAAEwAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIAAAAAAAAAAAoJAAEwAAAAAgUAAAAOdGVhbUlkZW50aWZpZXIAAAAAAAAAAAoEAAAAB3ZvdGVLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAZfdm90ZV8FAAAACHZvdGVIYXNoBAAAAAR2b3RlCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAB3ZvdGVLZXkDCQEAAAACIT0AAAACBQAAAAR2b3RlAAAAAAAAAAAACQAAAgAAAAECAAAAI3lvdSBoYXZlIGFscmVhZHkgdm90ZWQgb24gdGhpcyB0ZWFtBAAAABJ0ZWFtVm90ZXNBbW91bnRLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAA50ZWFtSWRlbnRpZmllcgIAAAAGX3ZvdGVzBAAAAAx0ZWFtU2NvcmVLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAA50ZWFtSWRlbnRpZmllcgIAAAAGX3Njb3JlBAAAAA90ZWFtVm90ZXNBbW91bnQJAABkAAAAAgAAAAAAAAAAAQkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABJ0ZWFtVm90ZXNBbW91bnRLZXkEAAAADG5ld1RlYW1TY29yZQkAAGQAAAACBQAAAAl2b3RlVmFsdWUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAMdGVhbVNjb3JlS2V5CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAd2b3RlS2V5BQAAAAl2b3RlVmFsdWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADHRlYW1TY29yZUtleQUAAAAMbmV3VGVhbVNjb3JlBQAAAANuaWwAAAABaQEAAAAWZmluaXNoQXBwbGljYW50c1ZvdGluZwAAAAEAAAAGdGFza0lkCgEAAAAWaXNBcHBsaWNhbnRWb3RlZEVub3VnaAAAAAIAAAADYWlkAAAABGFpZDIEAAAAB2xpc3RLZXkJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAALX2FwcGxpY2FudHMEAAAADmFwcGxpY2FudHNMaXN0CQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAB2xpc3RLZXkCAAAAATsEAAAADnRlYW1JZGVudGlmaWVyCQABkQAAAAIFAAAADmFwcGxpY2FudHNMaXN0BQAAAANhaWQEAAAAEnRlYW1Wb3Rlc0Ftb3VudEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAZfdm90ZXMEAAAAD3RlYW1Wb3Rlc0Ftb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABJ0ZWFtVm90ZXNBbW91bnRLZXkDCQAAZgAAAAIFAAAAD3RlYW1Wb3Rlc0Ftb3VudAAAAAAAAAAAAAAAAAAAAAAAAQkAAAIAAAABCQABLAAAAAICAAAAJW5vdCBlbm91Z2ggdm90ZXMgdG8gbWFrZSBkZWNpc2lvbiBvbiAFAAAADnRlYW1JZGVudGlmaWVyCgEAAAAMaGFzTW9yZVZvdGVzAAAAAgAAAANhaWQAAAAEYWlkMgQAAAAHbGlzdEtleQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAtfYXBwbGljYW50cwQAAAAOYXBwbGljYW50c0xpc3QJAAS1AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAHbGlzdEtleQIAAAABOwQAAAAOdGVhbUlkZW50aWZpZXIJAAGRAAAAAgUAAAAOYXBwbGljYW50c0xpc3QFAAAAA2FpZAQAAAASdGVhbVZvdGVzQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAOdGVhbUlkZW50aWZpZXICAAAABl92b3RlcwQAAAAPdGVhbVZvdGVzQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAEnRlYW1Wb3Rlc0Ftb3VudEtleQQAAAAPdGVhbTJJZGVudGlmaWVyCQABkQAAAAIFAAAADmFwcGxpY2FudHNMaXN0BQAAAARhaWQyBAAAABN0ZWFtMlZvdGVzQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAPdGVhbTJJZGVudGlmaWVyAgAAAAZfdm90ZXMEAAAAEHRlYW0yVm90ZXNBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAATdGVhbTJWb3Rlc0Ftb3VudEtleQMJAABmAAAAAgUAAAAPdGVhbVZvdGVzQW1vdW50BQAAABB0ZWFtMlZvdGVzQW1vdW50BQAAAANhaWQFAAAABGFpZDIDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5BAAAAAhsaXN0S2V5cwkBAAAADHRyeUdldFN0cmluZwAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAALX2FwcGxpY2FudHMEAAAADmFwcGxpY2FudHNMaXN0CQAEtQAAAAIFAAAACGxpc3RLZXlzAgAAAAE7AwkAAAAAAAACCQABkAAAAAEFAAAADmFwcGxpY2FudHNMaXN0AAAAAAAAAAAACQAAAgAAAAECAAAAJU5vIG9uZSBoYXMgeWV0IHJlc3BvbmRlZCB0byB0aGUgZ3JhbnQEAAAADGNob3NlblRlYW1JZAQAAAANJGxpc3Q5NTAwOTUzMQkABEwAAAACAAAAAAAAAAAACQAETAAAAAIAAAAAAAAAAAEFAAAAA25pbAQAAAANJHNpemU5NTAwOTUzMQkAAZAAAAABBQAAAA0kbGlzdDk1MDA5NTMxBAAAAA0kYWNjMDk1MDA5NTMxAAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTk1MDA5NTMxAAAAAAAAAAAABQAAAA0kYWNjMDk1MDA5NTMxBAAAAA0kYWNjMTk1MDA5NTMxCQEAAAAMaGFzTW9yZVZvdGVzAAAAAgUAAAANJGFjYzA5NTAwOTUzMQkAAZEAAAACBQAAAA0kbGlzdDk1MDA5NTMxAAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTk1MDA5NTMxAAAAAAAAAAABBQAAAA0kYWNjMTk1MDA5NTMxBAAAAA0kYWNjMjk1MDA5NTMxCQEAAAAMaGFzTW9yZVZvdGVzAAAAAgUAAAANJGFjYzE5NTAwOTUzMQkAAZEAAAACBQAAAA0kbGlzdDk1MDA5NTMxAAAAAAAAAAABAwkAAAAAAAACBQAAAA0kc2l6ZTk1MDA5NTMxAAAAAAAAAAACBQAAAA0kYWNjMjk1MDA5NTMxBAAAAA0kYWNjMzk1MDA5NTMxCQEAAAAMaGFzTW9yZVZvdGVzAAAAAgUAAAANJGFjYzI5NTAwOTUzMQkAAZEAAAACBQAAAA0kbGlzdDk1MDA5NTMxAAAAAAAAAAACCQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgMgQAAAAOdGVhbUlkZW50aWZpZXIJAAGRAAAAAgUAAAAOYXBwbGljYW50c0xpc3QFAAAADGNob3NlblRlYW1JZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzAgAAAAt0ZWFtX2Nob3NlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAApfcGVyZm9ybWVyBQAAAA50ZWFtSWRlbnRpZmllcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAhfcHJvY2VzcwIAAAAJY2FuX2JlZ2luBQAAAANuaWwAAAABaQEAAAAJc3RhcnRXb3JrAAAAAQAAAAZ0YXNrSWQEAAAADnRlYW1JZGVudGlmaWVyCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAACl9wZXJmb3JtZXIDCQEAAAACIT0AAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAdfbGVhZGVyCQAAAgAAAAECAAAAEHRlYW0gbGVhZGVyIG9ubHkJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAHX3N0YXR1cwIAAAAMd29ya19zdGFydGVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAOdGVhbUlkZW50aWZpZXICAAAACF9wcm9jZXNzAgAAAAx3b3JrX3N0YXJ0ZWQFAAAAA25pbAAAAAFpAQAAABBhY2NlcHRXb3JrUmVzdWx0AAAAAQAAAAZ0YXNrSWQDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5BAAAAAxyZXdhcmRBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfcmV3YXJkBAAAAA50ZWFtSWRlbnRpZmllcgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAApfcGVyZm9ybWVyBAAAAAt0ZWFtQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAdfbGVhZGVyCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzAgAAAA13b3JrX2ZpbmlzaGVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAOdGVhbUlkZW50aWZpZXICAAAACF9wcm9jZXNzAgAAAA13b3JrX2ZpbmlzaGVkBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAt0ZWFtQWRkcmVzcwUAAAAMcmV3YXJkQW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAAAGjF1+A==", "height": 1318656, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2uKUfyoqkjweyUW34JYAvCCegMypX2bQAyvrLThbYgF3 Next: HkCL8mHt1CDtPsYzRroxvjCfdQ3reRB89WQJHbvg9cJL Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = | |
4 | + | let a = addressFromStringValue("3MwRzi2BmqZZXWrCGCwcRQLsnic2Aod6zhS") | |
5 | 5 | ||
6 | - | func b (c) = { | |
7 | - | let d = { | |
8 | - | let e = getInteger(this, c) | |
9 | - | if ($isInstanceOf(e, "Int")) | |
6 | + | let b = 1 | |
7 | + | ||
8 | + | func c (d) = { | |
9 | + | let e = { | |
10 | + | let f = getInteger(this, d) | |
11 | + | if ($isInstanceOf(f, "Int")) | |
10 | 12 | then { | |
11 | - | let | |
12 | - | | |
13 | + | let g = f | |
14 | + | g | |
13 | 15 | } | |
14 | 16 | else 0 | |
15 | 17 | } | |
16 | - | | |
18 | + | e | |
17 | 19 | } | |
18 | 20 | ||
19 | 21 | ||
20 | - | func | |
21 | - | let | |
22 | - | let | |
23 | - | if ($isInstanceOf( | |
22 | + | func h (d) = { | |
23 | + | let e = { | |
24 | + | let f = getString(this, d) | |
25 | + | if ($isInstanceOf(f, "String")) | |
24 | 26 | then { | |
25 | - | let | |
26 | - | | |
27 | + | let g = f | |
28 | + | g | |
27 | 29 | } | |
28 | 30 | else "" | |
29 | 31 | } | |
30 | - | | |
32 | + | e | |
31 | 33 | } | |
32 | 34 | ||
33 | 35 | ||
34 | - | func | |
36 | + | func i (j) = (j == this) | |
35 | 37 | ||
36 | 38 | ||
37 | - | func | |
38 | - | let | |
39 | - | let | |
40 | - | if ($isInstanceOf( | |
39 | + | func k () = { | |
40 | + | let e = { | |
41 | + | let f = getString(a, "working_group_members") | |
42 | + | if ($isInstanceOf(f, "String")) | |
41 | 43 | then { | |
42 | - | let | |
43 | - | | |
44 | + | let g = f | |
45 | + | g | |
44 | 46 | } | |
45 | 47 | else "" | |
46 | 48 | } | |
47 | - | | |
49 | + | e | |
48 | 50 | } | |
49 | 51 | ||
50 | 52 | ||
51 | - | func | |
52 | - | let | |
53 | - | let | |
54 | - | if ($isInstanceOf( | |
53 | + | func l () = { | |
54 | + | let e = { | |
55 | + | let f = getString(a, "dao_members") | |
56 | + | if ($isInstanceOf(f, "String")) | |
55 | 57 | then { | |
56 | - | let | |
57 | - | | |
58 | + | let g = f | |
59 | + | g | |
58 | 60 | } | |
59 | 61 | else "" | |
60 | 62 | } | |
61 | - | | |
63 | + | e | |
62 | 64 | } | |
63 | 65 | ||
64 | 66 | ||
65 | - | func l (m) = (b((("working_group_member_" + toString(m)) + "_weight")) > 0) | |
67 | + | func m () = { | |
68 | + | let e = { | |
69 | + | let f = getInteger(a, "dao_size") | |
70 | + | if ($isInstanceOf(f, "Int")) | |
71 | + | then { | |
72 | + | let g = f | |
73 | + | g | |
74 | + | } | |
75 | + | else 0 | |
76 | + | } | |
77 | + | e | |
78 | + | } | |
66 | 79 | ||
67 | 80 | ||
68 | - | func n (o) = (b((("dao_member_" + toString(o.caller)) + "_weight")) > 0) | |
81 | + | func n (o) = { | |
82 | + | let e = { | |
83 | + | let f = getInteger(a, (("working_group_member_" + toString(o)) + "_weight")) | |
84 | + | if ($isInstanceOf(f, "Int")) | |
85 | + | then { | |
86 | + | let g = f | |
87 | + | g | |
88 | + | } | |
89 | + | else 0 | |
90 | + | } | |
91 | + | (e > 0) | |
92 | + | } | |
69 | 93 | ||
70 | 94 | ||
71 | - | @Callable(o) | |
72 | - | func addDAOMember (p) = if (!(h(o.caller))) | |
73 | - | then throw("access only to the DAO owner") | |
74 | - | else if ((b((("dao_member_" + p) + "_weight")) == 1)) | |
75 | - | then throw("This user already exists") | |
76 | - | else { | |
77 | - | let q = k() | |
78 | - | let r = ((q + ";") + p) | |
79 | - | let s = b("dao_size") | |
80 | - | let t = (s + 1) | |
81 | - | WriteSet([DataEntry("dao_members", r), DataEntry("dao_size", t), DataEntry((("dao_member_" + p) + "_weight"), 1)]) | |
82 | - | } | |
95 | + | func p (q) = { | |
96 | + | let e = { | |
97 | + | let f = getInteger(a, (("dao_member_" + toString(q.caller)) + "_weight")) | |
98 | + | if ($isInstanceOf(f, "Int")) | |
99 | + | then { | |
100 | + | let g = f | |
101 | + | g | |
102 | + | } | |
103 | + | else 0 | |
104 | + | } | |
105 | + | (e > 0) | |
106 | + | } | |
107 | + | ||
108 | + | ||
109 | + | @Callable(q) | |
110 | + | func addTask (r,s) = if (!(n(q.caller))) | |
111 | + | then throw("grants working group access only") | |
112 | + | else WriteSet([DataEntry((("tasks_" + toBase58String(q.transactionId)) + "_title"), r), DataEntry((("tasks_" + toBase58String(q.transactionId)) + "_link"), s)]) | |
83 | 113 | ||
84 | 114 | ||
85 | 115 | ||
86 | - | @Callable(o) | |
87 | - | func addGroupMember (p) = if (!(h(o.caller))) | |
88 | - | then throw("access only to the DAO owner") | |
89 | - | else if ((b((("working_group_member_" + p) + "_weight")) == 1)) | |
90 | - | then throw("This user already exists") | |
91 | - | else { | |
92 | - | let q = j() | |
93 | - | let r = ((q + ";") + p) | |
94 | - | let s = b("working_group_size") | |
95 | - | let t = (s + 1) | |
96 | - | WriteSet([DataEntry("working_group_name", r), DataEntry("working_group_size", t), DataEntry((("working_group_member_" + p) + "_weight"), 1)]) | |
97 | - | } | |
98 | - | ||
99 | - | ||
100 | - | ||
101 | - | @Callable(o) | |
102 | - | func addTask (u,v) = if (!(l(o.caller))) | |
103 | - | then throw("grants working group access only") | |
104 | - | else WriteSet([DataEntry((("tasks_" + toBase58String(o.transactionId)) + "_title"), u), DataEntry((("tasks_" + toBase58String(o.transactionId)) + "_link"), v)]) | |
105 | - | ||
106 | - | ||
107 | - | ||
108 | - | @Callable(o) | |
109 | - | func addTaskDetails (w) = if (!(l(o.caller))) | |
116 | + | @Callable(q) | |
117 | + | func addTaskDetails (t) = if (!(n(q.caller))) | |
110 | 118 | then throw("grants working group access only") | |
111 | 119 | else { | |
112 | - | let | |
113 | - | WriteSet([DataEntry((("tasks_" + | |
120 | + | let u = extract(q.payment).amount | |
121 | + | WriteSet([DataEntry((("tasks_" + t) + "_reward"), u), DataEntry((("tasks_" + t) + "_status"), "proposed")]) | |
114 | 122 | } | |
115 | 123 | ||
116 | 124 | ||
117 | 125 | ||
118 | - | @Callable( | |
119 | - | func voteForTaskProposal ( | |
126 | + | @Callable(q) | |
127 | + | func voteForTaskProposal (t,v) = if (!(p(q))) | |
120 | 128 | then throw("you can't vote") | |
121 | - | else if ((getStringValue(this, (("tasks_" + | |
129 | + | else if ((getStringValue(this, (("tasks_" + t) + "_status")) != "proposed")) | |
122 | 130 | then throw("voting is closed or not started") | |
123 | - | else if (if (( | |
124 | - | then ( | |
131 | + | else if (if ((v != -1)) | |
132 | + | then (v != 1) | |
125 | 133 | else false) | |
126 | 134 | then throw("you need to vote 1 or -1") | |
127 | 135 | else { | |
128 | - | let | |
129 | - | let | |
130 | - | if (!(( | |
136 | + | let w = ((("tasks_" + t) + "_voted_") + toString(q.caller)) | |
137 | + | let x = c(w) | |
138 | + | if (!((x == 0))) | |
131 | 139 | then throw("you have already voted") | |
132 | 140 | else { | |
133 | - | let | |
134 | - | let | |
135 | - | let | |
136 | - | let | |
137 | - | let | |
138 | - | ScriptResult(WriteSet([DataEntry( | |
141 | + | let y = (("tasks_" + t) + "_voting_state") | |
142 | + | let z = c(y) | |
143 | + | let A = (("tasks_" + t) + "_voting_amount") | |
144 | + | let B = (c(y) + 1) | |
145 | + | let C = (z + v) | |
146 | + | ScriptResult(WriteSet([DataEntry(y, C), DataEntry(w, v), DataEntry(A, B)]), TransferSet([ScriptTransfer(q.caller, 500000, unit)])) | |
139 | 147 | } | |
140 | 148 | } | |
141 | 149 | ||
142 | 150 | ||
143 | 151 | ||
144 | - | @Callable( | |
145 | - | func finishTaskProposalVoting ( | |
146 | - | then throw((("more than " + toString( | |
147 | - | else if (!( | |
152 | + | @Callable(q) | |
153 | + | func finishTaskProposalVoting (t) = if ((b > ((c((("tasks_" + t) + "_voting_amount")) * 100) / m()))) | |
154 | + | then throw((("more than " + toString(b)) + "% members have to vote before finishing the voting")) | |
155 | + | else if (!(n(q.caller))) | |
148 | 156 | then throw("grants working group access only") | |
149 | 157 | else { | |
150 | - | let | |
151 | - | let | |
152 | - | if (( | |
158 | + | let y = (("tasks_" + t) + "_voting_state") | |
159 | + | let z = c(y) | |
160 | + | if ((z > 0)) | |
153 | 161 | then { | |
154 | - | let | |
155 | - | WriteSet([DataEntry((("tasks_" + | |
162 | + | let D = "ready_to_apply" | |
163 | + | WriteSet([DataEntry((("tasks_" + t) + "_status"), D)]) | |
156 | 164 | } | |
157 | 165 | else { | |
158 | - | let | |
159 | - | WriteSet([DataEntry((("tasks_" + | |
166 | + | let D = "rejected" | |
167 | + | WriteSet([DataEntry((("tasks_" + t) + "_status"), D)]) | |
160 | 168 | } | |
161 | 169 | } | |
162 | 170 | ||
163 | 171 | ||
164 | 172 | ||
165 | - | @Callable( | |
166 | - | func applyForTask ( | |
167 | - | let | |
168 | - | if (( | |
173 | + | @Callable(q) | |
174 | + | func applyForTask (t,E,s) = { | |
175 | + | let F = h((("tasks_" + t) + "_status")) | |
176 | + | if ((F != "ready_to_apply")) | |
169 | 177 | then throw("This grant has not yet been approved") | |
170 | 178 | else { | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | let | |
175 | - | WriteSet([DataEntry((((("tasks_" + | |
179 | + | let G = (("tasks_" + t) + "_applicants") | |
180 | + | let H = h(G) | |
181 | + | let I = drop(toString(q.caller), 10) | |
182 | + | let J = ((H + ";") + toString(q.caller)) | |
183 | + | WriteSet([DataEntry((((("tasks_" + t) + "_app_") + I) + "_name"), E), DataEntry((((("tasks_" + t) + "_app_") + I) + "_link"), s), DataEntry((((("tasks_" + t) + "_app_") + I) + "_leader"), toString(q.caller)), DataEntry((((("tasks_" + t) + "_app_") + I) + "_id"), I), DataEntry(G, J)]) | |
176 | 184 | } | |
177 | 185 | } | |
178 | 186 | ||
179 | 187 | ||
180 | 188 | ||
181 | - | @Callable( | |
182 | - | func voteForApplicant ( | |
189 | + | @Callable(q) | |
190 | + | func voteForApplicant (t,K,v) = if (!(p(q))) | |
183 | 191 | then throw("you can't vote") | |
184 | 192 | else { | |
185 | - | let | |
186 | - | let | |
187 | - | let | |
188 | - | if (( | |
193 | + | let L = (drop(toString(q.caller), 10) + drop(K, 10)) | |
194 | + | let w = ((("tasks_" + t) + "_vote_") + L) | |
195 | + | let M = c(w) | |
196 | + | if ((M != 0)) | |
189 | 197 | then throw("you have already voted on this team") | |
190 | 198 | else { | |
191 | - | let | |
192 | - | let | |
193 | - | let | |
194 | - | let | |
195 | - | WriteSet([DataEntry( | |
199 | + | let N = (((("tasks_" + t) + "_app_") + K) + "_votes") | |
200 | + | let O = (((("tasks_" + t) + "_app_") + K) + "_score") | |
201 | + | let P = (1 + c(N)) | |
202 | + | let Q = (v + c(O)) | |
203 | + | WriteSet([DataEntry(w, v), DataEntry(O, Q)]) | |
196 | 204 | } | |
197 | 205 | } | |
198 | 206 | ||
199 | 207 | ||
200 | 208 | ||
201 | - | @Callable( | |
202 | - | func finishApplicantsVoting ( | |
203 | - | func | |
204 | - | let | |
205 | - | let | |
206 | - | let | |
207 | - | let | |
208 | - | let | |
209 | - | if (( | |
209 | + | @Callable(q) | |
210 | + | func finishApplicantsVoting (t) = { | |
211 | + | func R (S,T) = { | |
212 | + | let G = (("tasks_" + t) + "_applicants") | |
213 | + | let U = split(getStringValue(this, G), ";") | |
214 | + | let K = U[S] | |
215 | + | let N = (((("tasks_" + t) + "_app_") + K) + "_votes") | |
216 | + | let P = c(N) | |
217 | + | if ((P > 0)) | |
210 | 218 | then 1 | |
211 | - | else throw(("not enough votes to make decision on " + | |
219 | + | else throw(("not enough votes to make decision on " + K)) | |
212 | 220 | } | |
213 | 221 | ||
214 | - | func | |
215 | - | let | |
216 | - | let | |
217 | - | let | |
218 | - | let | |
219 | - | let | |
220 | - | let | |
221 | - | let | |
222 | - | let | |
223 | - | if (( | |
224 | - | then | |
225 | - | else | |
222 | + | func V (S,T) = { | |
223 | + | let G = (("tasks_" + t) + "_applicants") | |
224 | + | let U = split(getStringValue(this, G), ";") | |
225 | + | let K = U[S] | |
226 | + | let N = (((("tasks_" + t) + "_app_") + K) + "_votes") | |
227 | + | let P = c(N) | |
228 | + | let W = U[T] | |
229 | + | let X = (((("tasks_" + t) + "_app_") + W) + "_votes") | |
230 | + | let Y = c(X) | |
231 | + | if ((P > Y)) | |
232 | + | then S | |
233 | + | else T | |
226 | 234 | } | |
227 | 235 | ||
228 | - | if (!( | |
236 | + | if (!(n(q.caller))) | |
229 | 237 | then throw("grants working group access only") | |
230 | 238 | else { | |
231 | - | let | |
232 | - | let | |
233 | - | if ((size( | |
239 | + | let Z = h((("tasks_" + t) + "_applicants")) | |
240 | + | let U = split(Z, ";") | |
241 | + | if ((size(U) == 0)) | |
234 | 242 | then throw("No one has yet responded to the grant") | |
235 | 243 | else { | |
236 | - | let | |
237 | - | let | |
238 | - | let | |
239 | - | let | |
240 | - | if (( | |
241 | - | then | |
244 | + | let aa = { | |
245 | + | let ab = [0, 1] | |
246 | + | let ac = size(ab) | |
247 | + | let ad = 0 | |
248 | + | if ((ac == 0)) | |
249 | + | then ad | |
242 | 250 | else { | |
243 | - | let | |
244 | - | if (( | |
245 | - | then | |
251 | + | let ae = V(ad, ab[0]) | |
252 | + | if ((ac == 1)) | |
253 | + | then ae | |
246 | 254 | else { | |
247 | - | let | |
248 | - | if (( | |
249 | - | then | |
255 | + | let af = V(ae, ab[1]) | |
256 | + | if ((ac == 2)) | |
257 | + | then af | |
250 | 258 | else { | |
251 | - | let | |
259 | + | let ag = V(af, ab[2]) | |
252 | 260 | throw("List size exceed 2") | |
253 | 261 | } | |
254 | 262 | } | |
255 | 263 | } | |
256 | 264 | } | |
257 | - | let | |
258 | - | WriteSet([DataEntry((("tasks_" + | |
265 | + | let K = U[aa] | |
266 | + | WriteSet([DataEntry((("tasks_" + t) + "_status"), "team_chosen"), DataEntry((("tasks_" + t) + "_performer"), K), DataEntry((((("tasks_" + t) + "_app_") + K) + "_process"), "can_begin")]) | |
259 | 267 | } | |
260 | 268 | } | |
261 | 269 | } | |
262 | 270 | ||
263 | 271 | ||
264 | 272 | ||
265 | - | @Callable( | |
266 | - | func startWork ( | |
267 | - | let | |
268 | - | if ((toString( | |
273 | + | @Callable(q) | |
274 | + | func startWork (t) = { | |
275 | + | let K = getStringValue(this, (("tasks_" + t) + "_performer")) | |
276 | + | if ((toString(q.caller) != getStringValue(this, (((("tasks_" + t) + "_app_") + K) + "_leader")))) | |
269 | 277 | then throw("team leader only") | |
270 | - | else WriteSet([DataEntry((("tasks_" + | |
278 | + | else WriteSet([DataEntry((("tasks_" + t) + "_status"), "work_started"), DataEntry((((("tasks_" + t) + "_app_") + K) + "_process"), "work_started")]) | |
271 | 279 | } | |
272 | 280 | ||
273 | 281 | ||
274 | 282 | ||
275 | - | @Callable( | |
276 | - | func acceptWorkResult ( | |
283 | + | @Callable(q) | |
284 | + | func acceptWorkResult (t) = if (!(n(q.caller))) | |
277 | 285 | then throw("grants working group access only") | |
278 | 286 | else { | |
279 | - | let | |
280 | - | let | |
281 | - | let | |
282 | - | ScriptResult(WriteSet([DataEntry((("tasks_" + | |
287 | + | let ah = c((("tasks_" + t) + "_reward")) | |
288 | + | let K = getStringValue(this, (("tasks_" + t) + "_performer")) | |
289 | + | let ai = getStringValue(this, (((("tasks_" + t) + "_app_") + K) + "_leader")) | |
290 | + | ScriptResult(WriteSet([DataEntry((("tasks_" + t) + "_status"), "work_finished"), DataEntry((((("tasks_" + t) + "_app_") + K) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(ai), ah, unit)])) | |
283 | 291 | } | |
284 | 292 | ||
285 | 293 |
github/deemru/w8io/873ac7e 211.59 ms ◑![]()