tx · 8aUtk8TadxZmkTUXnP5hiTSVPrsVMgFytVq5dyHek53X

3MzTHd4e3yukNUURApVLVzH5uxeEsXHD6yY:  -0.01400000 Waves

2021.07.16 13:30 [1616041] smart account 3MzTHd4e3yukNUURApVLVzH5uxeEsXHD6yY > SELF 0.00000000 Waves

{ "type": 13, "id": "8aUtk8TadxZmkTUXnP5hiTSVPrsVMgFytVq5dyHek53X", "fee": 1400000, "feeAssetId": null, "timestamp": 1626431392793, "version": 2, "chainId": 84, "sender": "3MzTHd4e3yukNUURApVLVzH5uxeEsXHD6yY", "senderPublicKey": "DhKV985fxsz63vhWDNTF3gWwe7AHS4RsGjR2BzThJRYa", "proofs": [ "5w1y43oo1Zge1h91t7dWJCg5FMd7gJn1WTF31gR5Z1mHJYHWu6hm9sCDeNrkr2MDMKrdz2NXTXNSBzRp8CJzVgUR", "2CqBrtQwA5tXjx2b7HbdZqJDq1rEL1njQyAnSxtXeLtTvbN2kGeqyQEcQ5Tb63HXjfbj4zNMW3gyySR7k3cCDQ4j" ], "script": "base64:AAIFAAAAAAAAABkIAhIAEgMKAQESABIDCgEBEgASABIDCgEBAAAAQAAAAAAHdmVyc2lvbgIAAAAFMS4wLjAAAAAACmtleVZlcnNpb24CAAAAB3ZlcnNpb24AAAAACWtleUFjdGl2ZQIAAAAGYWN0aXZlAAAAAAtrZXlBc3NldElkQQIAAAAKQV9hc3NldF9pZAAAAAALa2V5QXNzZXRJZEICAAAACkJfYXNzZXRfaWQAAAAAC2tleUJhbGFuY2VBAgAAAA9BX2Fzc2V0X2JhbGFuY2UAAAAAC2tleUJhbGFuY2VCAgAAAA9CX2Fzc2V0X2JhbGFuY2UAAAAAD2tleVNoYXJlQXNzZXRJZAIAAAAOc2hhcmVfYXNzZXRfaWQAAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkCAAAAEnNoYXJlX2Fzc2V0X3N1cHBseQAAAAANa2V5Q29tbWlzc2lvbgIAAAAKY29tbWlzc2lvbgAAAAAba2V5Q29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAgAAABpjb21taXNzaW9uX3NjYWxlX2RlbGltaXRlcgAAAAAIa2V5Q2F1c2UCAAAADnNodXRkb3duX2NhdXNlAAAAAA9rZXlBZG1pblB1YktleTECAAAAC2FkbWluX3B1Yl8xAAAAAA9rZXlBZG1pblB1YktleTICAAAAC2FkbWluX3B1Yl8yAAAAAA9rZXlBZG1pblB1YktleTMCAAAAC2FkbWluX3B1Yl8zAAAAAAZvcmFjbGUJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTpRaoekC86rvG6DuYumpJfGpiE4fNiswgBAAAAC2dldEFkbWluUHViAAAAAQAAAAtrZXlBZG1pblB1YgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAZvcmFjbGUFAAAAC2tleUFkbWluUHViAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnN0cmluZwUAAAAHJG1hdGNoMAkAAlkAAAABBQAAAAZzdHJpbmcEAAAAB25vdGhpbmcFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAZQWRtaW4gcHVibGljIGtleSBpcyBlbXB0eQAAAAAMYWRtaW5QdWJLZXkxCQEAAAALZ2V0QWRtaW5QdWIAAAABBQAAAA9rZXlBZG1pblB1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bnRCCQEAAAAMc3Rha2VkQW1vdW50AAAAAgUAAAASc3Rha2luZ0FkZHJlc3NVU0ROBQAAAAtzdHJBc3NldElkQgAAAAARYXZhaWxhYmxlQmFsYW5jZUEJAABlAAAAAgUAAAAIYmFsYW5jZUEFAAAADXN0YWtlZEFtb3VudEEAAAAAEWF2YWlsYWJsZUJhbGFuY2VCCQAAZQAAAAIFAAAACGJhbGFuY2VCBQAAAA1zdGFrZWRBbW91bnRCAAAAABlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRBCQAAZAAAAAIJAQAAAA5hY2NvdW50QmFsYW5jZQAAAAEFAAAACGFzc2V0SWRBBQAAAA1zdGFrZWRBbW91bnRBAAAAABlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRCCQAAZAAAAAIJAQAAAA5hY2NvdW50QmFsYW5jZQAAAAEFAAAACGFzc2V0SWRCBQAAAA1zdGFrZWRBbW91bnRCAAAAABBoYXNFbm91Z2hCYWxhbmNlAwkAAGcAAAACBQAAABlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRBBQAAAAhiYWxhbmNlQQkAAGcAAAACBQAAABlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRCBQAAAAhiYWxhbmNlQgcBAAAADGdldEFzc2V0SW5mbwAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACaWQFAAAAByRtYXRjaDAEAAAACHN0cmluZ0lkCQACWAAAAAEFAAAAAmlkBAAAAARpbmZvCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQUAAAACaWQJAAEsAAAAAgkAASwAAAACAgAAAAZBc3NldCAFAAAACHN0cmluZ0lkAgAAAA4gZG9lc24ndCBleGlzdAkABRUAAAADBQAAAAhzdHJpbmdJZAgFAAAABGluZm8AAAAEbmFtZQgFAAAABGluZm8AAAAIZGVjaW1hbHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAABXdhdmVzBQAAAAckbWF0Y2gwCQAFFQAAAAMCAAAABVdBVkVTAgAAAAVXQVZFUwAAAAAAAAAACAkA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DXNoYXJlRGVjaW1hbHMAAAAAAAAAAAAAAAAAAAAAAAAFAAAABERPV04EAAAACnNoYXJlSXNzdWUJAARCAAAABQUAAAAJc2hhcmVOYW1lBQAAABBzaGFyZURlc2NyaXB0aW9uBQAAABJzaGFyZUluaXRpYWxTdXBwbHkFAAAADXNoYXJlRGVjaW1hbHMGBAAAAAxzaGFyZUlzc3VlSWQJAAQ4AAAAAQUAAAAKc2hhcmVJc3N1ZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAprZXlWZXJzaW9uBQAAAAd2ZXJzaW9uCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAlrZXlBY3RpdmUGCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAC2tleUFzc2V0SWRBBQAAAA5wbXRTdHJBc3NldElkQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAtrZXlBc3NldElkQgUAAAAOcG10U3RyQXNzZXRJZEIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VBBQAAAApwbXRBbW91bnRBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQgUAAAAKcG10QW1vdW50QgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5Q29tbWlzc2lvbgUAAAAKY29tbWlzc2lvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAba2V5Q29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIJAARMAAAAAgUAAAAKc2hhcmVJc3N1ZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA9rZXlTaGFyZUFzc2V0SWQJAAJYAAAAAQUAAAAMc2hhcmVJc3N1ZUlkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNrZXlTaGFyZUFzc2V0U3VwcGx5BQAAABJzaGFyZUluaXRpYWxTdXBwbHkJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABJzaGFyZUluaXRpYWxTdXBwbHkFAAAADHNoYXJlSXNzdWVJZAUAAAADbmlsAAAAAWkBAAAAFnJlcGxlbmlzaFdpdGhUd29Ub2tlbnMAAAABAAAAEXNsaXBwYWdlVG9sZXJhbmNlBAAAAAtwbXRBc3NldElkQQgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAALcG10QXNzZXRJZEIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABAAAAB2Fzc2V0SWQEAAAACnBtdEFtb3VudEEJAQAAABBkZWR1Y3RTdGFraW5nRmVlAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50BQAAAAtwbXRBc3NldElkQQQAAAAKcG10QW1vdW50QgkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQAAAAZhbW91bnQFAAAAC3BtdEFzc2V0SWRCBAAAAAp0b2tlblJhdGlvCQAAawAAAAMJAABrAAAAAwUAAAAIYmFsYW5jZUEFAAAAC3NjYWxlVmFsdWU4BQAAAApwbXRBbW91bnRBBQAAAAtzY2FsZVZhbHVlMwkAAGsAAAADBQAAAAhiYWxhbmNlQgUAAAALc2NhbGVWYWx1ZTgFAAAACnBtdEFtb3VudEIEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkEJAABrAAAAAwUAAAAKcG10QW1vdW50QQUAAAALc2NhbGVWYWx1ZTgFAAAACGJhbGFuY2VBBAAAABNyYXRpb1NoYXJlVG9rZW5zSW5CCQAAawAAAAMFAAAACnBtdEFtb3VudEIFAAAAC3NjYWxlVmFsdWU4BQAAAAhiYWxhbmNlQgQAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAAawAAAAMJAAGXAAAAAQkABEwAAAACBQAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIFAAAAA25pbAUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAALc2NhbGVWYWx1ZTgDCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQDAwkAAGYAAAACAAAAAAAAAAAABQAAABFzbGlwcGFnZVRvbGVyYW5jZQYJAABmAAAAAgUAAAARc2xpcHBhZ2VUb2xlcmFuY2UFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAKVNsaXBwYWdlIHRvbGVyYW5jZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgCQABpAAAAAEFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyAgAAABYgaW5jbHVzaXZlbHkuIEFjdHVhbDogCQABpAAAAAEFAAAAEXNsaXBwYWdlVG9sZXJhbmNlAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAgkAAAIAAAABAgAAABxUd28gYXR0YWNoZWQgYXNzZXRzIGV4cGVjdGVkAwMJAQAAAAIhPQAAAAIFAAAAC3BtdEFzc2V0SWRBBQAAAAhhc3NldElkQQYJAQAAAAIhPQAAAAIFAAAAC3BtdEFzc2V0SWRCBQAAAAhhc3NldElkQgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACVJbmNvcnJlY3QgYXNzZXRzIGF0dGFjaGVkLiBFeHBlY3RlZDogBQAAAAtzdHJBc3NldElkQQIAAAAFIGFuZCAFAAAAC3N0ckFzc2V0SWRCAwMJAABmAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWUzCQAAZQAAAAIFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIFAAAACnRva2VuUmF0aW8GCQAAZgAAAAIFAAAACnRva2VuUmF0aW8JAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlMwkAAGQAAAACBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgUAAAARc2xpcHBhZ2VUb2xlcmFuY2UFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyCQAAAgAAAAECAAAAPUluY29ycmVjdCBhc3NldHMgYW1vdW50OiBhbW91bnRzIG11c3QgaGF2ZSB0aGUgY29udHJhY3QgcmF0aW8DCQAAAAAAAAIFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAAB1Ub28gc21hbGwgYW1vdW50IHRvIHJlcGxlbmlzaAMJAQAAAAEhAAAAAQUAAAAQaGFzRW5vdWdoQmFsYW5jZQkABE4AAAACCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAKcG10QW1vdW50QQUAAAALcG10QXNzZXRJZEEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAApwbXRBbW91bnRCBQAAAAtwbXRBc3NldElkQgUAAAADbmlsCQEAAAARc3VzcGVuZFN1c3BpY2lvdXMAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAAKcG10QW1vdW50QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACnBtdEFtb3VudEIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkJAABkAAAAAgUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAAMc2hhcmVBc3NldElkBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50BQAAAAxzaGFyZUFzc2V0SWQFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAAEAAAADSR0MDEwMzIxMTA0NzEJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAlwbXRBbW91bnQIBQAAAA0kdDAxMDMyMTEwNDcxAAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAANJHQwMTAzMjExMDQ3MQAAAAJfMgQAAAAMYW1vdW50VG9QYXlBCQEAAAAQZGVkdWN0U3Rha2luZ0ZlZQAAAAIJAABrAAAAAwUAAAAJcG10QW1vdW50BQAAAAhiYWxhbmNlQQUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAIYXNzZXRJZEEEAAAADGFtb3VudFRvUGF5QgkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAACCQAAawAAAAMFAAAACXBtdEFtb3VudAUAAAAIYmFsYW5jZUIFAAAAEHNoYXJlQXNzZXRTdXBwbHkFAAAACGFzc2V0SWRCAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAAB1PbmUgYXR0YWNoZWQgcGF5bWVudCBleHBlY3RlZAMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAADHNoYXJlQXNzZXRJZAkAAAIAAAABCQABLAAAAAICAAAAJEluY29ycmVjdCBhc3NldCBhdHRhY2hlZC4gRXhwZWN0ZWQ6IAkAAlgAAAABBQAAAAxzaGFyZUFzc2V0SWQDCQEAAAABIQAAAAEFAAAAEGhhc0Vub3VnaEJhbGFuY2UJAAROAAAAAgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACXBtdEFtb3VudAUAAAAKcG10QXNzZXRJZAUAAAADbmlsCQEAAAARc3VzcGVuZFN1c3BpY2lvdXMAAAAAAwMJAABmAAAAAgUAAAAMYW1vdW50VG9QYXlBBQAAABFhdmFpbGFibGVCYWxhbmNlQQYJAABmAAAAAgUAAAAMYW1vdW50VG9QYXlCBQAAABFhdmFpbGFibGVCYWxhbmNlQgkBAAAAInRocm93SW5zdWZmaWNpZW50QXZhaWxhYmxlQmFsYW5jZXMAAAACBQAAAAxhbW91bnRUb1BheUEFAAAADGFtb3VudFRvUGF5QgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEJAABlAAAAAgUAAAAIYmFsYW5jZUEFAAAADGFtb3VudFRvUGF5QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIJAABlAAAAAgUAAAAIYmFsYW5jZUIFAAAADGFtb3VudFRvUGF5QgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa2V5U2hhcmVBc3NldFN1cHBseQkAAGUAAAACBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAAAlwbXRBbW91bnQJAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAAxzaGFyZUFzc2V0SWQFAAAACXBtdEFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADGFtb3VudFRvUGF5QQUAAAAIYXNzZXRJZEEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAxhbW91bnRUb1BheUIFAAAACGFzc2V0SWRCBQAAAANuaWwAAAABaQEAAAAIZXhjaGFuZ2UAAAABAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQQAAAANJHQwMTE2NzgxMTc1MwkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAADSR0MDExNjc4MTE3NTMAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAA0kdDAxMTY3ODExNzUzAAAAAl8yCgEAAAANY2FsY3VsYXRlRmVlcwAAAAIAAAAJdG9rZW5Gcm9tAAAAB3Rva2VuVG8EAAAAEGFtb3VudFdpdGhvdXRGZWUJAABrAAAAAwUAAAAHdG9rZW5UbwUAAAAJcG10QW1vdW50CQAAZAAAAAIFAAAACXBtdEFtb3VudAUAAAAJdG9rZW5Gcm9tBAAAAA1hbW91bnRXaXRoRmVlCQAAawAAAAMFAAAAEGFtb3VudFdpdGhvdXRGZWUJAABlAAAAAgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAApjb21taXNzaW9uBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIEAAAAEGdvdmVybmFuY2VSZXdhcmQJAABrAAAAAwUAAAAQYW1vdW50V2l0aG91dEZlZQUAAAAUY29tbWlzc2lvbkdvdmVybmFuY2UFAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgMJAABmAAAAAgUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAA1hbW91bnRXaXRoRmVlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHUNhbGN1bGF0ZWQgYW1vdW50IHRvIHJlY2VpdmUgCQABpAAAAAEFAAAADWFtb3VudFdpdGhGZWUCAAAAICBpcyBsZXNzIHRoYW4gc3BlY2lmaWVkIG1pbmltdW0gCQABpAAAAAEFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQkABRUAAAADBQAAABBhbW91bnRXaXRob3V0RmVlBQAAAA1hbW91bnRXaXRoRmVlBQAAABBnb3Zlcm5hbmNlUmV3YXJkAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkAAGcAAAACAAAAAAAAAAAABQAAABJtaW5BbW91bnRUb1JlY2VpdmUJAAACAAAAAQkAASwAAAACAgAAADRNaW5pbWFsIGFtb3VudCB0byByZWNlaXZlIG11c3QgYmUgcG9zaXRpdmUuIEFjdHVhbDogCQABpAAAAAEFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAdT25lIGF0dGFjaGVkIHBheW1lbnQgZXhwZWN0ZWQDCQEAAAABIQAAAAEFAAAAEGhhc0Vub3VnaEJhbGFuY2UJAAROAAAAAgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACXBtdEFtb3VudAUAAAAKcG10QXNzZXRJZAUAAAADbmlsCQEAAAARc3VzcGVuZFN1c3BpY2lvdXMAAAAAAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQQQAAAALYXNzZXRJZFNlbmQFAAAACGFzc2V0SWRCBAAAAA0kdDAxMjkyOTEzMDIwCQEAAAANY2FsY3VsYXRlRmVlcwAAAAIFAAAACGJhbGFuY2VBBQAAAAhiYWxhbmNlQgQAAAAQYW1vdW50V2l0aG91dEZlZQgFAAAADSR0MDEyOTI5MTMwMjAAAAACXzEEAAAADWFtb3VudFdpdGhGZWUIBQAAAA0kdDAxMjkyOTEzMDIwAAAAAl8yBAAAABBnb3Zlcm5hbmNlUmV3YXJkCAUAAAANJHQwMTI5MjkxMzAyMAAAAAJfMwQAAAALbmV3QmFsYW5jZUEJAABkAAAAAgUAAAAIYmFsYW5jZUEFAAAACXBtdEFtb3VudAQAAAALbmV3QmFsYW5jZUIJAABlAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQgUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAMDCQAAZwAAAAIFAAAADXN0YWtlZEFtb3VudEEFAAAAC25ld0JhbGFuY2VBBgkAAGcAAAACBQAAAA1zdGFrZWRBbW91bnRCBQAAAAtuZXdCYWxhbmNlQgkBAAAAIXRocm93SW5zdWZmaWNpZW50QXZhaWxhYmxlQmFsYW5jZQAAAAMFAAAADWFtb3VudFdpdGhGZWUFAAAAEWF2YWlsYWJsZUJhbGFuY2VCBQAAAAphc3NldE5hbWVCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAAtuZXdCYWxhbmNlQgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWFtb3VudFdpdGhGZWUFAAAAC2Fzc2V0SWRTZW5kCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEWdvdmVybmFuY2VBZGRyZXNzBQAAABBnb3Zlcm5hbmNlUmV3YXJkBQAAAAthc3NldElkU2VuZAUAAAADbmlsAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQgQAAAALYXNzZXRJZFNlbmQFAAAACGFzc2V0SWRBBAAAAA0kdDAxMzg0MzEzOTM0CQEAAAANY2FsY3VsYXRlRmVlcwAAAAIFAAAACGJhbGFuY2VCBQAAAAhiYWxhbmNlQQQAAAAQYW1vdW50V2l0aG91dEZlZQgFAAAADSR0MDEzODQzMTM5MzQAAAACXzEEAAAADWFtb3VudFdpdGhGZWUIBQAAAA0kdDAxMzg0MzEzOTM0AAAAAl8yBAAAABBnb3Zlcm5hbmNlUmV3YXJkCAUAAAANJHQwMTM4NDMxMzkzNAAAAAJfMwQAAAALbmV3QmFsYW5jZUEJAABlAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAQAAAALbmV3QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAMDCQAAZwAAAAIFAAAADXN0YWtlZEFtb3VudEEFAAAAC25ld0JhbGFuY2VBBgkAAGcAAAACBQAAAA1zdGFrZWRBbW91bnRCBQAAAAtuZXdCYWxhbmNlQgkBAAAAIXRocm93SW5zdWZmaWNpZW50QXZhaWxhYmxlQmFsYW5jZQAAAAMFAAAADWFtb3VudFdpdGhGZWUFAAAAEWF2YWlsYWJsZUJhbGFuY2VBBQAAAAphc3NldE5hbWVBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAAtuZXdCYWxhbmNlQgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWFtb3VudFdpdGhGZWUFAAAAC2Fzc2V0SWRTZW5kCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEWdvdmVybmFuY2VBZGRyZXNzBQAAABBnb3Zlcm5hbmNlUmV3YXJkBQAAAAthc3NldElkU2VuZAUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJEluY29ycmVjdCBhc3NldCBhdHRhY2hlZC4gRXhwZWN0ZWQ6IAUAAAALc3RyQXNzZXRJZEECAAAABCBvciAFAAAAC3N0ckFzc2V0SWRCAAAAAWkBAAAACHNodXRkb3duAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQkAASwAAAACAgAAACJEQXBwIGlzIGFscmVhZHkgc3VzcGVuZGVkLiBDYXVzZTogCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAACGtleUNhdXNlAgAAABp0aGUgY2F1c2Ugd2Fzbid0IHNwZWNpZmllZAMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMJAARMAAAAAgUAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3AFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgkBAAAAB3N1c3BlbmQAAAABAgAAAA9QYXVzZWQgYnkgYWRtaW4AAAABaQEAAAAIYWN0aXZhdGUAAAAAAwUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAWREFwcCBpcyBhbHJlYWR5IGFjdGl2ZQMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMJAARMAAAAAgUAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3AFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAhrZXlDYXVzZQUAAAADbmlsAAAAAWkBAAAAGXRha2VJbnRvQWNjb3VudEV4dHJhRnVuZHMAAAABAAAAC2Ftb3VudExlYXZlBAAAAB11bmNvdW50YWJsZUFtb3VudEVucm9sbEFzc2V0QQkAAGUAAAACBQAAABlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRBBQAAAAhiYWxhbmNlQQQAAAAddW5jb3VudGFibGVBbW91bnRFbnJvbGxBc3NldEIJAABlAAAAAgUAAAAZYWNjb3VudEJhbGFuY2VXaXRoU3Rha2VkQgUAAAAIYmFsYW5jZUIEAAAADWFtb3VudEVucm9sbEEJAABlAAAAAgUAAAAddW5jb3VudGFibGVBbW91bnRFbnJvbGxBc3NldEEDCQAAAAAAAAIFAAAACGFzc2V0SWRBBQAAAAR1bml0BQAAAAthbW91bnRMZWF2ZQAAAAAAAAAAAAQAAAANYW1vdW50RW5yb2xsQgkAAGUAAAACBQAAAB11bmNvdW50YWJsZUFtb3VudEVucm9sbEFzc2V0QgMJAAAAAAAAAgUAAAAIYXNzZXRJZEIFAAAABHVuaXQFAAAAC2Ftb3VudExlYXZlAAAAAAAAAAAAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAK09ubHkgdGhlIERBcHAgaXRzZWxmIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24DCQAAZgAAAAIAAAAAAAAAAAAFAAAAC2Ftb3VudExlYXZlCQAAAgAAAAEJAAEsAAAAAgIAAAAzQXJndW1lbnQgJ2Ftb3VudExlYXZl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", "height": 1616041, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Aw1hAEy7VbtB2xqNQAtyNJ4kB8zKPcnJLJQGVmn6X5o9 Next: FoJ77V4Jxpg9AQ7nFL7hfoja2hbUofMCNS5oCMnuC7Jx Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 4 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
2525
2626 let l = "shutdown_cause"
2727
28-let m = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
28+let m = "admin_pub_1"
2929
30-let n = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
30+let n = "admin_pub_2"
3131
32-let o = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
32+let o = "admin_pub_3"
3333
34-let p = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
34+let p = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
3535
36-let q = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
36+func q (r) = {
37+ let s = getString(p, r)
38+ if ($isInstanceOf(s, "String"))
39+ then {
40+ let t = s
41+ fromBase58String(t)
42+ }
43+ else {
44+ let u = s
45+ throw("Admin public key is empty")
46+ }
47+ }
3748
38-let r = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
3949
40-let s = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
50+let v = q(m)
4151
42-let t = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
52+let w = q(n)
4353
44-let u = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9'
54+let x = q(o)
4555
46-let v = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
56+let y = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4757
48-let w = Address(base58'3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37')
58+let z = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4959
50-let x = Address(base58'3MzTHd4e3yukNUURApVLVzH5uxeEsXHD6yY')
60+let A = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
5161
52-let y = 270000
62+let B = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
5363
54-let z = getBooleanValue(this, c)
64+let C = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
5565
56-let A = getStringValue(this, d)
66+let D = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9'
5767
58-let B = getStringValue(this, e)
68+let E = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
5969
60-let C = if ((A == "WAVES"))
70+let F = Address(base58'3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37')
71+
72+let G = Address(base58'3MzTHd4e3yukNUURApVLVzH5uxeEsXHD6yY')
73+
74+let H = 270000
75+
76+let I = getBooleanValue(this, c)
77+
78+let J = getStringValue(this, d)
79+
80+let K = getStringValue(this, e)
81+
82+let L = if ((J == "WAVES"))
6183 then unit
62- else fromBase58String(A)
84+ else fromBase58String(J)
6385
64-let D = if ((B == "WAVES"))
86+let M = if ((K == "WAVES"))
6587 then unit
66- else fromBase58String(B)
88+ else fromBase58String(K)
6789
68-let E = {
69- let F = C
70- if ($isInstanceOf(F, "ByteVector"))
90+let N = {
91+ let s = L
92+ if ($isInstanceOf(s, "ByteVector"))
7193 then {
72- let G = F
73- value(assetInfo(G)).name
94+ let O = s
95+ value(assetInfo(O)).name
7496 }
75- else if ($isInstanceOf(F, "Unit"))
97+ else if ($isInstanceOf(s, "Unit"))
7698 then {
77- let H = F
99+ let P = s
78100 "WAVES"
79101 }
80102 else throw("Match error")
81103 }
82104
83-let I = {
84- let F = D
85- if ($isInstanceOf(F, "ByteVector"))
105+let Q = {
106+ let s = M
107+ if ($isInstanceOf(s, "ByteVector"))
86108 then {
87- let G = F
88- value(assetInfo(G)).name
109+ let O = s
110+ value(assetInfo(O)).name
89111 }
90- else if ($isInstanceOf(F, "Unit"))
112+ else if ($isInstanceOf(s, "Unit"))
91113 then {
92- let H = F
114+ let P = s
93115 "WAVES"
94116 }
95117 else throw("Match error")
96118 }
97119
98-let J = getIntegerValue(this, f)
120+let R = getIntegerValue(this, f)
99121
100-let K = getIntegerValue(this, g)
122+let S = getIntegerValue(this, g)
101123
102-let L = fromBase58String(getStringValue(this, h))
124+let T = fromBase58String(getStringValue(this, h))
103125
104-let M = getIntegerValue(this, i)
126+let U = getIntegerValue(this, i)
105127
106-let N = 3000
128+let V = 3000
107129
108-let O = 1200
130+let W = 1200
109131
110-let P = 1000000
132+let X = 1000000
111133
112-let Q = 1000
134+let Y = 1000
113135
114-let R = 100000000
136+let Z = 100000000
115137
116-let S = 1000
138+let aa = 1000
117139
118-let T = 8
140+let ab = 8
119141
120-func U (V) = {
121- let F = V
122- if ($isInstanceOf(F, "ByteVector"))
142+func ac (ad) = {
143+ let s = ad
144+ if ($isInstanceOf(s, "ByteVector"))
123145 then {
124- let G = F
125- assetBalance(this, G)
146+ let O = s
147+ assetBalance(this, O)
126148 }
127- else if ($isInstanceOf(F, "Unit"))
149+ else if ($isInstanceOf(s, "Unit"))
128150 then {
129- let H = F
151+ let P = s
130152 wavesBalance(this).available
131153 }
132154 else throw("Match error")
133155 }
134156
135157
136-func W (X,Y) = {
137- let Z = {
138- let F = getInteger(X, ((("rpd_balance_" + Y) + "_") + toString(this)))
139- if ($isInstanceOf(F, "Int"))
158+func ae (af,ag) = {
159+ let ah = {
160+ let s = getInteger(af, ((("rpd_balance_" + ag) + "_") + toString(this)))
161+ if ($isInstanceOf(s, "Int"))
140162 then {
141- let aa = F
142- aa
163+ let ai = s
164+ ai
143165 }
144- else if ($isInstanceOf(F, "Unit"))
166+ else if ($isInstanceOf(s, "Unit"))
145167 then {
146- let ab = F
168+ let u = s
147169 0
148170 }
149171 else throw("Match error")
150172 }
151- Z
173+ ah
152174 }
153175
154176
155-let ac = W(s, A)
177+let aj = ae(B, J)
156178
157-let ad = W(s, B)
179+let ak = ae(B, K)
158180
159-let ae = (J - ac)
181+let al = (R - aj)
160182
161-let af = (K - ad)
183+let am = (S - ak)
162184
163-let ag = (U(C) + ac)
185+let an = (ac(L) + aj)
164186
165-let ah = (U(D) + ad)
187+let ao = (ac(M) + ak)
166188
167-let ai = if ((ag >= J))
168- then (ah >= K)
189+let ap = if ((an >= R))
190+ then (ao >= S)
169191 else false
170192
171-func aj (V) = {
172- let F = V
173- if ($isInstanceOf(F, "ByteVector"))
193+func aq (ad) = {
194+ let s = ad
195+ if ($isInstanceOf(s, "ByteVector"))
174196 then {
175- let G = F
176- let ak = toBase58String(G)
177- let al = valueOrErrorMessage(assetInfo(G), (("Asset " + ak) + " doesn't exist"))
178- $Tuple3(ak, al.name, al.decimals)
197+ let O = s
198+ let ar = toBase58String(O)
199+ let as = valueOrErrorMessage(assetInfo(O), (("Asset " + ar) + " doesn't exist"))
200+ $Tuple3(ar, as.name, as.decimals)
179201 }
180- else if ($isInstanceOf(F, "Unit"))
202+ else if ($isInstanceOf(s, "Unit"))
181203 then {
182- let H = F
204+ let P = s
183205 $Tuple3("WAVES", "WAVES", 8)
184206 }
185207 else throw("Match error")
186208 }
187209
188210
189-func am (an) = [BooleanEntry(c, false), StringEntry(l, an)]
211+func at (au) = [BooleanEntry(c, false), StringEntry(l, au)]
190212
191213
192-func ao () = {
193- let ap = if ((ac > 0))
214+func av () = {
215+ let aw = if ((aj > 0))
194216 then 1
195217 else 0
196- let aq = if ((ad > 0))
218+ let ax = if ((ak > 0))
197219 then 1
198220 else 0
199- (ap + aq)
221+ (aw + ax)
200222 }
201223
202224
203-func ar (as,V) = if ((V == t))
225+func ay (az,ad) = if ((ad == C))
204226 then {
205- let at = (as - (ao() * y))
206- if ((0 >= at))
207- then throw((((("Insufficient amount " + toString(as)) + " to deduct staking fee ") + toString(y)) + " USD-N"))
208- else at
227+ let aA = (az - (av() * H))
228+ if ((0 >= aA))
229+ then throw((((("Insufficient amount " + toString(az)) + " to deduct staking fee ") + toString(H)) + " USD-N"))
230+ else aA
209231 }
210- else as
232+ else az
211233
212234
213-func au (as,av,aw) = throw((((((((("Insufficient DApp balance to pay " + toString(as)) + " ") + aw) + " due to staking. Available: ") + toString(av)) + " ") + aw) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
235+func aB (az,aC,aD) = throw((((((((("Insufficient DApp balance to pay " + toString(az)) + " ") + aD) + " due to staking. Available: ") + toString(aC)) + " ") + aD) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
214236
215237
216-func ax (ay,az) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(ay)) + " ") + E) + " and ") + toString(az)) + " ") + I) + " due to staking. Available: ") + toString(ae)) + " ") + E) + " and ") + toString(af)) + " ") + I) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
238+func aE (aF,aG) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(aF)) + " ") + N) + " and ") + toString(aG)) + " ") + Q) + " due to staking. Available: ") + toString(al)) + " ") + N) + " and ") + toString(am)) + " ") + Q) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
217239
218240
219-func aA () = am(((((((((((((((("Suspicious state. Actual balances: " + toString(ag)) + " ") + E) + ", ") + toString(ah)) + " ") + I) + ". State: ") + toString(J)) + " ") + E) + ", ") + toString(K)) + " ") + I))
241+func aH () = at(((((((((((((((("Suspicious state. Actual balances: " + toString(an)) + " ") + N) + ", ") + toString(ao)) + " ") + Q) + ". State: ") + toString(R)) + " ") + N) + ", ") + toString(S)) + " ") + Q))
220242
221243
222-@Callable(aB)
244+@Callable(aI)
223245 func init () = {
224- let aC = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
225- let aD = aC._1
226- let aE = aC._2
227- let aF = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
228- let aG = aF._1
229- let aH = aF._2
230- let aI = aj(aE)
231- let aJ = aI._1
232- let aK = aI._2
233- let aL = aI._3
234- let aM = aj(aH)
246+ let aJ = $Tuple2(aI.payments[0].amount, aI.payments[0].assetId)
247+ let aK = aJ._1
248+ let aL = aJ._2
249+ let aM = $Tuple2(aI.payments[1].amount, aI.payments[1].assetId)
235250 let aN = aM._1
236251 let aO = aM._2
237- let aP = aM._3
252+ let aP = aq(aL)
253+ let aQ = aP._1
254+ let aR = aP._2
255+ let aS = aP._3
256+ let aT = aq(aO)
257+ let aU = aT._1
258+ let aV = aT._2
259+ let aW = aT._3
238260 if (isDefined(getBoolean(this, c)))
239261 then throw("DApp is already active")
240- else if ((aE == aH))
262+ else if ((aL == aO))
241263 then throw("Assets must be different")
242264 else {
243- let aQ = ((("s" + take(aK, 7)) + "_") + take(aO, 7))
244- let aR = ((((("ShareToken of SwopFi protocol for " + aK) + " and ") + aO) + " at address ") + toString(this))
245- let aS = ((aL + aP) / 2)
246- let aT = fraction(pow(aD, aL, 5, 1, aL, HALFDOWN), pow(aG, aP, 5, 1, aP, HALFDOWN), pow(10, 0, aS, 0, 0, HALFDOWN))
247- let aU = Issue(aQ, aR, aT, aS, true)
248- let aV = calculateAssetId(aU)
249-[StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, aJ), StringEntry(e, aN), IntegerEntry(f, aD), IntegerEntry(g, aG), IntegerEntry(j, N), IntegerEntry(k, P), aU, StringEntry(h, toBase58String(aV)), IntegerEntry(i, aT), ScriptTransfer(aB.caller, aT, aV)]
265+ let aX = ((("s" + take(aR, 7)) + "_") + take(aV, 7))
266+ let aY = ((((("ShareToken of SwopFi protocol for " + aR) + " and ") + aV) + " at address ") + toString(this))
267+ let aZ = ((aS + aW) / 2)
268+ let ba = fraction(pow(aK, aS, 5, 1, aS, DOWN), pow(aN, aW, 5, 1, aW, DOWN), pow(10, 0, aZ, 0, 0, DOWN))
269+ let bb = Issue(aX, aY, ba, aZ, true)
270+ let bc = calculateAssetId(bb)
271+[StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, aQ), StringEntry(e, aU), IntegerEntry(f, aK), IntegerEntry(g, aN), IntegerEntry(j, V), IntegerEntry(k, X), bb, StringEntry(h, toBase58String(bc)), IntegerEntry(i, ba), ScriptTransfer(aI.caller, ba, bc)]
250272 }
251273 }
252274
253275
254276
255-@Callable(aB)
256-func replenishWithTwoTokens (aW) = {
257- let aE = aB.payments[0].assetId
258- let aH = aB.payments[1].assetId
259- let aD = ar(aB.payments[0].amount, aE)
260- let aG = ar(aB.payments[1].amount, aH)
261- let aX = fraction(fraction(J, R, aD), Q, fraction(K, R, aG))
262- let aY = fraction(aD, R, J)
263- let aZ = fraction(aG, R, K)
264- let ba = fraction(min([aY, aZ]), M, R)
265- if (!(z))
277+@Callable(aI)
278+func replenishWithTwoTokens (bd) = {
279+ let aL = aI.payments[0].assetId
280+ let aO = aI.payments[1].assetId
281+ let aK = ay(aI.payments[0].amount, aL)
282+ let aN = ay(aI.payments[1].amount, aO)
283+ let be = fraction(fraction(R, Z, aK), Y, fraction(S, Z, aN))
284+ let bf = fraction(aK, Z, R)
285+ let bg = fraction(aN, Z, S)
286+ let bh = fraction(min([bf, bg]), U, Z)
287+ if (!(I))
266288 then throw("DApp is inactive at this moment")
267- else if (if ((0 > aW))
289+ else if (if ((0 > bd))
268290 then true
269- else (aW > S))
270- then throw(((("Slippage tolerance must be between 0 and " + toString(S)) + " inclusively. Actual: ") + toString(aW)))
271- else if ((size(aB.payments) != 2))
291+ else (bd > aa))
292+ then throw(((("Slippage tolerance must be between 0 and " + toString(aa)) + " inclusively. Actual: ") + toString(bd)))
293+ else if ((size(aI.payments) != 2))
272294 then throw("Two attached assets expected")
273- else if (if ((aE != C))
295+ else if (if ((aL != L))
274296 then true
275- else (aH != D))
276- then throw(((("Incorrect assets attached. Expected: " + A) + " and ") + B))
277- else if (if ((((Q * (S - aW)) / S) > aX))
297+ else (aO != M))
298+ then throw(((("Incorrect assets attached. Expected: " + J) + " and ") + K))
299+ else if (if ((((Y * (aa - bd)) / aa) > be))
278300 then true
279- else (aX > ((Q * (S + aW)) / S)))
301+ else (be > ((Y * (aa + bd)) / aa)))
280302 then throw("Incorrect assets amount: amounts must have the contract ratio")
281- else if ((ba == 0))
303+ else if ((bh == 0))
282304 then throw("Too small amount to replenish")
283- else if (!(ai))
284- then ([ScriptTransfer(aB.caller, aD, aE), ScriptTransfer(aB.caller, aG, aH)] ++ aA())
285- else [IntegerEntry(f, (J + aD)), IntegerEntry(g, (K + aG)), IntegerEntry(i, (M + ba)), Reissue(L, ba, true), ScriptTransfer(aB.caller, ba, L)]
305+ else if (!(ap))
306+ then ([ScriptTransfer(aI.caller, aK, aL), ScriptTransfer(aI.caller, aN, aO)] ++ aH())
307+ else [IntegerEntry(f, (R + aK)), IntegerEntry(g, (S + aN)), IntegerEntry(i, (U + bh)), Reissue(T, bh, true), ScriptTransfer(aI.caller, bh, T)]
286308 }
287309
288310
289311
290-@Callable(aB)
312+@Callable(aI)
291313 func withdraw () = {
292- let bb = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
293- let bc = bb._1
294- let bd = bb._2
295- let be = ar(fraction(bc, J, M), C)
296- let bf = ar(fraction(bc, K, M), D)
297- if (!(z))
314+ let bi = $Tuple2(aI.payments[0].amount, aI.payments[0].assetId)
315+ let bj = bi._1
316+ let bk = bi._2
317+ let bl = ay(fraction(bj, R, U), L)
318+ let bm = ay(fraction(bj, S, U), M)
319+ if (!(I))
298320 then throw("DApp is inactive at this moment")
299- else if ((size(aB.payments) != 1))
321+ else if ((size(aI.payments) != 1))
300322 then throw("One attached payment expected")
301- else if ((bd != L))
302- then throw(("Incorrect asset attached. Expected: " + toBase58String(L)))
303- else if (!(ai))
304- then ([ScriptTransfer(aB.caller, bc, bd)] ++ aA())
305- else if (if ((be > ae))
323+ else if ((bk != T))
324+ then throw(("Incorrect asset attached. Expected: " + toBase58String(T)))
325+ else if (!(ap))
326+ then ([ScriptTransfer(aI.caller, bj, bk)] ++ aH())
327+ else if (if ((bl > al))
306328 then true
307- else (bf > af))
308- then ax(be, bf)
309- else [IntegerEntry(f, (J - be)), IntegerEntry(g, (K - bf)), IntegerEntry(i, (M - bc)), Burn(L, bc), ScriptTransfer(aB.caller, be, C), ScriptTransfer(aB.caller, bf, D)]
329+ else (bm > am))
330+ then aE(bl, bm)
331+ else [IntegerEntry(f, (R - bl)), IntegerEntry(g, (S - bm)), IntegerEntry(i, (U - bj)), Burn(T, bj), ScriptTransfer(aI.caller, bl, L), ScriptTransfer(aI.caller, bm, M)]
310332 }
311333
312334
313335
314-@Callable(aB)
315-func exchange (bg) = {
316- let bh = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
317- let bc = bh._1
318- let bd = bh._2
319- func bi (bj,bk) = {
320- let bl = fraction(bk, bc, (bc + bj))
321- let bm = fraction(bl, (P - N), P)
322- let bn = fraction(bl, O, P)
323- if ((bg > bm))
324- then throw(((("Calculated amount to receive " + toString(bm)) + " is less than specified minimum ") + toString(bg)))
325- else $Tuple3(bl, bm, bn)
336+@Callable(aI)
337+func exchange (bn) = {
338+ let bo = $Tuple2(aI.payments[0].amount, aI.payments[0].assetId)
339+ let bj = bo._1
340+ let bk = bo._2
341+ func bp (bq,br) = {
342+ let bs = fraction(br, bj, (bj + bq))
343+ let bt = fraction(bs, (X - V), X)
344+ let bu = fraction(bs, W, X)
345+ if ((bn > bt))
346+ then throw(((("Calculated amount to receive " + toString(bt)) + " is less than specified minimum ") + toString(bn)))
347+ else $Tuple3(bs, bt, bu)
326348 }
327349
328- if (!(z))
350+ if (!(I))
329351 then throw("DApp is inactive at this moment")
330- else if ((0 >= bg))
331- then throw(("Minimal amount to receive must be positive. Actual: " + toString(bg)))
332- else if ((size(aB.payments) != 1))
352+ else if ((0 >= bn))
353+ then throw(("Minimal amount to receive must be positive. Actual: " + toString(bn)))
354+ else if ((size(aI.payments) != 1))
333355 then throw("One attached payment expected")
334- else if (!(ai))
335- then ([ScriptTransfer(aB.caller, bc, bd)] ++ aA())
336- else if ((bd == C))
356+ else if (!(ap))
357+ then ([ScriptTransfer(aI.caller, bj, bk)] ++ aH())
358+ else if ((bk == L))
337359 then {
338- let bo = D
339- let bp = bi(J, K)
340- let bl = bp._1
341- let bm = bp._2
342- let bn = bp._3
343- let bq = (J + bc)
344- let br = ((K - bm) - bn)
345- if (if ((ac >= bq))
360+ let bv = M
361+ let bw = bp(R, S)
362+ let bs = bw._1
363+ let bt = bw._2
364+ let bu = bw._3
365+ let bx = (R + bj)
366+ let by = ((S - bt) - bu)
367+ if (if ((aj >= bx))
346368 then true
347- else (ad >= br))
348- then au(bm, af, I)
349- else [IntegerEntry(f, bq), IntegerEntry(g, br), ScriptTransfer(aB.caller, bm, bo), ScriptTransfer(r, bn, bo)]
369+ else (ak >= by))
370+ then aB(bt, am, Q)
371+ else [IntegerEntry(f, bx), IntegerEntry(g, by), ScriptTransfer(aI.caller, bt, bv), ScriptTransfer(A, bu, bv)]
350372 }
351- else if ((bd == D))
373+ else if ((bk == M))
352374 then {
353- let bo = C
354- let bs = bi(K, J)
355- let bl = bs._1
356- let bm = bs._2
357- let bn = bs._3
358- let bq = ((J - bm) - bn)
359- let br = (K + bc)
360- if (if ((ac >= bq))
375+ let bv = L
376+ let bz = bp(S, R)
377+ let bs = bz._1
378+ let bt = bz._2
379+ let bu = bz._3
380+ let bx = ((R - bt) - bu)
381+ let by = (S + bj)
382+ if (if ((aj >= bx))
361383 then true
362- else (ad >= br))
363- then au(bm, ae, E)
364- else [IntegerEntry(f, bq), IntegerEntry(g, br), ScriptTransfer(aB.caller, bm, bo), ScriptTransfer(r, bn, bo)]
384+ else (ak >= by))
385+ then aB(bt, al, N)
386+ else [IntegerEntry(f, bx), IntegerEntry(g, by), ScriptTransfer(aI.caller, bt, bv), ScriptTransfer(A, bu, bv)]
365387 }
366- else throw(((("Incorrect asset attached. Expected: " + A) + " or ") + B))
388+ else throw(((("Incorrect asset attached. Expected: " + J) + " or ") + K))
367389 }
368390
369391
370392
371-@Callable(aB)
372-func shutdown () = if (!(z))
393+@Callable(aI)
394+func shutdown () = if (!(I))
373395 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, l), "the cause wasn't specified")))
374- else if (!(containsElement([m, n, o, p], aB.callerPublicKey)))
396+ else if (!(containsElement([v, w, x, y], aI.callerPublicKey)))
375397 then throw("Only admin can call this function")
376- else am("Paused by admin")
398+ else at("Paused by admin")
377399
378400
379401
380-@Callable(aB)
381-func activate () = if (z)
402+@Callable(aI)
403+func activate () = if (I)
382404 then throw("DApp is already active")
383- else if (!(containsElement([m, n, o, p], aB.callerPublicKey)))
405+ else if (!(containsElement([v, w, x, y], aI.callerPublicKey)))
384406 then throw("Only admin can call this function")
385407 else [BooleanEntry(c, true), DeleteEntry(l)]
386408
387409
388410
389-@Callable(aB)
390-func takeIntoAccountExtraFunds (bt) = {
391- let bu = (ag - J)
392- let bv = (ah - K)
393- let bw = (bu - (if ((C == unit))
394- then bt
411+@Callable(aI)
412+func takeIntoAccountExtraFunds (bA) = {
413+ let bB = (an - R)
414+ let bC = (ao - S)
415+ let bD = (bB - (if ((L == unit))
416+ then bA
395417 else 0))
396- let bx = (bv - (if ((D == unit))
397- then bt
418+ let bE = (bC - (if ((M == unit))
419+ then bA
398420 else 0))
399- if (!(z))
421+ if (!(I))
400422 then throw("DApp is inactive at this moment")
401- else if ((aB.caller != this))
423+ else if ((aI.caller != this))
402424 then throw("Only the DApp itself can call this function")
403- else if ((0 > bt))
404- then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(bt)))
405- else if (if ((0 > bu))
425+ else if ((0 > bA))
426+ then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(bA)))
427+ else if (if ((0 > bB))
406428 then true
407- else (0 > bv))
408- then am("Enroll amount negative")
409- else if (if ((0 > bw))
429+ else (0 > bC))
430+ then at("Enroll amount negative")
431+ else if (if ((0 > bD))
410432 then true
411- else (0 > bx))
433+ else (0 > bE))
412434 then throw("Too large amountLeave")
413- else [IntegerEntry(f, (J + bw)), IntegerEntry(g, (K + bx)), IntegerEntry(("last_income_" + A), bw), IntegerEntry(("last_income_" + B), bx)]
435+ else [IntegerEntry(f, (R + bD)), IntegerEntry(g, (S + bE)), IntegerEntry(("last_income_" + J), bD), IntegerEntry(("last_income_" + K), bE)]
414436 }
415437
416438
417-@Verifier(by)
418-func bz () = {
419- let F = by
420- if ($isInstanceOf(F, "InvokeScriptTransaction"))
439+@Verifier(bF)
440+func bG () = {
441+ let s = bF
442+ if ($isInstanceOf(s, "InvokeScriptTransaction"))
421443 then {
422- let bA = F
423- if (if (if (sigVerify(bA.bodyBytes, bA.proofs[0], q))
424- then (bA.dApp == s)
444+ let bH = s
445+ if (if (if (sigVerify(bH.bodyBytes, bH.proofs[0], z))
446+ then (bH.dApp == B)
425447 else false)
426448 then true
427- else if (if (sigVerify(bA.bodyBytes, bA.proofs[0], q))
428- then (bA.function == "exchange")
449+ else if (if (sigVerify(bH.bodyBytes, bH.proofs[0], z))
450+ then (bH.function == "exchange")
429451 else false)
430- then if (if (if (if ((C == u))
431- then (D == t)
452+ then if (if (if (if (if ((L == D))
453+ then (M == C)
432454 else false)
433- then (bA.dApp == w)
455+ then (bH.dApp == F)
434456 else false)
435- then if ((bA.payments[0].assetId == unit))
457+ then (bH.payments[0].assetId == unit)
458+ else false)
459+ then if ((bH.payments[0].assetId == unit))
436460 then true
437- else (bA.payments[0].assetId == t)
461+ else (bH.payments[0].assetId == C)
438462 else false)
439463 then true
440- else if (if ((C == u))
441- then (D == v)
464+ else if (if ((L == D))
465+ then (M == E)
442466 else false)
443- then if (if ((bA.dApp == x))
444- then (bA.payments[0].assetId == t)
467+ then if (if ((bH.dApp == G))
468+ then (bH.payments[0].assetId == C)
445469 else false)
446470 then true
447- else if ((bA.dApp == w))
448- then if ((bA.payments[0].assetId == unit))
471+ else if ((bH.dApp == F))
472+ then if ((bH.payments[0].assetId == unit))
449473 then true
450- else (bA.payments[0].assetId == t)
474+ else (bH.payments[0].assetId == C)
451475 else false
452476 else false
453477 else false)
454478 then true
455- else if (if (sigVerify(bA.bodyBytes, bA.proofs[0], q))
456- then (bA.dApp == this)
479+ else if (if (sigVerify(bH.bodyBytes, bH.proofs[0], z))
480+ then (bH.dApp == this)
457481 else false)
458- then (bA.function == "takeIntoAccountExtraFunds")
482+ then (bH.function == "takeIntoAccountExtraFunds")
459483 else false
460484 }
461485 else {
462- let bB = if (sigVerify(by.bodyBytes, by.proofs[0], m))
486+ let bI = if (sigVerify(bF.bodyBytes, bF.proofs[0], v))
463487 then 1
464488 else 0
465- let bC = if (sigVerify(by.bodyBytes, by.proofs[1], n))
489+ let bJ = if (sigVerify(bF.bodyBytes, bF.proofs[1], w))
466490 then 1
467491 else 0
468- let bD = if (sigVerify(by.bodyBytes, by.proofs[2], o))
492+ let bK = if (sigVerify(bF.bodyBytes, bF.proofs[2], x))
469493 then 1
470494 else 0
471- (((bB + bC) + bD) >= 2)
495+ (((bI + bJ) + bK) >= 2)
472496 }
473497 }
474498
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 4 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
55
66 let b = "version"
77
88 let c = "active"
99
1010 let d = "A_asset_id"
1111
1212 let e = "B_asset_id"
1313
1414 let f = "A_asset_balance"
1515
1616 let g = "B_asset_balance"
1717
1818 let h = "share_asset_id"
1919
2020 let i = "share_asset_supply"
2121
2222 let j = "commission"
2323
2424 let k = "commission_scale_delimiter"
2525
2626 let l = "shutdown_cause"
2727
28-let m = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
28+let m = "admin_pub_1"
2929
30-let n = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
30+let n = "admin_pub_2"
3131
32-let o = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
32+let o = "admin_pub_3"
3333
34-let p = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
34+let p = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
3535
36-let q = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
36+func q (r) = {
37+ let s = getString(p, r)
38+ if ($isInstanceOf(s, "String"))
39+ then {
40+ let t = s
41+ fromBase58String(t)
42+ }
43+ else {
44+ let u = s
45+ throw("Admin public key is empty")
46+ }
47+ }
3748
38-let r = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
3949
40-let s = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
50+let v = q(m)
4151
42-let t = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
52+let w = q(n)
4353
44-let u = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9'
54+let x = q(o)
4555
46-let v = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
56+let y = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4757
48-let w = Address(base58'3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37')
58+let z = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4959
50-let x = Address(base58'3MzTHd4e3yukNUURApVLVzH5uxeEsXHD6yY')
60+let A = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
5161
52-let y = 270000
62+let B = Address(base58'3N6q7sCGSSLBUXDdjBdYGTJbZGZfhhh8cNg')
5363
54-let z = getBooleanValue(this, c)
64+let C = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
5565
56-let A = getStringValue(this, d)
66+let D = base58'36mg8NZTaFRDygiVwb8uBnLR51hetJruUCZcxhaVcHj9'
5767
58-let B = getStringValue(this, e)
68+let E = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
5969
60-let C = if ((A == "WAVES"))
70+let F = Address(base58'3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37')
71+
72+let G = Address(base58'3MzTHd4e3yukNUURApVLVzH5uxeEsXHD6yY')
73+
74+let H = 270000
75+
76+let I = getBooleanValue(this, c)
77+
78+let J = getStringValue(this, d)
79+
80+let K = getStringValue(this, e)
81+
82+let L = if ((J == "WAVES"))
6183 then unit
62- else fromBase58String(A)
84+ else fromBase58String(J)
6385
64-let D = if ((B == "WAVES"))
86+let M = if ((K == "WAVES"))
6587 then unit
66- else fromBase58String(B)
88+ else fromBase58String(K)
6789
68-let E = {
69- let F = C
70- if ($isInstanceOf(F, "ByteVector"))
90+let N = {
91+ let s = L
92+ if ($isInstanceOf(s, "ByteVector"))
7193 then {
72- let G = F
73- value(assetInfo(G)).name
94+ let O = s
95+ value(assetInfo(O)).name
7496 }
75- else if ($isInstanceOf(F, "Unit"))
97+ else if ($isInstanceOf(s, "Unit"))
7698 then {
77- let H = F
99+ let P = s
78100 "WAVES"
79101 }
80102 else throw("Match error")
81103 }
82104
83-let I = {
84- let F = D
85- if ($isInstanceOf(F, "ByteVector"))
105+let Q = {
106+ let s = M
107+ if ($isInstanceOf(s, "ByteVector"))
86108 then {
87- let G = F
88- value(assetInfo(G)).name
109+ let O = s
110+ value(assetInfo(O)).name
89111 }
90- else if ($isInstanceOf(F, "Unit"))
112+ else if ($isInstanceOf(s, "Unit"))
91113 then {
92- let H = F
114+ let P = s
93115 "WAVES"
94116 }
95117 else throw("Match error")
96118 }
97119
98-let J = getIntegerValue(this, f)
120+let R = getIntegerValue(this, f)
99121
100-let K = getIntegerValue(this, g)
122+let S = getIntegerValue(this, g)
101123
102-let L = fromBase58String(getStringValue(this, h))
124+let T = fromBase58String(getStringValue(this, h))
103125
104-let M = getIntegerValue(this, i)
126+let U = getIntegerValue(this, i)
105127
106-let N = 3000
128+let V = 3000
107129
108-let O = 1200
130+let W = 1200
109131
110-let P = 1000000
132+let X = 1000000
111133
112-let Q = 1000
134+let Y = 1000
113135
114-let R = 100000000
136+let Z = 100000000
115137
116-let S = 1000
138+let aa = 1000
117139
118-let T = 8
140+let ab = 8
119141
120-func U (V) = {
121- let F = V
122- if ($isInstanceOf(F, "ByteVector"))
142+func ac (ad) = {
143+ let s = ad
144+ if ($isInstanceOf(s, "ByteVector"))
123145 then {
124- let G = F
125- assetBalance(this, G)
146+ let O = s
147+ assetBalance(this, O)
126148 }
127- else if ($isInstanceOf(F, "Unit"))
149+ else if ($isInstanceOf(s, "Unit"))
128150 then {
129- let H = F
151+ let P = s
130152 wavesBalance(this).available
131153 }
132154 else throw("Match error")
133155 }
134156
135157
136-func W (X,Y) = {
137- let Z = {
138- let F = getInteger(X, ((("rpd_balance_" + Y) + "_") + toString(this)))
139- if ($isInstanceOf(F, "Int"))
158+func ae (af,ag) = {
159+ let ah = {
160+ let s = getInteger(af, ((("rpd_balance_" + ag) + "_") + toString(this)))
161+ if ($isInstanceOf(s, "Int"))
140162 then {
141- let aa = F
142- aa
163+ let ai = s
164+ ai
143165 }
144- else if ($isInstanceOf(F, "Unit"))
166+ else if ($isInstanceOf(s, "Unit"))
145167 then {
146- let ab = F
168+ let u = s
147169 0
148170 }
149171 else throw("Match error")
150172 }
151- Z
173+ ah
152174 }
153175
154176
155-let ac = W(s, A)
177+let aj = ae(B, J)
156178
157-let ad = W(s, B)
179+let ak = ae(B, K)
158180
159-let ae = (J - ac)
181+let al = (R - aj)
160182
161-let af = (K - ad)
183+let am = (S - ak)
162184
163-let ag = (U(C) + ac)
185+let an = (ac(L) + aj)
164186
165-let ah = (U(D) + ad)
187+let ao = (ac(M) + ak)
166188
167-let ai = if ((ag >= J))
168- then (ah >= K)
189+let ap = if ((an >= R))
190+ then (ao >= S)
169191 else false
170192
171-func aj (V) = {
172- let F = V
173- if ($isInstanceOf(F, "ByteVector"))
193+func aq (ad) = {
194+ let s = ad
195+ if ($isInstanceOf(s, "ByteVector"))
174196 then {
175- let G = F
176- let ak = toBase58String(G)
177- let al = valueOrErrorMessage(assetInfo(G), (("Asset " + ak) + " doesn't exist"))
178- $Tuple3(ak, al.name, al.decimals)
197+ let O = s
198+ let ar = toBase58String(O)
199+ let as = valueOrErrorMessage(assetInfo(O), (("Asset " + ar) + " doesn't exist"))
200+ $Tuple3(ar, as.name, as.decimals)
179201 }
180- else if ($isInstanceOf(F, "Unit"))
202+ else if ($isInstanceOf(s, "Unit"))
181203 then {
182- let H = F
204+ let P = s
183205 $Tuple3("WAVES", "WAVES", 8)
184206 }
185207 else throw("Match error")
186208 }
187209
188210
189-func am (an) = [BooleanEntry(c, false), StringEntry(l, an)]
211+func at (au) = [BooleanEntry(c, false), StringEntry(l, au)]
190212
191213
192-func ao () = {
193- let ap = if ((ac > 0))
214+func av () = {
215+ let aw = if ((aj > 0))
194216 then 1
195217 else 0
196- let aq = if ((ad > 0))
218+ let ax = if ((ak > 0))
197219 then 1
198220 else 0
199- (ap + aq)
221+ (aw + ax)
200222 }
201223
202224
203-func ar (as,V) = if ((V == t))
225+func ay (az,ad) = if ((ad == C))
204226 then {
205- let at = (as - (ao() * y))
206- if ((0 >= at))
207- then throw((((("Insufficient amount " + toString(as)) + " to deduct staking fee ") + toString(y)) + " USD-N"))
208- else at
227+ let aA = (az - (av() * H))
228+ if ((0 >= aA))
229+ then throw((((("Insufficient amount " + toString(az)) + " to deduct staking fee ") + toString(H)) + " USD-N"))
230+ else aA
209231 }
210- else as
232+ else az
211233
212234
213-func au (as,av,aw) = throw((((((((("Insufficient DApp balance to pay " + toString(as)) + " ") + aw) + " due to staking. Available: ") + toString(av)) + " ") + aw) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
235+func aB (az,aC,aD) = throw((((((((("Insufficient DApp balance to pay " + toString(az)) + " ") + aD) + " due to staking. Available: ") + toString(aC)) + " ") + aD) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
214236
215237
216-func ax (ay,az) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(ay)) + " ") + E) + " and ") + toString(az)) + " ") + I) + " due to staking. Available: ") + toString(ae)) + " ") + E) + " and ") + toString(af)) + " ") + I) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
238+func aE (aF,aG) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(aF)) + " ") + N) + " and ") + toString(aG)) + " ") + Q) + " due to staking. Available: ") + toString(al)) + " ") + N) + " and ") + toString(am)) + " ") + Q) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
217239
218240
219-func aA () = am(((((((((((((((("Suspicious state. Actual balances: " + toString(ag)) + " ") + E) + ", ") + toString(ah)) + " ") + I) + ". State: ") + toString(J)) + " ") + E) + ", ") + toString(K)) + " ") + I))
241+func aH () = at(((((((((((((((("Suspicious state. Actual balances: " + toString(an)) + " ") + N) + ", ") + toString(ao)) + " ") + Q) + ". State: ") + toString(R)) + " ") + N) + ", ") + toString(S)) + " ") + Q))
220242
221243
222-@Callable(aB)
244+@Callable(aI)
223245 func init () = {
224- let aC = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
225- let aD = aC._1
226- let aE = aC._2
227- let aF = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
228- let aG = aF._1
229- let aH = aF._2
230- let aI = aj(aE)
231- let aJ = aI._1
232- let aK = aI._2
233- let aL = aI._3
234- let aM = aj(aH)
246+ let aJ = $Tuple2(aI.payments[0].amount, aI.payments[0].assetId)
247+ let aK = aJ._1
248+ let aL = aJ._2
249+ let aM = $Tuple2(aI.payments[1].amount, aI.payments[1].assetId)
235250 let aN = aM._1
236251 let aO = aM._2
237- let aP = aM._3
252+ let aP = aq(aL)
253+ let aQ = aP._1
254+ let aR = aP._2
255+ let aS = aP._3
256+ let aT = aq(aO)
257+ let aU = aT._1
258+ let aV = aT._2
259+ let aW = aT._3
238260 if (isDefined(getBoolean(this, c)))
239261 then throw("DApp is already active")
240- else if ((aE == aH))
262+ else if ((aL == aO))
241263 then throw("Assets must be different")
242264 else {
243- let aQ = ((("s" + take(aK, 7)) + "_") + take(aO, 7))
244- let aR = ((((("ShareToken of SwopFi protocol for " + aK) + " and ") + aO) + " at address ") + toString(this))
245- let aS = ((aL + aP) / 2)
246- let aT = fraction(pow(aD, aL, 5, 1, aL, HALFDOWN), pow(aG, aP, 5, 1, aP, HALFDOWN), pow(10, 0, aS, 0, 0, HALFDOWN))
247- let aU = Issue(aQ, aR, aT, aS, true)
248- let aV = calculateAssetId(aU)
249-[StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, aJ), StringEntry(e, aN), IntegerEntry(f, aD), IntegerEntry(g, aG), IntegerEntry(j, N), IntegerEntry(k, P), aU, StringEntry(h, toBase58String(aV)), IntegerEntry(i, aT), ScriptTransfer(aB.caller, aT, aV)]
265+ let aX = ((("s" + take(aR, 7)) + "_") + take(aV, 7))
266+ let aY = ((((("ShareToken of SwopFi protocol for " + aR) + " and ") + aV) + " at address ") + toString(this))
267+ let aZ = ((aS + aW) / 2)
268+ let ba = fraction(pow(aK, aS, 5, 1, aS, DOWN), pow(aN, aW, 5, 1, aW, DOWN), pow(10, 0, aZ, 0, 0, DOWN))
269+ let bb = Issue(aX, aY, ba, aZ, true)
270+ let bc = calculateAssetId(bb)
271+[StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, aQ), StringEntry(e, aU), IntegerEntry(f, aK), IntegerEntry(g, aN), IntegerEntry(j, V), IntegerEntry(k, X), bb, StringEntry(h, toBase58String(bc)), IntegerEntry(i, ba), ScriptTransfer(aI.caller, ba, bc)]
250272 }
251273 }
252274
253275
254276
255-@Callable(aB)
256-func replenishWithTwoTokens (aW) = {
257- let aE = aB.payments[0].assetId
258- let aH = aB.payments[1].assetId
259- let aD = ar(aB.payments[0].amount, aE)
260- let aG = ar(aB.payments[1].amount, aH)
261- let aX = fraction(fraction(J, R, aD), Q, fraction(K, R, aG))
262- let aY = fraction(aD, R, J)
263- let aZ = fraction(aG, R, K)
264- let ba = fraction(min([aY, aZ]), M, R)
265- if (!(z))
277+@Callable(aI)
278+func replenishWithTwoTokens (bd) = {
279+ let aL = aI.payments[0].assetId
280+ let aO = aI.payments[1].assetId
281+ let aK = ay(aI.payments[0].amount, aL)
282+ let aN = ay(aI.payments[1].amount, aO)
283+ let be = fraction(fraction(R, Z, aK), Y, fraction(S, Z, aN))
284+ let bf = fraction(aK, Z, R)
285+ let bg = fraction(aN, Z, S)
286+ let bh = fraction(min([bf, bg]), U, Z)
287+ if (!(I))
266288 then throw("DApp is inactive at this moment")
267- else if (if ((0 > aW))
289+ else if (if ((0 > bd))
268290 then true
269- else (aW > S))
270- then throw(((("Slippage tolerance must be between 0 and " + toString(S)) + " inclusively. Actual: ") + toString(aW)))
271- else if ((size(aB.payments) != 2))
291+ else (bd > aa))
292+ then throw(((("Slippage tolerance must be between 0 and " + toString(aa)) + " inclusively. Actual: ") + toString(bd)))
293+ else if ((size(aI.payments) != 2))
272294 then throw("Two attached assets expected")
273- else if (if ((aE != C))
295+ else if (if ((aL != L))
274296 then true
275- else (aH != D))
276- then throw(((("Incorrect assets attached. Expected: " + A) + " and ") + B))
277- else if (if ((((Q * (S - aW)) / S) > aX))
297+ else (aO != M))
298+ then throw(((("Incorrect assets attached. Expected: " + J) + " and ") + K))
299+ else if (if ((((Y * (aa - bd)) / aa) > be))
278300 then true
279- else (aX > ((Q * (S + aW)) / S)))
301+ else (be > ((Y * (aa + bd)) / aa)))
280302 then throw("Incorrect assets amount: amounts must have the contract ratio")
281- else if ((ba == 0))
303+ else if ((bh == 0))
282304 then throw("Too small amount to replenish")
283- else if (!(ai))
284- then ([ScriptTransfer(aB.caller, aD, aE), ScriptTransfer(aB.caller, aG, aH)] ++ aA())
285- else [IntegerEntry(f, (J + aD)), IntegerEntry(g, (K + aG)), IntegerEntry(i, (M + ba)), Reissue(L, ba, true), ScriptTransfer(aB.caller, ba, L)]
305+ else if (!(ap))
306+ then ([ScriptTransfer(aI.caller, aK, aL), ScriptTransfer(aI.caller, aN, aO)] ++ aH())
307+ else [IntegerEntry(f, (R + aK)), IntegerEntry(g, (S + aN)), IntegerEntry(i, (U + bh)), Reissue(T, bh, true), ScriptTransfer(aI.caller, bh, T)]
286308 }
287309
288310
289311
290-@Callable(aB)
312+@Callable(aI)
291313 func withdraw () = {
292- let bb = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
293- let bc = bb._1
294- let bd = bb._2
295- let be = ar(fraction(bc, J, M), C)
296- let bf = ar(fraction(bc, K, M), D)
297- if (!(z))
314+ let bi = $Tuple2(aI.payments[0].amount, aI.payments[0].assetId)
315+ let bj = bi._1
316+ let bk = bi._2
317+ let bl = ay(fraction(bj, R, U), L)
318+ let bm = ay(fraction(bj, S, U), M)
319+ if (!(I))
298320 then throw("DApp is inactive at this moment")
299- else if ((size(aB.payments) != 1))
321+ else if ((size(aI.payments) != 1))
300322 then throw("One attached payment expected")
301- else if ((bd != L))
302- then throw(("Incorrect asset attached. Expected: " + toBase58String(L)))
303- else if (!(ai))
304- then ([ScriptTransfer(aB.caller, bc, bd)] ++ aA())
305- else if (if ((be > ae))
323+ else if ((bk != T))
324+ then throw(("Incorrect asset attached. Expected: " + toBase58String(T)))
325+ else if (!(ap))
326+ then ([ScriptTransfer(aI.caller, bj, bk)] ++ aH())
327+ else if (if ((bl > al))
306328 then true
307- else (bf > af))
308- then ax(be, bf)
309- else [IntegerEntry(f, (J - be)), IntegerEntry(g, (K - bf)), IntegerEntry(i, (M - bc)), Burn(L, bc), ScriptTransfer(aB.caller, be, C), ScriptTransfer(aB.caller, bf, D)]
329+ else (bm > am))
330+ then aE(bl, bm)
331+ else [IntegerEntry(f, (R - bl)), IntegerEntry(g, (S - bm)), IntegerEntry(i, (U - bj)), Burn(T, bj), ScriptTransfer(aI.caller, bl, L), ScriptTransfer(aI.caller, bm, M)]
310332 }
311333
312334
313335
314-@Callable(aB)
315-func exchange (bg) = {
316- let bh = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
317- let bc = bh._1
318- let bd = bh._2
319- func bi (bj,bk) = {
320- let bl = fraction(bk, bc, (bc + bj))
321- let bm = fraction(bl, (P - N), P)
322- let bn = fraction(bl, O, P)
323- if ((bg > bm))
324- then throw(((("Calculated amount to receive " + toString(bm)) + " is less than specified minimum ") + toString(bg)))
325- else $Tuple3(bl, bm, bn)
336+@Callable(aI)
337+func exchange (bn) = {
338+ let bo = $Tuple2(aI.payments[0].amount, aI.payments[0].assetId)
339+ let bj = bo._1
340+ let bk = bo._2
341+ func bp (bq,br) = {
342+ let bs = fraction(br, bj, (bj + bq))
343+ let bt = fraction(bs, (X - V), X)
344+ let bu = fraction(bs, W, X)
345+ if ((bn > bt))
346+ then throw(((("Calculated amount to receive " + toString(bt)) + " is less than specified minimum ") + toString(bn)))
347+ else $Tuple3(bs, bt, bu)
326348 }
327349
328- if (!(z))
350+ if (!(I))
329351 then throw("DApp is inactive at this moment")
330- else if ((0 >= bg))
331- then throw(("Minimal amount to receive must be positive. Actual: " + toString(bg)))
332- else if ((size(aB.payments) != 1))
352+ else if ((0 >= bn))
353+ then throw(("Minimal amount to receive must be positive. Actual: " + toString(bn)))
354+ else if ((size(aI.payments) != 1))
333355 then throw("One attached payment expected")
334- else if (!(ai))
335- then ([ScriptTransfer(aB.caller, bc, bd)] ++ aA())
336- else if ((bd == C))
356+ else if (!(ap))
357+ then ([ScriptTransfer(aI.caller, bj, bk)] ++ aH())
358+ else if ((bk == L))
337359 then {
338- let bo = D
339- let bp = bi(J, K)
340- let bl = bp._1
341- let bm = bp._2
342- let bn = bp._3
343- let bq = (J + bc)
344- let br = ((K - bm) - bn)
345- if (if ((ac >= bq))
360+ let bv = M
361+ let bw = bp(R, S)
362+ let bs = bw._1
363+ let bt = bw._2
364+ let bu = bw._3
365+ let bx = (R + bj)
366+ let by = ((S - bt) - bu)
367+ if (if ((aj >= bx))
346368 then true
347- else (ad >= br))
348- then au(bm, af, I)
349- else [IntegerEntry(f, bq), IntegerEntry(g, br), ScriptTransfer(aB.caller, bm, bo), ScriptTransfer(r, bn, bo)]
369+ else (ak >= by))
370+ then aB(bt, am, Q)
371+ else [IntegerEntry(f, bx), IntegerEntry(g, by), ScriptTransfer(aI.caller, bt, bv), ScriptTransfer(A, bu, bv)]
350372 }
351- else if ((bd == D))
373+ else if ((bk == M))
352374 then {
353- let bo = C
354- let bs = bi(K, J)
355- let bl = bs._1
356- let bm = bs._2
357- let bn = bs._3
358- let bq = ((J - bm) - bn)
359- let br = (K + bc)
360- if (if ((ac >= bq))
375+ let bv = L
376+ let bz = bp(S, R)
377+ let bs = bz._1
378+ let bt = bz._2
379+ let bu = bz._3
380+ let bx = ((R - bt) - bu)
381+ let by = (S + bj)
382+ if (if ((aj >= bx))
361383 then true
362- else (ad >= br))
363- then au(bm, ae, E)
364- else [IntegerEntry(f, bq), IntegerEntry(g, br), ScriptTransfer(aB.caller, bm, bo), ScriptTransfer(r, bn, bo)]
384+ else (ak >= by))
385+ then aB(bt, al, N)
386+ else [IntegerEntry(f, bx), IntegerEntry(g, by), ScriptTransfer(aI.caller, bt, bv), ScriptTransfer(A, bu, bv)]
365387 }
366- else throw(((("Incorrect asset attached. Expected: " + A) + " or ") + B))
388+ else throw(((("Incorrect asset attached. Expected: " + J) + " or ") + K))
367389 }
368390
369391
370392
371-@Callable(aB)
372-func shutdown () = if (!(z))
393+@Callable(aI)
394+func shutdown () = if (!(I))
373395 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, l), "the cause wasn't specified")))
374- else if (!(containsElement([m, n, o, p], aB.callerPublicKey)))
396+ else if (!(containsElement([v, w, x, y], aI.callerPublicKey)))
375397 then throw("Only admin can call this function")
376- else am("Paused by admin")
398+ else at("Paused by admin")
377399
378400
379401
380-@Callable(aB)
381-func activate () = if (z)
402+@Callable(aI)
403+func activate () = if (I)
382404 then throw("DApp is already active")
383- else if (!(containsElement([m, n, o, p], aB.callerPublicKey)))
405+ else if (!(containsElement([v, w, x, y], aI.callerPublicKey)))
384406 then throw("Only admin can call this function")
385407 else [BooleanEntry(c, true), DeleteEntry(l)]
386408
387409
388410
389-@Callable(aB)
390-func takeIntoAccountExtraFunds (bt) = {
391- let bu = (ag - J)
392- let bv = (ah - K)
393- let bw = (bu - (if ((C == unit))
394- then bt
411+@Callable(aI)
412+func takeIntoAccountExtraFunds (bA) = {
413+ let bB = (an - R)
414+ let bC = (ao - S)
415+ let bD = (bB - (if ((L == unit))
416+ then bA
395417 else 0))
396- let bx = (bv - (if ((D == unit))
397- then bt
418+ let bE = (bC - (if ((M == unit))
419+ then bA
398420 else 0))
399- if (!(z))
421+ if (!(I))
400422 then throw("DApp is inactive at this moment")
401- else if ((aB.caller != this))
423+ else if ((aI.caller != this))
402424 then throw("Only the DApp itself can call this function")
403- else if ((0 > bt))
404- then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(bt)))
405- else if (if ((0 > bu))
425+ else if ((0 > bA))
426+ then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(bA)))
427+ else if (if ((0 > bB))
406428 then true
407- else (0 > bv))
408- then am("Enroll amount negative")
409- else if (if ((0 > bw))
429+ else (0 > bC))
430+ then at("Enroll amount negative")
431+ else if (if ((0 > bD))
410432 then true
411- else (0 > bx))
433+ else (0 > bE))
412434 then throw("Too large amountLeave")
413- else [IntegerEntry(f, (J + bw)), IntegerEntry(g, (K + bx)), IntegerEntry(("last_income_" + A), bw), IntegerEntry(("last_income_" + B), bx)]
435+ else [IntegerEntry(f, (R + bD)), IntegerEntry(g, (S + bE)), IntegerEntry(("last_income_" + J), bD), IntegerEntry(("last_income_" + K), bE)]
414436 }
415437
416438
417-@Verifier(by)
418-func bz () = {
419- let F = by
420- if ($isInstanceOf(F, "InvokeScriptTransaction"))
439+@Verifier(bF)
440+func bG () = {
441+ let s = bF
442+ if ($isInstanceOf(s, "InvokeScriptTransaction"))
421443 then {
422- let bA = F
423- if (if (if (sigVerify(bA.bodyBytes, bA.proofs[0], q))
424- then (bA.dApp == s)
444+ let bH = s
445+ if (if (if (sigVerify(bH.bodyBytes, bH.proofs[0], z))
446+ then (bH.dApp == B)
425447 else false)
426448 then true
427- else if (if (sigVerify(bA.bodyBytes, bA.proofs[0], q))
428- then (bA.function == "exchange")
449+ else if (if (sigVerify(bH.bodyBytes, bH.proofs[0], z))
450+ then (bH.function == "exchange")
429451 else false)
430- then if (if (if (if ((C == u))
431- then (D == t)
452+ then if (if (if (if (if ((L == D))
453+ then (M == C)
432454 else false)
433- then (bA.dApp == w)
455+ then (bH.dApp == F)
434456 else false)
435- then if ((bA.payments[0].assetId == unit))
457+ then (bH.payments[0].assetId == unit)
458+ else false)
459+ then if ((bH.payments[0].assetId == unit))
436460 then true
437- else (bA.payments[0].assetId == t)
461+ else (bH.payments[0].assetId == C)
438462 else false)
439463 then true
440- else if (if ((C == u))
441- then (D == v)
464+ else if (if ((L == D))
465+ then (M == E)
442466 else false)
443- then if (if ((bA.dApp == x))
444- then (bA.payments[0].assetId == t)
467+ then if (if ((bH.dApp == G))
468+ then (bH.payments[0].assetId == C)
445469 else false)
446470 then true
447- else if ((bA.dApp == w))
448- then if ((bA.payments[0].assetId == unit))
471+ else if ((bH.dApp == F))
472+ then if ((bH.payments[0].assetId == unit))
449473 then true
450- else (bA.payments[0].assetId == t)
474+ else (bH.payments[0].assetId == C)
451475 else false
452476 else false
453477 else false)
454478 then true
455- else if (if (sigVerify(bA.bodyBytes, bA.proofs[0], q))
456- then (bA.dApp == this)
479+ else if (if (sigVerify(bH.bodyBytes, bH.proofs[0], z))
480+ then (bH.dApp == this)
457481 else false)
458- then (bA.function == "takeIntoAccountExtraFunds")
482+ then (bH.function == "takeIntoAccountExtraFunds")
459483 else false
460484 }
461485 else {
462- let bB = if (sigVerify(by.bodyBytes, by.proofs[0], m))
486+ let bI = if (sigVerify(bF.bodyBytes, bF.proofs[0], v))
463487 then 1
464488 else 0
465- let bC = if (sigVerify(by.bodyBytes, by.proofs[1], n))
489+ let bJ = if (sigVerify(bF.bodyBytes, bF.proofs[1], w))
466490 then 1
467491 else 0
468- let bD = if (sigVerify(by.bodyBytes, by.proofs[2], o))
492+ let bK = if (sigVerify(bF.bodyBytes, bF.proofs[2], x))
469493 then 1
470494 else 0
471- (((bB + bC) + bD) >= 2)
495+ (((bI + bJ) + bK) >= 2)
472496 }
473497 }
474498

github/deemru/w8io/873ac7e 
320.10 ms