tx · Ggg1YPxTybThUeSKWGNuzhHWjX8ykonMbqaMXEJDaeJe

3N1eyWNffhxPCmYBWBdnWbhmAVAVjkTEqY5:  -0.10000000 Waves

2020.11.20 00:08 [1272755] smart account 3N1eyWNffhxPCmYBWBdnWbhmAVAVjkTEqY5 > SELF 0.00000000 Waves

{ "type": 13, "id": "Ggg1YPxTybThUeSKWGNuzhHWjX8ykonMbqaMXEJDaeJe", "fee": 10000000, "feeAssetId": null, "timestamp": 1605820168133, "version": 2, "chainId": 84, "sender": "3N1eyWNffhxPCmYBWBdnWbhmAVAVjkTEqY5", "senderPublicKey": "BWQB37E3JLeot6EcSVXsbJMugLUYNarK8xU8W5XAPsvJ", "proofs": [ "tbVdJ4gTE7bfuBHbDvinfbRUunTuJqiVPSKHkDrz2r1cs7QAnmwiPGGrRjBvsjxR6XpkxQeb3GCyU5zJupDqJv3" ], "script": "base64:AAIDAAAAAAAAAD8IARIDCgEIEgMKAQgSBAoCCAgSAwoBCBIECgIICBIDCgEIEgUKAwgICBIFCgMICAESAwoBCBIDCgEIEgMKAQgAAAAIAAAAAAZRVU9SVU0AAAAAAAAAAAEBAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAABQAAAAN2YWwBAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAN2YWwEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAUAAAADdmFsAQAAAAdpc093bmVyAAAAAQAAAAdhZGRyZXNzCQAAAAAAAAIFAAAAB2FkZHJlc3MFAAAABHRoaXMBAAAACGdldEdyb3VwAAAAAAQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMCAAAADXdvcmtpbmdfZ3JvdXADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgIAAAAABQAAAAN2YWwBAAAACmdldE1lbWJlcnMAAAAABAAAAAN2YWwEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwIAAAALZGFvX21lbWJlcnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgIAAAAABQAAAAN2YWwBAAAADWlzR3JvdXBNZW1iZXIAAAABAAAAAWEJAABmAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAVd29ya2luZ19ncm91cF9tZW1iZXJfCQAEJQAAAAEFAAAAAWECAAAAB193ZWlnaHQAAAAAAAAAAAABAAAADWNhbk1lbWJlclZvdGUAAAABAAAAAWkJAABmAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAALZGFvX21lbWJlcl8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAdfd2VpZ2h0AAAAAAAAAAAAAAAACwAAAAFpAQAAAAxhZGREQU9NZW1iZXIAAAABAAAADW1lbWJlckFkZHJlc3MDCQEAAAABIQAAAAEJAQAAAAdpc093bmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAHGFjY2VzcyBvbmx5IHRvIHRoZSBEQU8gb3duZXIDCQAAAAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAAC2Rhb19tZW1iZXJfBQAAAA1tZW1iZXJBZGRyZXNzAgAAAAdfd2VpZ2h0AAAAAAAAAAABCQAAAgAAAAECAAAAGHRoaXMgdXNlciBhbHJlYWR5IGV4aXN0cwQAAAAFZ3JvdXAJAQAAAApnZXRNZW1iZXJzAAAAAAQAAAAIbmV3R3JvdXAJAAEsAAAAAgkAASwAAAACBQAAAAVncm91cAIAAAABOwUAAAANbWVtYmVyQWRkcmVzcwQAAAAJZ3JvdXBTaXplCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAACGRhb19zaXplBAAAAAxuZXdHcm91cFNpemUJAABkAAAAAgUAAAAJZ3JvdXBTaXplAAAAAAAAAAABCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAtkYW9fbWVtYmVycwUAAAAIbmV3R3JvdXAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAACGRhb19zaXplBQAAAAxuZXdHcm91cFNpemUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtkYW9fbWVtYmVyXwUAAAANbWVtYmVyQWRkcmVzcwIAAAAHX3dlaWdodAAAAAAAAAAAAQUAAAADbmlsAAAAAWkBAAAADmFkZEdyb3VwTWVtYmVyAAAAAQAAAA1tZW1iZXJBZGRyZXNzAwkBAAAAASEAAAABCQEAAAAHaXNPd25lcgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAABxhY2Nlc3Mgb25seSB0byB0aGUgREFPIG93bmVyAwkAAAAAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABV3b3JraW5nX2dyb3VwX21lbWJlcl8FAAAADW1lbWJlckFkZHJlc3MCAAAAB193ZWlnaHQAAAAAAAAAAAEJAAACAAAAAQIAAAAYVGhpcyB1c2VyIGFscmVhZHkgZXhpc3RzBAAAAAVncm91cAkBAAAACGdldEdyb3VwAAAAAAQAAAAIbmV3R3JvdXAJAAEsAAAAAgkAASwAAAACBQAAAAVncm91cAIAAAABOwUAAAANbWVtYmVyQWRkcmVzcwQAAAAJZ3JvdXBTaXplCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAEndvcmtpbmdfZ3JvdXBfc2l6ZQQAAAAMbmV3R3JvdXBTaXplCQAAZAAAAAIFAAAACWdyb3VwU2l6ZQAAAAAAAAAAAQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAASd29ya2luZ19ncm91cF9uYW1lBQAAAAhuZXdHcm91cAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAASd29ya2luZ19ncm91cF9zaXplBQAAAAxuZXdHcm91cFNpemUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAABV3b3JraW5nX2dyb3VwX21lbWJlcl8FAAAADW1lbWJlckFkZHJlc3MCAAAAB193ZWlnaHQAAAAAAAAAAAEFAAAAA25pbAAAAAFpAQAAAAdhZGRUYXNrAAAAAgAAAAV0aXRsZQAAAARsaW5rAwkBAAAAASEAAAABCQEAAAANaXNHcm91cE1lbWJlcgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAACBncmFudHMgd29ya2luZyBncm91cCBhY2Nlc3Mgb25seQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkAgAAAAZfdGl0bGUFAAAABXRpdGxlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQCAAAABV9saW5rBQAAAARsaW5rBQAAAANuaWwAAAABaQEAAAAOYWRkVGFza0RldGFpbHMAAAABAAAABnRhc2tJZAMJAQAAAAEhAAAAAQkBAAAADWlzR3JvdXBNZW1iZXIAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAgZ3JhbnRzIHdvcmtpbmcgZ3JvdXAgYWNjZXNzIG9ubHkEAAAABnJld2FyZAgJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAAAAAZhbW91bnQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAHX3Jld2FyZAUAAAAGcmV3YXJkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAAB19zdGF0dXMCAAAACHByb3Bvc2VkBQAAAANuaWwAAAABaQEAAAATdm90ZUZvclRhc2tQcm9wb3NhbAAAAAIAAAAGdGFza0lkAAAACXZvdGVWYWx1ZQMJAQAAAAEhAAAAAQkBAAAADWNhbk1lbWJlclZvdGUAAAABBQAAAAFpCQAAAgAAAAECAAAADnlvdSBjYW4ndCB2b3RlAwkBAAAAAiE9AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzAgAAAAhwcm9wb3NlZAkAAAIAAAABAgAAAB92b3RpbmcgaXMgY2xvc2VkIG9yIG5vdCBzdGFydGVkAwMJAQAAAAIhPQAAAAIFAAAACXZvdGVWYWx1ZQIAAAAEbGlrZQkBAAAAAiE9AAAAAgUAAAAJdm90ZVZhbHVlAgAAAAdkaXNsaWtlBwkAAAIAAAABAgAAACB5b3UgbmVlZCB0byB2b3RlIGxpa2Ugb3IgZGlzbGlrZQoBAAAACGdldFZhbHVlAAAAAQAAAAR2b3RlAwkAAAAAAAACBQAAAAR2b3RlAgAAAARsaWtlAAAAAAAAAAABAP//////////BAAAAAd2b3RlS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAHX3ZvdGVkXwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADHByZXZpb3VzVm90ZQkBAAAADXRyeUdldEludGVnZXIAAAABBQAAAAd2b3RlS2V5BAAAAAl2b3RpbmdLZXkJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAANX3ZvdGluZ19zdGF0ZQQAAAALdm90aW5nU3RhdGUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAJdm90aW5nS2V5BAAAAA52b3Rlc0Ftb3VudEtleQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAA5fdm90aW5nX2Ftb3VudAQAAAAQdm90ZXNBbW91bnRTdGF0ZQkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAACXZvdGluZ0tleQAAAAAAAAAAAQQAAAAObmV3Vm90aW5nU3RhdGUJAABkAAAAAgUAAAALdm90aW5nU3RhdGUJAQAAAAhnZXRWYWx1ZQAAAAEFAAAACXZvdGVWYWx1ZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACXZvdGluZ0tleQUAAAAObmV3Vm90aW5nU3RhdGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAB3ZvdGVLZXkJAQAAAAhnZXRWYWx1ZQAAAAEFAAAACXZvdGVWYWx1ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOdm90ZXNBbW91bnRLZXkFAAAAEHZvdGVzQW1vdW50U3RhdGUFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIAAAAAAAAHoSAFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAABhmaW5pc2hUYXNrUHJvcG9zYWxWb3RpbmcAAAABAAAABnRhc2tJZAMJAABmAAAAAgUAAAAGUVVPUlVNCQAAaQAAAAIJAABoAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAADl92b3RpbmdfYW1vdW50AAAAAAAAAABkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAACGRhb19zaXplCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAptb3JlIHRoYW4gCQABpAAAAAEFAAAABlFVT1JVTQIAAAAyJSBtZW1iZXJzIGhhdmUgdG8gdm90ZSBiZWZvcmUgZmluaXNoaW5nIHRoZSB2b3RpbmcDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5BAAAAAl2b3RpbmdLZXkJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAANX3ZvdGluZ19zdGF0ZQQAAAALdm90aW5nU3RhdGUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAJdm90aW5nS2V5AwkAAGYAAAACBQAAAAt2b3RpbmdTdGF0ZQAAAAAAAAAAAAQAAAAMdm90aW5nUmVzdWx0AgAAAA5yZWFkeV90b19hcHBseQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzBQAAAAx2b3RpbmdSZXN1bHQFAAAAA25pbAQAAAAMdm90aW5nUmVzdWx0AgAAAAhyZWplY3RlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzBQAAAAx2b3RpbmdSZXN1bHQFAAAAA25pbAAAAAFpAQAAAAxhcHBseUZvclRhc2sAAAADAAAABnRhc2tJZAAAAAh0ZWFtTmFtZQAAAARsaW5rBAAAAAZzdGF0dXMJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAAB19zdGF0dXMDCQEAAAACIT0AAAACBQAAAAZzdGF0dXMCAAAADnJlYWR5X3RvX2FwcGx5CQAAAgAAAAECAAAAJHRoaXMgZ3JhbnQgaGFzIG5vdCB5ZXQgYmVlbiBhcHByb3ZlZAQAAAAHbGlzdEtleQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAtfYXBwbGljYW50cwQAAAAVY3VycmVudEFwcGxpY2FudHNMaXN0CQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQUAAAAHbGlzdEtleQQAAAAMYXBwbGljYW50S2V5CQABMAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAAKBAAAABFuZXdBcHBsaWNhbnRzTGlzdAkAASwAAAACCQABLAAAAAIFAAAAFWN1cnJlbnRBcHBsaWNhbnRzTGlzdAIAAAABOwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAAxhcHBsaWNhbnRLZXkCAAAABV9uYW1lBQAAAAh0ZWFtTmFtZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADGFwcGxpY2FudEtleQIAAAAFX2xpbmsFAAAABGxpbmsJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAAxhcHBsaWNhbnRLZXkCAAAAB19sZWFkZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAMYXBwbGljYW50S2V5AgAAAANfaWQFAAAADGFwcGxpY2FudEtleQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAHbGlzdEtleQUAAAARbmV3QXBwbGljYW50c0xpc3QFAAAAA25pbAAAAAFpAQAAABB2b3RlRm9yQXBwbGljYW50AAAAAwAAAAZ0YXNrSWQAAAAOdGVhbUlkZW50aWZpZXIAAAAJdm90ZVZhbHVlAwkBAAAAASEAAAABCQEAAAANY2FuTWVtYmVyVm90ZQAAAAEFAAAAAWkJAAACAAAAAQIAAAAOeW91IGNhbid0IHZvdGUEAAAACHZvdGVIYXNoCQABLAAAAAIJAAEwAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIAAAAAAAAAAAoJAAEwAAAAAgUAAAAOdGVhbUlkZW50aWZpZXIAAAAAAAAAAAoEAAAAB3ZvdGVLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAZfdm90ZV8FAAAACHZvdGVIYXNoBAAAAAR2b3RlCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAB3ZvdGVLZXkDCQEAAAACIT0AAAACBQAAAAR2b3RlAAAAAAAAAAAACQAAAgAAAAECAAAAI3lvdSBoYXZlIGFscmVhZHkgdm90ZWQgb24gdGhpcyB0ZWFtBAAAABJ0ZWFtVm90ZXNBbW91bnRLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAA50ZWFtSWRlbnRpZmllcgIAAAAGX3ZvdGVzBAAAAAx0ZWFtU2NvcmVLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAA50ZWFtSWRlbnRpZmllcgIAAAAGX3Njb3JlBAAAAA90ZWFtVm90ZXNBbW91bnQJAABkAAAAAgAAAAAAAAAAAQkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABJ0ZWFtVm90ZXNBbW91bnRLZXkEAAAADG5ld1RlYW1TY29yZQkAAGQAAAACBQAAAAl2b3RlVmFsdWUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAMdGVhbVNjb3JlS2V5CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAd2b3RlS2V5BQAAAAl2b3RlVmFsdWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADHRlYW1TY29yZUtleQUAAAAMbmV3VGVhbVNjb3JlBQAAAANuaWwAAAABaQEAAAAWZmluaXNoQXBwbGljYW50c1ZvdGluZwAAAAEAAAAGdGFza0lkCgEAAAAWaXNBcHBsaWNhbnRWb3RlZEVub3VnaAAAAAIAAAADYWlkAAAABGFpZDIEAAAAB2xpc3RLZXkJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAALX2FwcGxpY2FudHMEAAAADmFwcGxpY2FudHNMaXN0CQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAB2xpc3RLZXkCAAAAATsEAAAADnRlYW1JZGVudGlmaWVyCQABkQAAAAIFAAAADmFwcGxpY2FudHNMaXN0BQAAAANhaWQEAAAAEnRlYW1Wb3Rlc0Ftb3VudEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAZfdm90ZXMEAAAAD3RlYW1Wb3Rlc0Ftb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABJ0ZWFtVm90ZXNBbW91bnRLZXkDCQAAZgAAAAIFAAAAD3RlYW1Wb3Rlc0Ftb3VudAAAAAAAAAAAAAAAAAAAAAAAAQkAAAIAAAABCQABLAAAAAICAAAAJW5vdCBlbm91Z2ggdm90ZXMgdG8gbWFrZSBkZWNpc2lvbiBvbiAFAAAADnRlYW1JZGVudGlmaWVyCgEAAAAMaGFzTW9yZVZvdGVzAAAAAgAAAANhaWQAAAAEYWlkMgQAAAAHbGlzdEtleQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAtfYXBwbGljYW50cwQAAAAOYXBwbGljYW50c0xpc3QJAAS1AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAHbGlzdEtleQIAAAABOwQAAAAOdGVhbUlkZW50aWZpZXIJAAGRAAAAAgUAAAAOYXBwbGljYW50c0xpc3QFAAAAA2FpZAQAAAASdGVhbVZvdGVzQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAOdGVhbUlkZW50aWZpZXICAAAABl92b3RlcwQAAAAPdGVhbVZvdGVzQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAEnRlYW1Wb3Rlc0Ftb3VudEtleQQAAAAPdGVhbTJJZGVudGlmaWVyCQABkQAAAAIFAAAADmFwcGxpY2FudHNMaXN0BQAAAARhaWQyBAAAABN0ZWFtMlZvdGVzQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAPdGVhbTJJZGVudGlmaWVyAgAAAAZfdm90ZXMEAAAAEHRlYW0yVm90ZXNBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAATdGVhbTJWb3Rlc0Ftb3VudEtleQMJAABmAAAAAgUAAAAPdGVhbVZvdGVzQW1vdW50BQAAABB0ZWFtMlZvdGVzQW1vdW50BQAAAANhaWQFAAAABGFpZDIDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5BAAAAAhsaXN0S2V5cwkBAAAADHRyeUdldFN0cmluZwAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18F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", "height": 1272755, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8dse6KgnUJJEHBeohhSLXcXcTtGJQaZHRjvBpmnd4Ero Next: GoMR2JGKg3vsch4XuHYCZYzxER3RkC6ThS5UtULrdf68 Diff:
OldNewDifferences
120120 then throw("you can't vote")
121121 else if ((getStringValue(this, (("tasks_" + w) + "_status")) != "proposed"))
122122 then throw("voting is closed or not started")
123- else if (if ((y != -1))
124- then (y != 1)
123+ else if (if ((y != "like"))
124+ then (y != "dislike")
125125 else false)
126- then throw("you need to vote 1 or -1")
126+ then throw("you need to vote like or dislike")
127127 else {
128- let z = ((("tasks_" + w) + "_voted_") + toString(o.caller))
129- let A = b(z)
130- let B = (("tasks_" + w) + "_voting_state")
128+ func z (A) = if ((A == "like"))
129+ then 1
130+ else -1
131+
132+ let B = ((("tasks_" + w) + "_voted_") + toString(o.caller))
131133 let C = b(B)
132- let D = (("tasks_" + w) + "_voting_amount")
133- let E = (b(B) + 1)
134- let F = (C + y)
135- ScriptResult(WriteSet([DataEntry(B, F), DataEntry(z, y), DataEntry(D, E)]), TransferSet([ScriptTransfer(o.caller, 500000, unit)]))
134+ let D = (("tasks_" + w) + "_voting_state")
135+ let E = b(D)
136+ let F = (("tasks_" + w) + "_voting_amount")
137+ let G = (b(D) + 1)
138+ let H = (E + z(y))
139+ ScriptResult(WriteSet([DataEntry(D, H), DataEntry(B, z(y)), DataEntry(F, G)]), TransferSet([ScriptTransfer(o.caller, 500000, unit)]))
136140 }
137141
138142
143147 else if (!(l(o.caller)))
144148 then throw("grants working group access only")
145149 else {
146- let B = (("tasks_" + w) + "_voting_state")
147- let C = b(B)
148- if ((C > 0))
150+ let D = (("tasks_" + w) + "_voting_state")
151+ let E = b(D)
152+ if ((E > 0))
149153 then {
150- let G = "ready_to_apply"
151- WriteSet([DataEntry((("tasks_" + w) + "_status"), G)])
154+ let I = "ready_to_apply"
155+ WriteSet([DataEntry((("tasks_" + w) + "_status"), I)])
152156 }
153157 else {
154- let G = "rejected"
155- WriteSet([DataEntry((("tasks_" + w) + "_status"), G)])
158+ let I = "rejected"
159+ WriteSet([DataEntry((("tasks_" + w) + "_status"), I)])
156160 }
157161 }
158162
159163
160164
161165 @Callable(o)
162-func applyForTask (w,H,v) = {
163- let I = g((("tasks_" + w) + "_status"))
164- if ((I != "ready_to_apply"))
166+func applyForTask (w,J,v) = {
167+ let K = g((("tasks_" + w) + "_status"))
168+ if ((K != "ready_to_apply"))
165169 then throw("this grant has not yet been approved")
166170 else {
167- let J = (("tasks_" + w) + "_applicants")
168- let K = g(J)
169- let L = drop(toString(o.caller), 10)
170- let M = ((K + ";") + toString(o.caller))
171- WriteSet([DataEntry((((("tasks_" + w) + "_app_") + L) + "_name"), H), DataEntry((((("tasks_" + w) + "_app_") + L) + "_link"), v), DataEntry((((("tasks_" + w) + "_app_") + L) + "_leader"), toString(o.caller)), DataEntry((((("tasks_" + w) + "_app_") + L) + "_id"), L), DataEntry(J, M)])
171+ let L = (("tasks_" + w) + "_applicants")
172+ let M = g(L)
173+ let N = drop(toString(o.caller), 10)
174+ let O = ((M + ";") + toString(o.caller))
175+ WriteSet([DataEntry((((("tasks_" + w) + "_app_") + N) + "_name"), J), DataEntry((((("tasks_" + w) + "_app_") + N) + "_link"), v), DataEntry((((("tasks_" + w) + "_app_") + N) + "_leader"), toString(o.caller)), DataEntry((((("tasks_" + w) + "_app_") + N) + "_id"), N), DataEntry(L, O)])
172176 }
173177 }
174178
175179
176180
177181 @Callable(o)
178-func voteForApplicant (w,N,y) = if (!(n(o)))
182+func voteForApplicant (w,P,y) = if (!(n(o)))
179183 then throw("you can't vote")
180184 else {
181- let O = (drop(toString(o.caller), 10) + drop(N, 10))
182- let z = ((("tasks_" + w) + "_vote_") + O)
183- let P = b(z)
184- if ((P != 0))
185+ let Q = (drop(toString(o.caller), 10) + drop(P, 10))
186+ let B = ((("tasks_" + w) + "_vote_") + Q)
187+ let A = b(B)
188+ if ((A != 0))
185189 then throw("you have already voted on this team")
186190 else {
187- let Q = (((("tasks_" + w) + "_app_") + N) + "_votes")
188- let R = (((("tasks_" + w) + "_app_") + N) + "_score")
189- let S = (1 + b(Q))
190- let T = (y + b(R))
191- WriteSet([DataEntry(z, y), DataEntry(R, T)])
191+ let R = (((("tasks_" + w) + "_app_") + P) + "_votes")
192+ let S = (((("tasks_" + w) + "_app_") + P) + "_score")
193+ let T = (1 + b(R))
194+ let U = (y + b(S))
195+ WriteSet([DataEntry(B, y), DataEntry(S, U)])
192196 }
193197 }
194198
196200
197201 @Callable(o)
198202 func finishApplicantsVoting (w) = {
199- func U (V,W) = {
200- let J = (("tasks_" + w) + "_applicants")
201- let X = split(getStringValue(this, J), ";")
202- let N = X[V]
203- let Q = (((("tasks_" + w) + "_app_") + N) + "_votes")
204- let S = b(Q)
205- if ((S > 0))
203+ func V (W,X) = {
204+ let L = (("tasks_" + w) + "_applicants")
205+ let Y = split(getStringValue(this, L), ";")
206+ let P = Y[W]
207+ let R = (((("tasks_" + w) + "_app_") + P) + "_votes")
208+ let T = b(R)
209+ if ((T > 0))
206210 then 1
207- else throw(("not enough votes to make decision on " + N))
211+ else throw(("not enough votes to make decision on " + P))
208212 }
209213
210- func Y (V,W) = {
211- let J = (("tasks_" + w) + "_applicants")
212- let X = split(getStringValue(this, J), ";")
213- let N = X[V]
214- let Q = (((("tasks_" + w) + "_app_") + N) + "_votes")
215- let S = b(Q)
216- let Z = X[W]
217- let aa = (((("tasks_" + w) + "_app_") + Z) + "_votes")
218- let ab = b(aa)
219- if ((S > ab))
220- then V
221- else W
214+ func Z (W,X) = {
215+ let L = (("tasks_" + w) + "_applicants")
216+ let Y = split(getStringValue(this, L), ";")
217+ let P = Y[W]
218+ let R = (((("tasks_" + w) + "_app_") + P) + "_votes")
219+ let T = b(R)
220+ let aa = Y[X]
221+ let ab = (((("tasks_" + w) + "_app_") + aa) + "_votes")
222+ let ac = b(ab)
223+ if ((T > ac))
224+ then W
225+ else X
222226 }
223227
224228 if (!(l(o.caller)))
225229 then throw("grants working group access only")
226230 else {
227- let ac = g((("tasks_" + w) + "_applicants"))
228- let X = split(ac, ";")
229- if ((size(X) == 0))
231+ let ad = g((("tasks_" + w) + "_applicants"))
232+ let Y = split(ad, ";")
233+ if ((size(Y) == 0))
230234 then throw("No one has yet responded to the grant")
231235 else {
232- let ad = {
233- let ae = [0, 1]
234- let af = size(ae)
235- let ag = 0
236- if ((af == 0))
237- then ag
236+ let ae = {
237+ let af = [0, 1]
238+ let ag = size(af)
239+ let ah = 0
240+ if ((ag == 0))
241+ then ah
238242 else {
239- let ah = Y(ag, ae[0])
240- if ((af == 1))
241- then ah
243+ let ai = Z(ah, af[0])
244+ if ((ag == 1))
245+ then ai
242246 else {
243- let ai = Y(ah, ae[1])
244- if ((af == 2))
245- then ai
247+ let aj = Z(ai, af[1])
248+ if ((ag == 2))
249+ then aj
246250 else {
247- let aj = Y(ai, ae[2])
251+ let ak = Z(aj, af[2])
248252 throw("List size exceed 2")
249253 }
250254 }
251255 }
252256 }
253- let N = X[ad]
254- WriteSet([DataEntry((("tasks_" + w) + "_status"), "team_chosen"), DataEntry((("tasks_" + w) + "_performer"), N), DataEntry((((("tasks_" + w) + "_app_") + N) + "_process"), "can_begin")])
257+ let P = Y[ae]
258+ WriteSet([DataEntry((("tasks_" + w) + "_status"), "team_chosen"), DataEntry((("tasks_" + w) + "_performer"), P), DataEntry((((("tasks_" + w) + "_app_") + P) + "_process"), "can_begin")])
255259 }
256260 }
257261 }
260264
261265 @Callable(o)
262266 func startWork (w) = {
263- let N = getStringValue(this, (("tasks_" + w) + "_performer"))
264- if ((toString(o.caller) != getStringValue(this, (((("tasks_" + w) + "_app_") + N) + "_leader"))))
267+ let P = getStringValue(this, (("tasks_" + w) + "_performer"))
268+ if ((toString(o.caller) != getStringValue(this, (((("tasks_" + w) + "_app_") + P) + "_leader"))))
265269 then throw("team leader only")
266- else WriteSet([DataEntry((("tasks_" + w) + "_status"), "work_started"), DataEntry((((("tasks_" + w) + "_app_") + N) + "_process"), "work_started")])
270+ else WriteSet([DataEntry((("tasks_" + w) + "_status"), "work_started"), DataEntry((((("tasks_" + w) + "_app_") + P) + "_process"), "work_started")])
267271 }
268272
269273
272276 func acceptWorkResult (w) = if (!(l(o.caller)))
273277 then throw("grants working group access only")
274278 else {
275- let ak = b((("tasks_" + w) + "_reward"))
276- let N = getStringValue(this, (("tasks_" + w) + "_performer"))
277- let al = getStringValue(this, (((("tasks_" + w) + "_app_") + N) + "_leader"))
278- ScriptResult(WriteSet([DataEntry((("tasks_" + w) + "_status"), "work_finished"), DataEntry((((("tasks_" + w) + "_app_") + N) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(al), ak, unit)]))
279+ let al = b((("tasks_" + w) + "_reward"))
280+ let P = getStringValue(this, (("tasks_" + w) + "_performer"))
281+ let am = getStringValue(this, (((("tasks_" + w) + "_app_") + P) + "_leader"))
282+ ScriptResult(WriteSet([DataEntry((("tasks_" + w) + "_status"), "work_finished"), DataEntry((((("tasks_" + w) + "_app_") + P) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(am), al, unit)]))
279283 }
280284
281285
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1
55
66 func b (c) = {
77 let d = {
88 let e = getInteger(this, c)
99 if ($isInstanceOf(e, "Int"))
1010 then {
1111 let f = e
1212 f
1313 }
1414 else 0
1515 }
1616 d
1717 }
1818
1919
2020 func g (c) = {
2121 let d = {
2222 let e = getString(this, c)
2323 if ($isInstanceOf(e, "String"))
2424 then {
2525 let f = e
2626 f
2727 }
2828 else ""
2929 }
3030 d
3131 }
3232
3333
3434 func h (i) = (i == this)
3535
3636
3737 func j () = {
3838 let d = {
3939 let e = getString(this, "working_group")
4040 if ($isInstanceOf(e, "String"))
4141 then {
4242 let f = e
4343 f
4444 }
4545 else ""
4646 }
4747 d
4848 }
4949
5050
5151 func k () = {
5252 let d = {
5353 let e = getString(this, "dao_members")
5454 if ($isInstanceOf(e, "String"))
5555 then {
5656 let f = e
5757 f
5858 }
5959 else ""
6060 }
6161 d
6262 }
6363
6464
6565 func l (m) = (b((("working_group_member_" + toString(m)) + "_weight")) > 0)
6666
6767
6868 func n (o) = (b((("dao_member_" + toString(o.caller)) + "_weight")) > 0)
6969
7070
7171 @Callable(o)
7272 func addDAOMember (p) = if (!(h(o.caller)))
7373 then throw("access only to the DAO owner")
7474 else if ((b((("dao_member_" + p) + "_weight")) == 1))
7575 then throw("this user already exists")
7676 else {
7777 let q = k()
7878 let r = ((q + ";") + p)
7979 let s = b("dao_size")
8080 let t = (s + 1)
8181 WriteSet([DataEntry("dao_members", r), DataEntry("dao_size", t), DataEntry((("dao_member_" + p) + "_weight"), 1)])
8282 }
8383
8484
8585
8686 @Callable(o)
8787 func addGroupMember (p) = if (!(h(o.caller)))
8888 then throw("access only to the DAO owner")
8989 else if ((b((("working_group_member_" + p) + "_weight")) == 1))
9090 then throw("This user already exists")
9191 else {
9292 let q = j()
9393 let r = ((q + ";") + p)
9494 let s = b("working_group_size")
9595 let t = (s + 1)
9696 WriteSet([DataEntry("working_group_name", r), DataEntry("working_group_size", t), DataEntry((("working_group_member_" + p) + "_weight"), 1)])
9797 }
9898
9999
100100
101101 @Callable(o)
102102 func addTask (u,v) = if (!(l(o.caller)))
103103 then throw("grants working group access only")
104104 else WriteSet([DataEntry((("tasks_" + toBase58String(o.transactionId)) + "_title"), u), DataEntry((("tasks_" + toBase58String(o.transactionId)) + "_link"), v)])
105105
106106
107107
108108 @Callable(o)
109109 func addTaskDetails (w) = if (!(l(o.caller)))
110110 then throw("grants working group access only")
111111 else {
112112 let x = extract(o.payment).amount
113113 WriteSet([DataEntry((("tasks_" + w) + "_reward"), x), DataEntry((("tasks_" + w) + "_status"), "proposed")])
114114 }
115115
116116
117117
118118 @Callable(o)
119119 func voteForTaskProposal (w,y) = if (!(n(o)))
120120 then throw("you can't vote")
121121 else if ((getStringValue(this, (("tasks_" + w) + "_status")) != "proposed"))
122122 then throw("voting is closed or not started")
123- else if (if ((y != -1))
124- then (y != 1)
123+ else if (if ((y != "like"))
124+ then (y != "dislike")
125125 else false)
126- then throw("you need to vote 1 or -1")
126+ then throw("you need to vote like or dislike")
127127 else {
128- let z = ((("tasks_" + w) + "_voted_") + toString(o.caller))
129- let A = b(z)
130- let B = (("tasks_" + w) + "_voting_state")
128+ func z (A) = if ((A == "like"))
129+ then 1
130+ else -1
131+
132+ let B = ((("tasks_" + w) + "_voted_") + toString(o.caller))
131133 let C = b(B)
132- let D = (("tasks_" + w) + "_voting_amount")
133- let E = (b(B) + 1)
134- let F = (C + y)
135- ScriptResult(WriteSet([DataEntry(B, F), DataEntry(z, y), DataEntry(D, E)]), TransferSet([ScriptTransfer(o.caller, 500000, unit)]))
134+ let D = (("tasks_" + w) + "_voting_state")
135+ let E = b(D)
136+ let F = (("tasks_" + w) + "_voting_amount")
137+ let G = (b(D) + 1)
138+ let H = (E + z(y))
139+ ScriptResult(WriteSet([DataEntry(D, H), DataEntry(B, z(y)), DataEntry(F, G)]), TransferSet([ScriptTransfer(o.caller, 500000, unit)]))
136140 }
137141
138142
139143
140144 @Callable(o)
141145 func finishTaskProposalVoting (w) = if ((a > ((b((("tasks_" + w) + "_voting_amount")) * 100) / b("dao_size"))))
142146 then throw((("more than " + toString(a)) + "% members have to vote before finishing the voting"))
143147 else if (!(l(o.caller)))
144148 then throw("grants working group access only")
145149 else {
146- let B = (("tasks_" + w) + "_voting_state")
147- let C = b(B)
148- if ((C > 0))
150+ let D = (("tasks_" + w) + "_voting_state")
151+ let E = b(D)
152+ if ((E > 0))
149153 then {
150- let G = "ready_to_apply"
151- WriteSet([DataEntry((("tasks_" + w) + "_status"), G)])
154+ let I = "ready_to_apply"
155+ WriteSet([DataEntry((("tasks_" + w) + "_status"), I)])
152156 }
153157 else {
154- let G = "rejected"
155- WriteSet([DataEntry((("tasks_" + w) + "_status"), G)])
158+ let I = "rejected"
159+ WriteSet([DataEntry((("tasks_" + w) + "_status"), I)])
156160 }
157161 }
158162
159163
160164
161165 @Callable(o)
162-func applyForTask (w,H,v) = {
163- let I = g((("tasks_" + w) + "_status"))
164- if ((I != "ready_to_apply"))
166+func applyForTask (w,J,v) = {
167+ let K = g((("tasks_" + w) + "_status"))
168+ if ((K != "ready_to_apply"))
165169 then throw("this grant has not yet been approved")
166170 else {
167- let J = (("tasks_" + w) + "_applicants")
168- let K = g(J)
169- let L = drop(toString(o.caller), 10)
170- let M = ((K + ";") + toString(o.caller))
171- WriteSet([DataEntry((((("tasks_" + w) + "_app_") + L) + "_name"), H), DataEntry((((("tasks_" + w) + "_app_") + L) + "_link"), v), DataEntry((((("tasks_" + w) + "_app_") + L) + "_leader"), toString(o.caller)), DataEntry((((("tasks_" + w) + "_app_") + L) + "_id"), L), DataEntry(J, M)])
171+ let L = (("tasks_" + w) + "_applicants")
172+ let M = g(L)
173+ let N = drop(toString(o.caller), 10)
174+ let O = ((M + ";") + toString(o.caller))
175+ WriteSet([DataEntry((((("tasks_" + w) + "_app_") + N) + "_name"), J), DataEntry((((("tasks_" + w) + "_app_") + N) + "_link"), v), DataEntry((((("tasks_" + w) + "_app_") + N) + "_leader"), toString(o.caller)), DataEntry((((("tasks_" + w) + "_app_") + N) + "_id"), N), DataEntry(L, O)])
172176 }
173177 }
174178
175179
176180
177181 @Callable(o)
178-func voteForApplicant (w,N,y) = if (!(n(o)))
182+func voteForApplicant (w,P,y) = if (!(n(o)))
179183 then throw("you can't vote")
180184 else {
181- let O = (drop(toString(o.caller), 10) + drop(N, 10))
182- let z = ((("tasks_" + w) + "_vote_") + O)
183- let P = b(z)
184- if ((P != 0))
185+ let Q = (drop(toString(o.caller), 10) + drop(P, 10))
186+ let B = ((("tasks_" + w) + "_vote_") + Q)
187+ let A = b(B)
188+ if ((A != 0))
185189 then throw("you have already voted on this team")
186190 else {
187- let Q = (((("tasks_" + w) + "_app_") + N) + "_votes")
188- let R = (((("tasks_" + w) + "_app_") + N) + "_score")
189- let S = (1 + b(Q))
190- let T = (y + b(R))
191- WriteSet([DataEntry(z, y), DataEntry(R, T)])
191+ let R = (((("tasks_" + w) + "_app_") + P) + "_votes")
192+ let S = (((("tasks_" + w) + "_app_") + P) + "_score")
193+ let T = (1 + b(R))
194+ let U = (y + b(S))
195+ WriteSet([DataEntry(B, y), DataEntry(S, U)])
192196 }
193197 }
194198
195199
196200
197201 @Callable(o)
198202 func finishApplicantsVoting (w) = {
199- func U (V,W) = {
200- let J = (("tasks_" + w) + "_applicants")
201- let X = split(getStringValue(this, J), ";")
202- let N = X[V]
203- let Q = (((("tasks_" + w) + "_app_") + N) + "_votes")
204- let S = b(Q)
205- if ((S > 0))
203+ func V (W,X) = {
204+ let L = (("tasks_" + w) + "_applicants")
205+ let Y = split(getStringValue(this, L), ";")
206+ let P = Y[W]
207+ let R = (((("tasks_" + w) + "_app_") + P) + "_votes")
208+ let T = b(R)
209+ if ((T > 0))
206210 then 1
207- else throw(("not enough votes to make decision on " + N))
211+ else throw(("not enough votes to make decision on " + P))
208212 }
209213
210- func Y (V,W) = {
211- let J = (("tasks_" + w) + "_applicants")
212- let X = split(getStringValue(this, J), ";")
213- let N = X[V]
214- let Q = (((("tasks_" + w) + "_app_") + N) + "_votes")
215- let S = b(Q)
216- let Z = X[W]
217- let aa = (((("tasks_" + w) + "_app_") + Z) + "_votes")
218- let ab = b(aa)
219- if ((S > ab))
220- then V
221- else W
214+ func Z (W,X) = {
215+ let L = (("tasks_" + w) + "_applicants")
216+ let Y = split(getStringValue(this, L), ";")
217+ let P = Y[W]
218+ let R = (((("tasks_" + w) + "_app_") + P) + "_votes")
219+ let T = b(R)
220+ let aa = Y[X]
221+ let ab = (((("tasks_" + w) + "_app_") + aa) + "_votes")
222+ let ac = b(ab)
223+ if ((T > ac))
224+ then W
225+ else X
222226 }
223227
224228 if (!(l(o.caller)))
225229 then throw("grants working group access only")
226230 else {
227- let ac = g((("tasks_" + w) + "_applicants"))
228- let X = split(ac, ";")
229- if ((size(X) == 0))
231+ let ad = g((("tasks_" + w) + "_applicants"))
232+ let Y = split(ad, ";")
233+ if ((size(Y) == 0))
230234 then throw("No one has yet responded to the grant")
231235 else {
232- let ad = {
233- let ae = [0, 1]
234- let af = size(ae)
235- let ag = 0
236- if ((af == 0))
237- then ag
236+ let ae = {
237+ let af = [0, 1]
238+ let ag = size(af)
239+ let ah = 0
240+ if ((ag == 0))
241+ then ah
238242 else {
239- let ah = Y(ag, ae[0])
240- if ((af == 1))
241- then ah
243+ let ai = Z(ah, af[0])
244+ if ((ag == 1))
245+ then ai
242246 else {
243- let ai = Y(ah, ae[1])
244- if ((af == 2))
245- then ai
247+ let aj = Z(ai, af[1])
248+ if ((ag == 2))
249+ then aj
246250 else {
247- let aj = Y(ai, ae[2])
251+ let ak = Z(aj, af[2])
248252 throw("List size exceed 2")
249253 }
250254 }
251255 }
252256 }
253- let N = X[ad]
254- WriteSet([DataEntry((("tasks_" + w) + "_status"), "team_chosen"), DataEntry((("tasks_" + w) + "_performer"), N), DataEntry((((("tasks_" + w) + "_app_") + N) + "_process"), "can_begin")])
257+ let P = Y[ae]
258+ WriteSet([DataEntry((("tasks_" + w) + "_status"), "team_chosen"), DataEntry((("tasks_" + w) + "_performer"), P), DataEntry((((("tasks_" + w) + "_app_") + P) + "_process"), "can_begin")])
255259 }
256260 }
257261 }
258262
259263
260264
261265 @Callable(o)
262266 func startWork (w) = {
263- let N = getStringValue(this, (("tasks_" + w) + "_performer"))
264- if ((toString(o.caller) != getStringValue(this, (((("tasks_" + w) + "_app_") + N) + "_leader"))))
267+ let P = getStringValue(this, (("tasks_" + w) + "_performer"))
268+ if ((toString(o.caller) != getStringValue(this, (((("tasks_" + w) + "_app_") + P) + "_leader"))))
265269 then throw("team leader only")
266- else WriteSet([DataEntry((("tasks_" + w) + "_status"), "work_started"), DataEntry((((("tasks_" + w) + "_app_") + N) + "_process"), "work_started")])
270+ else WriteSet([DataEntry((("tasks_" + w) + "_status"), "work_started"), DataEntry((((("tasks_" + w) + "_app_") + P) + "_process"), "work_started")])
267271 }
268272
269273
270274
271275 @Callable(o)
272276 func acceptWorkResult (w) = if (!(l(o.caller)))
273277 then throw("grants working group access only")
274278 else {
275- let ak = b((("tasks_" + w) + "_reward"))
276- let N = getStringValue(this, (("tasks_" + w) + "_performer"))
277- let al = getStringValue(this, (((("tasks_" + w) + "_app_") + N) + "_leader"))
278- ScriptResult(WriteSet([DataEntry((("tasks_" + w) + "_status"), "work_finished"), DataEntry((((("tasks_" + w) + "_app_") + N) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(al), ak, unit)]))
279+ let al = b((("tasks_" + w) + "_reward"))
280+ let P = getStringValue(this, (("tasks_" + w) + "_performer"))
281+ let am = getStringValue(this, (((("tasks_" + w) + "_app_") + P) + "_leader"))
282+ ScriptResult(WriteSet([DataEntry((("tasks_" + w) + "_status"), "work_finished"), DataEntry((((("tasks_" + w) + "_app_") + P) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(am), al, unit)]))
279283 }
280284
281285

github/deemru/w8io/169f3d6 
78.19 ms