tx · 9NWLe5RBugR8HYNXLgUd8oRtGUQxiYEv96JMjuM8ucYY

3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph:  -0.01400000 Waves

2022.02.07 12:07 [1913003] smart account 3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph > SELF 0.00000000 Waves

{ "type": 13, "id": "9NWLe5RBugR8HYNXLgUd8oRtGUQxiYEv96JMjuM8ucYY", "fee": 1400000, "feeAssetId": null, "timestamp": 1644224804740, "version": 2, "chainId": 84, "sender": "3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph", "senderPublicKey": "G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD", "proofs": [ "5va8ZgjRuzFtYTcCG5fWqvML66GfNn5Q6CNaEVmNf2nnyDMnDM8zuDy4Upjad3qb7EKW4mwCLQsv6ZSaWMnTcj58", "cxUF6yVLvbQ9eTe6Bcu25iQHHjtZWDynKL17KXnCeHtMKVyAWbnhJM1344AcEok32ccNRAc6TyjkuDk3AkqjfxA", "5P5isNhi4vjAM212iGJNr9Su7yvNtsRVdnXePcpt3XL1ns3C5DCETRgE3SDweY4MTchH44qZqgSXJRjWe4AJJa8y" ], "script": "base64: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bnQFAAAAD2Fzc2V0SWRRdWFudGl0eQUAAAAQZEFwcFN0YWtlZFRva2VucwUAAAAUdHJhbnNmZXJUb1VzZXJBbW91bnQEAAAAFHRyYW5zZmVyVG9Vc2VyQW1vdW50CQAAawAAAAMFAAAABmFtb3VudAUAAAAQZEFwcFN0YWtlZFRva2VucwUAAAAPYXNzZXRJZFF1YW50aXR5BQAAABR0cmFuc2ZlclRvVXNlckFtb3VudAAAAAgAAAABaQEAAAAEdGVzdAAAAAADCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAKdGVzdF9hZG1pbgIAAAAGcGFzc2VkBQAAAANuaWwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAKdGVzdF9hZG1pbgIAAAAKbm90X3Bhc3NlZAUAAAADbmlsAAAAAWkBAAAACGFkZFBvb2xzAAAABAAAAAVwb29scwAAAA9saXF1aWRpdHlUb2tlbnMAAAANc2VydmljZVRva2VucwAAABZsaXF1aWRpdHlUb2tlbkRlY2ltYWxzAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CgEAAAAQZ2VuZXJhdGVQb29sS2V5cwAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sAgAAAA5fYXNzZXRfYmFsYW5jZQAAAAAAAAAAAAUAAAALYWNjdW11bGF0ZWQKAQAAAB5nZW5lcmF0ZVBvb2xMaXF1aWRpdHlUb2tlbktleXMAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAVwb29scwUAAAAEcG9vbAQAAAAObGlxdWlkaXR5VG9rZW4JAAGRAAAAAgUAAAAPbGlxdWlkaXR5VG9rZW5zBQAAAAlwb29sSW5kZXgJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAARwb29sAgAAABBfbGlxdWlkaXR5X3Rva2VuBQAAAA5saXF1aWRpdHlUb2tlbgUAAAALYWNjdW11bGF0ZWQKAQAAABxnZW5lcmF0ZVBvb2xTZXJ2aWNlVG9rZW5LZXlzAAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sBAAAAAlwb29sSW5kZXgJAQAAAAV2YWx1ZQAAAAEJAARPAAAAAgUAAAAFcG9vbHMFAAAABHBvb2wEAAAADmxpcXVpZGl0eVRva2VuCQABkQAAAAIFAAAADXNlcnZpY2VUb2tlbnMFAAAACXBvb2xJbmRleAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wCAAAADl9zZXJ2aWNlX3Rva2VuBQAAAA5saXF1aWRpdHlUb2tlbgUAAAALYWNjdW11bGF0ZWQKAQAAACVnZW5lcmF0ZVBvb2xMaXF1aWRpdHlUb2tlbkRlY2ltYWxLZXlzAAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sBAAAAAlwb29sSW5kZXgJAQAAAAV2YWx1ZQAAAAEJAARPAAAAAgUAAAAFcG9vbHMFAAAABHBvb2wEAAAADmxpcXVpZGl0eVRva2VuCQABkQAAAAIFAAAAFmxpcXVpZGl0eVRva2VuRGVjaW1hbHMFAAAACXBvb2xJbmRleAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sAgAAABZfc2VydmljZV90b2tlbl9kZWNpbWFsBQAAAA5saXF1aWRpdHlUb2tlbgUAAAALYWNjdW11bGF0ZWQKAQAAABZnZW5lcmF0ZVBvb2xBY3RpdmVLZXlzAAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wCAAAA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BSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoAAAAAAAAAAAsAAAAAAAAAAAwAAAAAAAAAAA0AAAAAAAAAAA4AAAAAAAAAAA8AAAAAAAAAABAAAAAAAAAAABEAAAAAAAAAABIAAAAAAAAAABMAAAAAAAAAABQAAAAAAAAAABUAAAAAAAAAABYAAAAAAAAAABcAAAAAAAAAABgAAAAAAAAAABkAAAAAAAAAABoAAAAAAAAAABsAAAAAAAAAABwAAAAAAAAAAB0AAAAAAAAAAB4AAAAAAAAAAB8AAAAAAAAAACAAAAAAAAAAACEAAAAAAAAAACIAAAAAAAAAACMAAAAAAAAAACQAAAAAAAAAACUAAAAAAAAAACYAAAAAAAAAACcAAAAAAAAAACgAAAAAAAAAACkAAAAAAAAAACoAAAAAAAAAACsAAAAAAAAAACwAAAAAAAAAAC0AAAAAAAAAAC4AAAAAAAAAAC8AAAAAAAAAADAAAAAAAAAAADEAAAAAAAAAADIAAAAAAAAAADMAAAAAAAAAADQAAAAAAAAAADUAAAAAAAAAADYAAAAAAAAAADcAAAAAAAAAADgAAAAAAAAAADkAAAAAAAAAADoAAAAAAAAAADsAAAAAAAAAADwAAAAAAAAAAD0AAAAAAAAAAD4AAAAAAAAAAD8AAAAAAAAAAEAAAAAAAAAAAEEAAAAAAAAAAEIAAAAAAAAAAEMAAAAAAAAAAEQAAAAAAAAAAEUAAAAAAAAAAEYAAAAAAAAAAEcAAAAAAAAAAEgAAAAAAAAAAEkAAAAAAAAAAEoAAAAAAAAAAEsAAAAAAAAAAEwAAAAAAAAAAE0AAAAAAAAAAE4AAAAAAAAAAE8AAAAAAAAAAFAAAAAAAAAAAFEAAAAAAAAAAFIAAAAAAAAAAFMAAAAAAAAAAFQAAAAAAAAAAFUAAAAAAAAAAFYAAAAAAAAA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AAAFYXNzZXQAAAAIZGVjaW1hbHMJAAACAAAAAQIAAAAQQ2FuJ3QgZmluZCBhc3NldAMJAQAAAAIhPQAAAAIFAAAAFWxpcXVpZHV0eUFzc2V0QWRkcmVzcwUAAAANYXNzZXRJZFN0cmluZwkAAAIAAAABAgAAAC9Zb3UgYXR0YWNoZWQgd3JvbmcgbGlxdWlkaXR5IHRva2VuIGZyb20gU3dvcC5maQQAAAAKcG9vbEFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAANcG9vbEFtb3VudEtleQQAAAAKdXNlckFtb3VudAQAAAAHJG1hdGNoMAkABB8AAAABBQAAABF1c2VyUG9vbEFtb3VudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAQAAAAHbm90aGluZwUAAAAHJG1hdGNoMAAAAAAAAAAAAAQAAAAUdXNlckFtb3VudFdpdGhvdXRGZWUJAABlAAAAAgkAAGUAAAACBQAAAAZhbW91bnQJAQAAAAhmcmFjdGlvbgAAAAQFAAAABmFtb3VudAAAAAAAAAAAAQUAAAAKZGVwb3NpdEZlZQUAAAAGSEFMRlVQCQEAAAAIZnJhY3Rpb24AAAAEBQAAAAZhbW91bnQAAAAAAAAAAAEFAAAADWNvbnRyb2xsZXJGZWUFAAAABkhBTEZVUAQAAAAUdHJhbnNmZXJUb1VzZXJBbW91bnQJAQAAAA50cmFuc2ZlclRvVXNlcgAAAAQFAAAAFHVzZXJBbW91bnRXaXRob3V0RmVlCQACWQAAAAEFAAAAEGRBcHBBc3NldEFkZHJlc3MFAAAABHBvb2wFAAAAC2RlcG9zaXRUeXBlBAAAAANmZWUJAABlAAAAAgUAAAAGYW1vdW50BQAAABR1c2VyQW1vdW50V2l0aG91dEZlZQQAAAANbmV3UG9vbEFtb3VudAkAAGUAAAACCQAAZAAAAAIFAAAACnBvb2xBbW91bnQFAAAABmFtb3VudAUAAAADZmVlBAAAABFuZXdVc2VyUG9vbEFtb3VudAkAAGQAAAACBQAAAAp1c2VyQW1vdW50BQAAABR0cmFuc2ZlclRvVXNlckFtb3VudAQAAAANbG9ja1Rva2Vuc0tl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bAUAAAAMd2l0aGRyYXdUeXBlBAAAAA1uZXdQb29sQW1vdW50CQAAZQAAAAIFAAAACnBvb2xBbW91bnQFAAAABmFtb3VudAQAAAARbmV3VXNlclBvb2xBbW91bnQJAABlAAAAAgUAAAAKdXNlckFtb3VudAUAAAAGYW1vdW50CQAETAAAAAIJAQAAAARCdXJuAAAAAgkAAlkAAAABBQAAABBkQXBwQXNzZXRBZGRyZXNzBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABR0cmFuc2ZlclRvVXNlckFtb3VudAkAAlkAAAABBQAAABVsaXF1aWR1dHlBc3NldEFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADXBvb2xBbW91bnRLZXkFAAAADW5ld1Bvb2xBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEXVzZXJQb29sQW1vdW50S2V5BQAAABFuZXdVc2VyUG9vbEFtb3VudAUAAAADbmlsCQAAAgAAAAECAAAAE1Bvb2wgaXMgbm90IGFjdGl2ZSEAAAABaQEAAAAOcG9vbEFjdGl2YXRpbmcAAAACAAAABXBvb2xzAAAACHN0YXR1c2VzAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CgEAAAAWZ2VuZXJhdGVQb29sQWN0aXZlS2V5cwAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAJcG9vbEluZGV4CQEAAAAFdmFsdWUAAAABCQAETwAAAAIFAAAABXBvb2xzBQAAAARwb29sBAAAAAZzdGF0dXMJAAGRAAAAAgUAAAAIc3RhdHVzZXMFAAAACXBvb2xJbmRleAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sAgAAAAdfYWN0aXZlBQAAAAZzdGF0dXMFAAAAC2FjY3VtdWxhdGVkBAAAAA5wb29sQWN0aXZlS2V5cwoAAAAAAiRsBQAAAAVwb29scwoAAAAAAiRzCQABkAAAAAEFAAAAAiRsCgAAAAAFJGFjYzAFAAAAA25pbAoBAAAABSRmMF8xAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkBAAAAFmdlbmVyYXRlUG9vbEFjdGl2ZUtleXMAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAAVTGlzdCBzaXplIGV4Y2VlZHMgMTAwCQEAAAAFJGYwXzIAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAAAAAAAAAAAEQAAAAAAAAAAEgAAAAAAAAAAEwAAAAAAAAAAFAAAAAAAAAAAFQAAAAAAAAAAFgAAAAAAAAAAFwAAAAAAAAAAGAAAAAAAAAAAGQAAAAAAAAAAGgAAAAAAAAAAGwAAAAAAAAAAHAAAAAAAAAAAHQAAAAAAAAAAHgAAAAAAAAAAHwAAAAAAAAAAIAAAAAAAAAAAIQAAAAAAAAAAIgAAAAAAAAAAIwAAAAAAAAAAJAAAAAAAAAAAJQAAAAAAAAAAJgAAAAAAAAAAJwAAAAAAAAAAKAAAAAAAAAAAKQAAAAAAAAAAKgAAAAAAAAAAKwAAAAAAAAAALAAAAAAAAAAALQAAAAAAAAAALgAAAAAAAAAALwAAAAAAAAAAMAAAAAAAAAAAMQAAAAAAAAAAMgAAAAAAAAAAMwAAAAAAAAAANAAAAAAAAAAANQAAAAAAAAAANgAAAAAAAAAANwAAAAAAAAAAOAAAAAAAAAAAOQAAAAAAAAAAOgAAAAAAAAAAOwAAAAAAAAAAPAAAAAAAAAAAPQAAAAAAAAAAPgAAAAAAAAAAPwAAAAAAAAAAQAAAAAAAAAAAQQAAAAAAAAAAQgAAAAAAAAAAQwAAAAAAAAAARAAAAAAAAAAARQAAAAAAAAAARgAAAAAAAAAARwAAAAAAAAAASAAAAAAAAAAASQAAAAAAAAAASgAAAAAAAAAASwAAAAAAAAAATAAAAAAAAAAATQAAAAAAAAAATgAAAAAAAAAATwAAAAAAAAAAUAAAAAAAAAAAUQAAAAAAAAAAUgAAAAAAAAAAUwAAAAAAAAAAVAAAAAAAAAAAVQAAAAAAAAAAVgAAAAAAAAAAVwAAAAAAAAAAWAAAAAAAAAAAWQAAAAAAAAAAWgAAAAAAAAAAWwAAAAAAAAAAXAAAAAAAAAAAXQAAAAAAAAAAXgAAAAAAAAAAXwAAAAAAAAAAYAAAAAAAAAAAYQAA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", "height": 1913003, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7JdeDJkNLEZgYZyedBSsuhHtu2dbTVw5n4uNKWT8vtL9 Next: 8C8N2zosTqyJhAX2p5D8hGhRQSwV5kV9t9rxiXGzoj7u Diff:
OldNewDifferences
1717
1818 let h = Address(base58'3N7ExjwfofPYTvNBv2zqtAtLcMxqjTxS7iL')
1919
20-let i = "deposit"
20+let i = Address(base58'3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS')
2121
22-let j = "withdraw"
22+let j = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
2323
24-let k = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
24+let k = "SWOP_id"
2525
26-let l = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
26+let l = fromBase58String(getStringValue(j, k))
2727
28-let m = ["replenishWithTwoTokens", "exchange"]
28+let m = "deposit"
2929
30-func n (o) = {
31- let p = (o + "_active")
32- let q = {
33- let r = getBoolean(this, p)
34- if ($isInstanceOf(r, "Boolean"))
30+let n = "withdraw"
31+
32+let o = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
33+
34+let p = ["replenishWithTwoTokens", "exchange"]
35+
36+func q (r) = {
37+ let s = (r + "_active")
38+ let t = {
39+ let u = getBoolean(this, s)
40+ if ($isInstanceOf(u, "Boolean"))
3541 then {
36- let s = r
37- s
42+ let v = u
43+ v
3844 }
3945 else throw("Pool is not active!")
4046 }
41- q
47+ t
4248 }
4349
4450
45-func t (o) = {
46- let r = getString((o + "_service_token"))
47- if ($isInstanceOf(r, "String"))
51+func w (r) = {
52+ let u = getString((r + "_service_token"))
53+ if ($isInstanceOf(u, "String"))
4854 then {
49- let u = r
50- u
55+ let x = u
56+ x
5157 }
5258 else {
53- let v = r
59+ let y = u
5460 throw("You try to deposit on unsupported pool")
5561 }
5662 }
5763
5864
59-func w (o) = {
60- let r = getString((o + "_liquidity_token"))
61- if ($isInstanceOf(r, "String"))
65+func z (r) = {
66+ let u = getString((r + "_liquidity_token"))
67+ if ($isInstanceOf(u, "String"))
6268 then {
63- let u = r
64- u
69+ let x = u
70+ x
6571 }
6672 else {
67- let v = r
73+ let y = u
6874 throw("You try to withdraw from unsupported pool")
6975 }
7076 }
7177
7278
73-func x (y) = {
74- let r = getInteger(k, (((y + "_") + toString(this)) + "_share_tokens_locked"))
75- if ($isInstanceOf(r, "Int"))
76- then {
77- let z = r
78- z
79- }
80- else if ($isInstanceOf(r, "Unit"))
79+func A (B) = if ((B == toBase58String(l)))
80+ then {
81+ let u = getInteger(i, (toString(this) + "_SWOP_amount"))
82+ if ($isInstanceOf(u, "Int"))
8183 then {
82- let v = r
83- 0
84+ let C = u
85+ C
8486 }
85- else throw("Match error")
86- }
87+ else if ($isInstanceOf(u, "Unit"))
88+ then {
89+ let y = u
90+ 0
91+ }
92+ else throw("Match error")
93+ }
94+ else {
95+ let u = getInteger(j, (((B + "_") + toString(this)) + "_share_tokens_locked"))
96+ if ($isInstanceOf(u, "Int"))
97+ then {
98+ let C = u
99+ C
100+ }
101+ else if ($isInstanceOf(u, "Unit"))
102+ then {
103+ let y = u
104+ 0
105+ }
106+ else throw("Match error")
107+ }
87108
88109
89-func A (B,C,y,D) = {
90- let E = x(y)
91- let F = {
92- let r = assetInfo(C)
93- if ($isInstanceOf(r, "Asset"))
110+func D (E,F,B,G) = {
111+ let H = A(B)
112+ let I = {
113+ let u = assetInfo(F)
114+ if ($isInstanceOf(u, "Asset"))
94115 then {
95- let G = r
96- G.quantity
116+ let J = u
117+ J.quantity
97118 }
98119 else throw("Can't find asset")
99120 }
100- if ((E == 0))
101- then B
102- else if ((D == i))
121+ if ((H == 0))
122+ then E
123+ else if ((G == m))
103124 then {
104- let H = fraction(B, F, E)
105- H
125+ let K = fraction(E, I, H)
126+ K
106127 }
107128 else {
108- let H = fraction(B, E, F)
109- H
129+ let K = fraction(E, H, I)
130+ K
110131 }
111132 }
112133
113134
114-@Callable(I)
115-func addPools (J,K,L,M) = if (containsElement([d, e, f], I.callerPublicKey))
135+@Callable(L)
136+func test () = if (containsElement([d, e, f], L.callerPublicKey))
137+ then [StringEntry("test_admin", "passed")]
138+ else [StringEntry("test_admin", "not_passed")]
139+
140+
141+
142+@Callable(L)
143+func addPools (M,N,O,P) = if (containsElement([d, e, f], L.callerPublicKey))
116144 then {
117- func N (O,o) = IntegerEntry((o + "_asset_balance"), 0) :: O
145+ func Q (R,r) = IntegerEntry((r + "_asset_balance"), 0) :: R
118146
119- func P (O,o) = {
120- let Q = value(indexOf(J, o))
121- let R = K[Q]
122-StringEntry((o + "_liquidity_token"), R) :: O
147+ func S (R,r) = {
148+ let T = value(indexOf(M, r))
149+ let U = N[T]
150+StringEntry((r + "_liquidity_token"), U) :: R
123151 }
124152
125- func S (O,o) = {
126- let Q = value(indexOf(J, o))
127- let R = L[Q]
128-StringEntry((o + "_service_token"), R) :: O
153+ func V (R,r) = {
154+ let T = value(indexOf(M, r))
155+ let U = O[T]
156+StringEntry((r + "_service_token"), U) :: R
129157 }
130158
131- func T (O,o) = {
132- let Q = value(indexOf(J, o))
133- let R = M[Q]
134-IntegerEntry((o + "_service_token_decimal"), R) :: O
159+ func W (R,r) = {
160+ let T = value(indexOf(M, r))
161+ let U = P[T]
162+IntegerEntry((r + "_service_token_decimal"), U) :: R
135163 }
136164
137- func U (O,o) = BooleanEntry((o + "_active"), true) :: O
165+ func X (R,r) = BooleanEntry((r + "_active"), true) :: R
138166
139- let V = {
140- let W = J
141- let X = size(W)
142- let Y = nil
143- func Z (aa,ab) = if ((ab >= X))
144- then aa
145- else N(aa, W[ab])
167+ let Y = {
168+ let Z = M
169+ let aa = size(Z)
170+ let ab = nil
171+ func ac (ad,ae) = if ((ae >= aa))
172+ then ad
173+ else Q(ad, Z[ae])
146174
147- func ac (aa,ab) = if ((ab >= X))
148- then aa
175+ func af (ad,ae) = if ((ae >= aa))
176+ then ad
149177 else throw("List size exceeds 20")
150178
151- ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
179+ af(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
152180 }
153- let ad = {
154- let W = J
155- let X = size(W)
156- let Y = nil
157- func ae (aa,ab) = if ((ab >= X))
158- then aa
159- else P(aa, W[ab])
181+ let ag = {
182+ let Z = M
183+ let aa = size(Z)
184+ let ab = nil
185+ func ah (ad,ae) = if ((ae >= aa))
186+ then ad
187+ else S(ad, Z[ae])
160188
161- func af (aa,ab) = if ((ab >= X))
162- then aa
189+ func ai (ad,ae) = if ((ae >= aa))
190+ then ad
163191 else throw("List size exceeds 20")
164192
165- af(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
193+ ai(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
166194 }
167- let ag = {
168- let W = J
169- let X = size(W)
170- let Y = nil
171- func ah (aa,ab) = if ((ab >= X))
172- then aa
173- else S(aa, W[ab])
195+ let aj = {
196+ let Z = M
197+ let aa = size(Z)
198+ let ab = nil
199+ func ak (ad,ae) = if ((ae >= aa))
200+ then ad
201+ else V(ad, Z[ae])
174202
175- func ai (aa,ab) = if ((ab >= X))
176- then aa
203+ func al (ad,ae) = if ((ae >= aa))
204+ then ad
177205 else throw("List size exceeds 20")
178206
179- ai(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
207+ al(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
180208 }
181- let aj = {
182- let W = J
183- let X = size(W)
184- let Y = nil
185- func ak (aa,ab) = if ((ab >= X))
186- then aa
187- else T(aa, W[ab])
209+ let am = {
210+ let Z = M
211+ let aa = size(Z)
212+ let ab = nil
213+ func an (ad,ae) = if ((ae >= aa))
214+ then ad
215+ else W(ad, Z[ae])
188216
189- func al (aa,ab) = if ((ab >= X))
190- then aa
217+ func ao (ad,ae) = if ((ae >= aa))
218+ then ad
191219 else throw("List size exceeds 20")
192220
193- al(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
221+ ao(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
194222 }
195- let am = {
196- let W = J
197- let X = size(W)
198- let Y = nil
199- func an (aa,ab) = if ((ab >= X))
200- then aa
201- else U(aa, W[ab])
223+ let ap = {
224+ let Z = M
225+ let aa = size(Z)
226+ let ab = nil
227+ func aq (ad,ae) = if ((ae >= aa))
228+ then ad
229+ else X(ad, Z[ae])
202230
203- func ao (aa,ab) = if ((ab >= X))
204- then aa
231+ func ar (ad,ae) = if ((ae >= aa))
232+ then ad
205233 else throw("List size exceeds 20")
206234
207- ao(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
235+ ar(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
208236 }
209- ((((V ++ ad) ++ ag) ++ aj) ++ am)
237+ ((((Y ++ ag) ++ aj) ++ am) ++ ap)
210238 }
211239 else throw("Only admin can call this function")
212240
213241
214242
215-@Callable(I)
216-func deleteDepositLockRecords (ap) = if (containsElement([d, e, f], I.callerPublicKey))
243+@Callable(L)
244+func deleteDepositLockRecords (as) = if (containsElement([d, e, f], L.callerPublicKey))
217245 then {
218- func aq (O,ar) = DeleteEntry((ar + "_locked")) :: O
246+ func at (R,au) = DeleteEntry((au + "_locked")) :: R
219247
220- let as = {
221- let W = ap
222- let X = size(W)
223- let Y = nil
224- func Z (aa,ab) = if ((ab >= X))
225- then aa
226- else aq(aa, W[ab])
248+ let av = {
249+ let Z = as
250+ let aa = size(Z)
251+ let ab = nil
252+ func ac (ad,ae) = if ((ae >= aa))
253+ then ad
254+ else at(ad, Z[ae])
227255
228- func ac (aa,ab) = if ((ab >= X))
229- then aa
256+ func af (ad,ae) = if ((ae >= aa))
257+ then ad
230258 else throw("List size exceeds 100")
231259
232- ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
260+ af(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
233261 }
234- as
262+ av
235263 }
236264 else throw("Only admin can call this function")
237265
238266
239267
240-@Callable(I)
241-func issueToken (at,au,av,aw) = if (containsElement([d, e, f], I.callerPublicKey))
242- then [Issue(at, au, av, aw, true, unit, 0)]
268+@Callable(L)
269+func issueToken (aw,ax,ay,az) = if (containsElement([d, e, f], L.callerPublicKey))
270+ then [Issue(aw, ax, ay, az, true, unit, 0)]
243271 else throw("Only admin can call this function")
244272
245273
246274
247-@Callable(ax)
275+@Callable(aA)
248276 func call () = [DeleteEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_3N5viYFhnu1ew4FRZ9nujme9edr918FkT1a_current_reward")]
249277
250278
251279
252-@Callable(I)
253-func deposit (o) = if ((size(I.payments) != 1))
280+@Callable(L)
281+func deposit (r) = if ((size(L.payments) != 1))
254282 then throw("One attached payment expected")
255283 else {
256- let B = I.payments[0].amount
257- let C = I.payments[0].assetId
258- let ay = {
259- let r = C
260- if ($isInstanceOf(r, "ByteVector"))
284+ let E = L.payments[0].amount
285+ let F = L.payments[0].assetId
286+ let aB = {
287+ let u = F
288+ if ($isInstanceOf(u, "ByteVector"))
261289 then {
262- let az = r
263- toBase58String(az)
290+ let aC = u
291+ toBase58String(aC)
264292 }
265293 else throw("Match error")
266294 }
267- if ((0 >= B))
268- then throw(("Deposit amount must be positive. Actual: " + toString(B)))
295+ if ((0 >= E))
296+ then throw(("Deposit amount must be positive. Actual: " + toString(E)))
269297 else {
270- let aA = (o + "_asset_balance")
271- let aB = toString(I.caller)
272- let aC = (((o + "_") + aB) + "_asset_balance")
273- let aD = t(o)
274- let aE = {
275- let r = getString((o + "_liquidity_token"))
276- if ($isInstanceOf(r, "String"))
298+ let aD = (r + "_asset_balance")
299+ let aE = toString(L.caller)
300+ let aF = (((r + "_") + aE) + "_asset_balance")
301+ let aG = w(r)
302+ let aH = {
303+ let u = getString((r + "_liquidity_token"))
304+ if ($isInstanceOf(u, "String"))
277305 then {
278- let u = r
279- u
306+ let x = u
307+ x
280308 }
281309 else {
282- let v = r
310+ let y = u
283311 throw("You try to deposit on unsupported pool")
284312 }
285313 }
286- if (n(o))
314+ if (q(r))
287315 then {
288- let aF = {
289- let r = assetInfo(fromBase58String(aE))
290- if ($isInstanceOf(r, "Asset"))
316+ let aI = {
317+ let u = assetInfo(fromBase58String(aH))
318+ if ($isInstanceOf(u, "Asset"))
291319 then {
292- let G = r
293- G.decimals
320+ let J = u
321+ J.decimals
294322 }
295323 else throw("Can't find asset")
296324 }
297- if ((aE != ay))
325+ if ((aH != aB))
298326 then throw("You attached wrong liquidity token from Swop.fi")
299327 else {
300- let aG = getIntegerValue(this, aA)
301- let aH = {
302- let r = getInteger(aC)
303- if ($isInstanceOf(r, "Int"))
328+ let aJ = getIntegerValue(this, aD)
329+ let aK = {
330+ let u = getInteger(aF)
331+ if ($isInstanceOf(u, "Int"))
304332 then {
305- let aI = r
306- aI
333+ let aL = u
334+ aL
307335 }
308336 else {
309- let v = r
337+ let y = u
310338 0
311339 }
312340 }
313- let aJ = ((B - fraction(B, 1, a, HALFUP)) - fraction(B, 1, b, HALFUP))
314- let H = A(aJ, fromBase58String(aD), o, i)
315- let aK = (B - aJ)
316- let aL = ((aG + B) - aK)
317- let aM = (aH + H)
318- let aN = (((((o + "_") + aB) + "_") + toBase58String(I.transactionId)) + "_locked")
319-[Reissue(fromBase58String(aD), H, true), ScriptTransfer(I.caller, H, fromBase58String(aD)), ScriptTransfer(h, aK, fromBase58String(aE)), IntegerEntry(aN, aJ), IntegerEntry(aA, aL), IntegerEntry(aC, aM)]
341+ let aM = ((E - fraction(E, 1, a, HALFUP)) - fraction(E, 1, b, HALFUP))
342+ let K = D(aM, fromBase58String(aG), r, m)
343+ let aN = (E - aM)
344+ let aO = ((aJ + E) - aN)
345+ let aP = (aK + K)
346+ let aQ = (((((r + "_") + aE) + "_") + toBase58String(L.transactionId)) + "_locked")
347+[Reissue(fromBase58String(aG), K, true), ScriptTransfer(L.caller, K, fromBase58String(aG)), ScriptTransfer(h, aN, fromBase58String(aH)), IntegerEntry(aQ, aM), IntegerEntry(aD, aO), IntegerEntry(aF, aP)]
320348 }
321349 }
322350 else throw("Pool is not active!")
325353
326354
327355
328-@Callable(I)
329-func withdraw (o) = if ((size(I.payments) != 1))
356+@Callable(L)
357+func withdraw (r) = if ((size(L.payments) != 1))
330358 then throw("One attached payment expected")
331359 else {
332- let B = I.payments[0].amount
333- let C = I.payments[0].assetId
334- let ay = {
335- let r = C
336- if ($isInstanceOf(r, "ByteVector"))
360+ let E = L.payments[0].amount
361+ let F = L.payments[0].assetId
362+ let aB = {
363+ let u = F
364+ if ($isInstanceOf(u, "ByteVector"))
337365 then {
338- let az = r
339- toBase58String(az)
366+ let aC = u
367+ toBase58String(aC)
340368 }
341369 else throw("Match error")
342370 }
343- if ((0 >= B))
344- then throw(("Deposit amount must be positive. Actual: " + toString(B)))
345- else if (n(o))
371+ if ((0 >= E))
372+ then throw(("Deposit amount must be positive. Actual: " + toString(E)))
373+ else if (q(r))
346374 then {
347- let aA = (o + "_asset_balance")
348- let aB = toString(I.caller)
349- let aC = (((o + "_") + aB) + "_asset_balance")
350- let aH = {
351- let r = getInteger(aC)
352- if ($isInstanceOf(r, "Int"))
375+ let aD = (r + "_asset_balance")
376+ let aE = toString(L.caller)
377+ let aF = (((r + "_") + aE) + "_asset_balance")
378+ let aK = {
379+ let u = getInteger(aF)
380+ if ($isInstanceOf(u, "Int"))
353381 then {
354- let aI = r
355- aI
382+ let aL = u
383+ aL
356384 }
357385 else {
358- let v = r
386+ let y = u
359387 0
360388 }
361389 }
362- let aD = t(o)
363- let aE = w(o)
364- let aG = getIntegerValue(this, aA)
365- let H = A(B, fromBase58String(ay), o, j)
366- let aL = (aG - B)
367- let aM = (aH - B)
368-[Burn(fromBase58String(aD), B), ScriptTransfer(I.caller, H, fromBase58String(aE)), IntegerEntry(aA, aL), IntegerEntry(aC, aM)]
390+ let aG = w(r)
391+ let aH = z(r)
392+ let aJ = getIntegerValue(this, aD)
393+ let K = D(E, fromBase58String(aB), r, n)
394+ let aO = (aJ - E)
395+ let aP = (aK - E)
396+[Burn(fromBase58String(aG), E), ScriptTransfer(L.caller, K, fromBase58String(aH)), IntegerEntry(aD, aO), IntegerEntry(aF, aP)]
369397 }
370398 else throw("Pool is not active!")
371399 }
372400
373401
374402
375-@Callable(I)
376-func poolActivating (J,aO) = if (containsElement([d, e, f], I.callerPublicKey))
403+@Callable(L)
404+func poolActivating (M,aR) = if (containsElement([d, e, f], L.callerPublicKey))
377405 then {
378- func U (O,o) = {
379- let Q = value(indexOf(J, o))
380- let aP = aO[Q]
381-BooleanEntry((o + "_active"), aP) :: O
406+ func X (R,r) = {
407+ let T = value(indexOf(M, r))
408+ let aS = aR[T]
409+BooleanEntry((r + "_active"), aS) :: R
382410 }
383411
384- let am = {
385- let W = J
386- let X = size(W)
387- let Y = nil
388- func Z (aa,ab) = if ((ab >= X))
389- then aa
390- else U(aa, W[ab])
412+ let ap = {
413+ let Z = M
414+ let aa = size(Z)
415+ let ab = nil
416+ func ac (ad,ae) = if ((ae >= aa))
417+ then ad
418+ else X(ad, Z[ae])
391419
392- func ac (aa,ab) = if ((ab >= X))
393- then aa
420+ func af (ad,ae) = if ((ae >= aa))
421+ then ad
394422 else throw("List size exceeds 100")
395423
396- ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
424+ af(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
397425 }
398- am
426+ ap
399427 }
400428 else throw("Only admin can call this function")
401429
402430
403-@Verifier(aQ)
404-func aR () = {
405- let r = aQ
406- if ($isInstanceOf(r, "InvokeScriptTransaction"))
431+@Verifier(aT)
432+func aU () = {
433+ let u = aT
434+ if ($isInstanceOf(u, "InvokeScriptTransaction"))
407435 then {
408- let aS = r
409- let aT = if ((aS.dApp == k))
410- then if (if ((aS.function == "lockShareTokens"))
436+ let aV = u
437+ let aW = if ((aV.dApp == j))
438+ then if (if ((aV.function == "lockShareTokens"))
411439 then true
412- else (aS.function == "claim"))
440+ else (aV.function == "claim"))
413441 then true
414- else (aS.function == "withdrawShareTokens")
442+ else (aV.function == "withdrawShareTokens")
415443 else false
416- let aU = {
417- let aV = aS.dApp
418- if ($isInstanceOf(aV, "Address"))
444+ let aX = if ((aV.dApp == i))
445+ then if ((aV.function == "lockSWOP"))
446+ then true
447+ else (aV.function == "withdrawSWOP")
448+ else false
449+ let aY = {
450+ let aZ = aV.dApp
451+ if ($isInstanceOf(aZ, "Address"))
419452 then {
420- let aW = aV
421- toString(aW)
453+ let ba = aZ
454+ toString(ba)
422455 }
423456 else throw("Transaction must have only address")
424457 }
425- let aX = if (containsElement(l, aU))
426- then containsElement(m, aS.function)
458+ let bb = if (containsElement(o, aY))
459+ then containsElement(p, aV.function)
427460 else false
428- let aY = if (if (if (sigVerify(aQ.bodyBytes, aQ.proofs[0], d))
461+ let bc = if (if (if (sigVerify(aT.bodyBytes, aT.proofs[0], d))
429462 then true
430- else sigVerify(aQ.bodyBytes, aQ.proofs[0], e))
463+ else sigVerify(aT.bodyBytes, aT.proofs[0], e))
431464 then true
432- else sigVerify(aQ.bodyBytes, aQ.proofs[0], g))
465+ else sigVerify(aT.bodyBytes, aT.proofs[0], g))
433466 then true
434- else sigVerify(aQ.bodyBytes, aQ.proofs[0], aQ.senderPublicKey)
435- if (if (aT)
467+ else sigVerify(aT.bodyBytes, aT.proofs[0], aT.senderPublicKey)
468+ if (if (if (aW)
469+ then true
470+ else bb)
436471 then true
437472 else aX)
438- then aY
473+ then bc
439474 else false
440475 }
441476 else {
442- let aZ = if (sigVerify(aQ.bodyBytes, aQ.proofs[0], d))
477+ let bd = if (sigVerify(aT.bodyBytes, aT.proofs[0], d))
443478 then 1
444479 else 0
445- let ba = if (sigVerify(aQ.bodyBytes, aQ.proofs[1], e))
480+ let be = if (sigVerify(aT.bodyBytes, aT.proofs[1], e))
446481 then 1
447482 else 0
448- let bb = if (sigVerify(aQ.bodyBytes, aQ.proofs[2], f))
483+ let bf = if (sigVerify(aT.bodyBytes, aT.proofs[2], f))
449484 then 1
450485 else 0
451- (((aZ + ba) + bb) >= 2)
486+ (((bd + be) + bf) >= 2)
452487 }
453488 }
454489
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000
55
66 let b = 10000
77
88 let c = 10000
99
1010 let d = base58'68Po1k24uP6goKr7RDmXPg4QkMiKuyTMEirao14rif8s'
1111
1212 let e = base58'Bze4aurT9WmLgBT6swA9CajaZFtUwhtwCri6XGAjnAkt'
1313
1414 let f = base58'ALsqwPqiUP3bVbM7grozc1Y5oHVBAGKqACRJ5J8RXceC'
1515
1616 let g = base58'ALsqwPqiUP3bVbM7grozc1Y5oHVBAGKqACRJ5J8RXceC'
1717
1818 let h = Address(base58'3N7ExjwfofPYTvNBv2zqtAtLcMxqjTxS7iL')
1919
20-let i = "deposit"
20+let i = Address(base58'3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS')
2121
22-let j = "withdraw"
22+let j = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
2323
24-let k = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
24+let k = "SWOP_id"
2525
26-let l = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
26+let l = fromBase58String(getStringValue(j, k))
2727
28-let m = ["replenishWithTwoTokens", "exchange"]
28+let m = "deposit"
2929
30-func n (o) = {
31- let p = (o + "_active")
32- let q = {
33- let r = getBoolean(this, p)
34- if ($isInstanceOf(r, "Boolean"))
30+let n = "withdraw"
31+
32+let o = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
33+
34+let p = ["replenishWithTwoTokens", "exchange"]
35+
36+func q (r) = {
37+ let s = (r + "_active")
38+ let t = {
39+ let u = getBoolean(this, s)
40+ if ($isInstanceOf(u, "Boolean"))
3541 then {
36- let s = r
37- s
42+ let v = u
43+ v
3844 }
3945 else throw("Pool is not active!")
4046 }
41- q
47+ t
4248 }
4349
4450
45-func t (o) = {
46- let r = getString((o + "_service_token"))
47- if ($isInstanceOf(r, "String"))
51+func w (r) = {
52+ let u = getString((r + "_service_token"))
53+ if ($isInstanceOf(u, "String"))
4854 then {
49- let u = r
50- u
55+ let x = u
56+ x
5157 }
5258 else {
53- let v = r
59+ let y = u
5460 throw("You try to deposit on unsupported pool")
5561 }
5662 }
5763
5864
59-func w (o) = {
60- let r = getString((o + "_liquidity_token"))
61- if ($isInstanceOf(r, "String"))
65+func z (r) = {
66+ let u = getString((r + "_liquidity_token"))
67+ if ($isInstanceOf(u, "String"))
6268 then {
63- let u = r
64- u
69+ let x = u
70+ x
6571 }
6672 else {
67- let v = r
73+ let y = u
6874 throw("You try to withdraw from unsupported pool")
6975 }
7076 }
7177
7278
73-func x (y) = {
74- let r = getInteger(k, (((y + "_") + toString(this)) + "_share_tokens_locked"))
75- if ($isInstanceOf(r, "Int"))
76- then {
77- let z = r
78- z
79- }
80- else if ($isInstanceOf(r, "Unit"))
79+func A (B) = if ((B == toBase58String(l)))
80+ then {
81+ let u = getInteger(i, (toString(this) + "_SWOP_amount"))
82+ if ($isInstanceOf(u, "Int"))
8183 then {
82- let v = r
83- 0
84+ let C = u
85+ C
8486 }
85- else throw("Match error")
86- }
87+ else if ($isInstanceOf(u, "Unit"))
88+ then {
89+ let y = u
90+ 0
91+ }
92+ else throw("Match error")
93+ }
94+ else {
95+ let u = getInteger(j, (((B + "_") + toString(this)) + "_share_tokens_locked"))
96+ if ($isInstanceOf(u, "Int"))
97+ then {
98+ let C = u
99+ C
100+ }
101+ else if ($isInstanceOf(u, "Unit"))
102+ then {
103+ let y = u
104+ 0
105+ }
106+ else throw("Match error")
107+ }
87108
88109
89-func A (B,C,y,D) = {
90- let E = x(y)
91- let F = {
92- let r = assetInfo(C)
93- if ($isInstanceOf(r, "Asset"))
110+func D (E,F,B,G) = {
111+ let H = A(B)
112+ let I = {
113+ let u = assetInfo(F)
114+ if ($isInstanceOf(u, "Asset"))
94115 then {
95- let G = r
96- G.quantity
116+ let J = u
117+ J.quantity
97118 }
98119 else throw("Can't find asset")
99120 }
100- if ((E == 0))
101- then B
102- else if ((D == i))
121+ if ((H == 0))
122+ then E
123+ else if ((G == m))
103124 then {
104- let H = fraction(B, F, E)
105- H
125+ let K = fraction(E, I, H)
126+ K
106127 }
107128 else {
108- let H = fraction(B, E, F)
109- H
129+ let K = fraction(E, H, I)
130+ K
110131 }
111132 }
112133
113134
114-@Callable(I)
115-func addPools (J,K,L,M) = if (containsElement([d, e, f], I.callerPublicKey))
135+@Callable(L)
136+func test () = if (containsElement([d, e, f], L.callerPublicKey))
137+ then [StringEntry("test_admin", "passed")]
138+ else [StringEntry("test_admin", "not_passed")]
139+
140+
141+
142+@Callable(L)
143+func addPools (M,N,O,P) = if (containsElement([d, e, f], L.callerPublicKey))
116144 then {
117- func N (O,o) = IntegerEntry((o + "_asset_balance"), 0) :: O
145+ func Q (R,r) = IntegerEntry((r + "_asset_balance"), 0) :: R
118146
119- func P (O,o) = {
120- let Q = value(indexOf(J, o))
121- let R = K[Q]
122-StringEntry((o + "_liquidity_token"), R) :: O
147+ func S (R,r) = {
148+ let T = value(indexOf(M, r))
149+ let U = N[T]
150+StringEntry((r + "_liquidity_token"), U) :: R
123151 }
124152
125- func S (O,o) = {
126- let Q = value(indexOf(J, o))
127- let R = L[Q]
128-StringEntry((o + "_service_token"), R) :: O
153+ func V (R,r) = {
154+ let T = value(indexOf(M, r))
155+ let U = O[T]
156+StringEntry((r + "_service_token"), U) :: R
129157 }
130158
131- func T (O,o) = {
132- let Q = value(indexOf(J, o))
133- let R = M[Q]
134-IntegerEntry((o + "_service_token_decimal"), R) :: O
159+ func W (R,r) = {
160+ let T = value(indexOf(M, r))
161+ let U = P[T]
162+IntegerEntry((r + "_service_token_decimal"), U) :: R
135163 }
136164
137- func U (O,o) = BooleanEntry((o + "_active"), true) :: O
165+ func X (R,r) = BooleanEntry((r + "_active"), true) :: R
138166
139- let V = {
140- let W = J
141- let X = size(W)
142- let Y = nil
143- func Z (aa,ab) = if ((ab >= X))
144- then aa
145- else N(aa, W[ab])
167+ let Y = {
168+ let Z = M
169+ let aa = size(Z)
170+ let ab = nil
171+ func ac (ad,ae) = if ((ae >= aa))
172+ then ad
173+ else Q(ad, Z[ae])
146174
147- func ac (aa,ab) = if ((ab >= X))
148- then aa
175+ func af (ad,ae) = if ((ae >= aa))
176+ then ad
149177 else throw("List size exceeds 20")
150178
151- ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
179+ af(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
152180 }
153- let ad = {
154- let W = J
155- let X = size(W)
156- let Y = nil
157- func ae (aa,ab) = if ((ab >= X))
158- then aa
159- else P(aa, W[ab])
181+ let ag = {
182+ let Z = M
183+ let aa = size(Z)
184+ let ab = nil
185+ func ah (ad,ae) = if ((ae >= aa))
186+ then ad
187+ else S(ad, Z[ae])
160188
161- func af (aa,ab) = if ((ab >= X))
162- then aa
189+ func ai (ad,ae) = if ((ae >= aa))
190+ then ad
163191 else throw("List size exceeds 20")
164192
165- af(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
193+ ai(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
166194 }
167- let ag = {
168- let W = J
169- let X = size(W)
170- let Y = nil
171- func ah (aa,ab) = if ((ab >= X))
172- then aa
173- else S(aa, W[ab])
195+ let aj = {
196+ let Z = M
197+ let aa = size(Z)
198+ let ab = nil
199+ func ak (ad,ae) = if ((ae >= aa))
200+ then ad
201+ else V(ad, Z[ae])
174202
175- func ai (aa,ab) = if ((ab >= X))
176- then aa
203+ func al (ad,ae) = if ((ae >= aa))
204+ then ad
177205 else throw("List size exceeds 20")
178206
179- ai(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
207+ al(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
180208 }
181- let aj = {
182- let W = J
183- let X = size(W)
184- let Y = nil
185- func ak (aa,ab) = if ((ab >= X))
186- then aa
187- else T(aa, W[ab])
209+ let am = {
210+ let Z = M
211+ let aa = size(Z)
212+ let ab = nil
213+ func an (ad,ae) = if ((ae >= aa))
214+ then ad
215+ else W(ad, Z[ae])
188216
189- func al (aa,ab) = if ((ab >= X))
190- then aa
217+ func ao (ad,ae) = if ((ae >= aa))
218+ then ad
191219 else throw("List size exceeds 20")
192220
193- al(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
221+ ao(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
194222 }
195- let am = {
196- let W = J
197- let X = size(W)
198- let Y = nil
199- func an (aa,ab) = if ((ab >= X))
200- then aa
201- else U(aa, W[ab])
223+ let ap = {
224+ let Z = M
225+ let aa = size(Z)
226+ let ab = nil
227+ func aq (ad,ae) = if ((ae >= aa))
228+ then ad
229+ else X(ad, Z[ae])
202230
203- func ao (aa,ab) = if ((ab >= X))
204- then aa
231+ func ar (ad,ae) = if ((ae >= aa))
232+ then ad
205233 else throw("List size exceeds 20")
206234
207- ao(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
235+ ar(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
208236 }
209- ((((V ++ ad) ++ ag) ++ aj) ++ am)
237+ ((((Y ++ ag) ++ aj) ++ am) ++ ap)
210238 }
211239 else throw("Only admin can call this function")
212240
213241
214242
215-@Callable(I)
216-func deleteDepositLockRecords (ap) = if (containsElement([d, e, f], I.callerPublicKey))
243+@Callable(L)
244+func deleteDepositLockRecords (as) = if (containsElement([d, e, f], L.callerPublicKey))
217245 then {
218- func aq (O,ar) = DeleteEntry((ar + "_locked")) :: O
246+ func at (R,au) = DeleteEntry((au + "_locked")) :: R
219247
220- let as = {
221- let W = ap
222- let X = size(W)
223- let Y = nil
224- func Z (aa,ab) = if ((ab >= X))
225- then aa
226- else aq(aa, W[ab])
248+ let av = {
249+ let Z = as
250+ let aa = size(Z)
251+ let ab = nil
252+ func ac (ad,ae) = if ((ae >= aa))
253+ then ad
254+ else at(ad, Z[ae])
227255
228- func ac (aa,ab) = if ((ab >= X))
229- then aa
256+ func af (ad,ae) = if ((ae >= aa))
257+ then ad
230258 else throw("List size exceeds 100")
231259
232- ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
260+ af(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
233261 }
234- as
262+ av
235263 }
236264 else throw("Only admin can call this function")
237265
238266
239267
240-@Callable(I)
241-func issueToken (at,au,av,aw) = if (containsElement([d, e, f], I.callerPublicKey))
242- then [Issue(at, au, av, aw, true, unit, 0)]
268+@Callable(L)
269+func issueToken (aw,ax,ay,az) = if (containsElement([d, e, f], L.callerPublicKey))
270+ then [Issue(aw, ax, ay, az, true, unit, 0)]
243271 else throw("Only admin can call this function")
244272
245273
246274
247-@Callable(ax)
275+@Callable(aA)
248276 func call () = [DeleteEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_3N5viYFhnu1ew4FRZ9nujme9edr918FkT1a_current_reward")]
249277
250278
251279
252-@Callable(I)
253-func deposit (o) = if ((size(I.payments) != 1))
280+@Callable(L)
281+func deposit (r) = if ((size(L.payments) != 1))
254282 then throw("One attached payment expected")
255283 else {
256- let B = I.payments[0].amount
257- let C = I.payments[0].assetId
258- let ay = {
259- let r = C
260- if ($isInstanceOf(r, "ByteVector"))
284+ let E = L.payments[0].amount
285+ let F = L.payments[0].assetId
286+ let aB = {
287+ let u = F
288+ if ($isInstanceOf(u, "ByteVector"))
261289 then {
262- let az = r
263- toBase58String(az)
290+ let aC = u
291+ toBase58String(aC)
264292 }
265293 else throw("Match error")
266294 }
267- if ((0 >= B))
268- then throw(("Deposit amount must be positive. Actual: " + toString(B)))
295+ if ((0 >= E))
296+ then throw(("Deposit amount must be positive. Actual: " + toString(E)))
269297 else {
270- let aA = (o + "_asset_balance")
271- let aB = toString(I.caller)
272- let aC = (((o + "_") + aB) + "_asset_balance")
273- let aD = t(o)
274- let aE = {
275- let r = getString((o + "_liquidity_token"))
276- if ($isInstanceOf(r, "String"))
298+ let aD = (r + "_asset_balance")
299+ let aE = toString(L.caller)
300+ let aF = (((r + "_") + aE) + "_asset_balance")
301+ let aG = w(r)
302+ let aH = {
303+ let u = getString((r + "_liquidity_token"))
304+ if ($isInstanceOf(u, "String"))
277305 then {
278- let u = r
279- u
306+ let x = u
307+ x
280308 }
281309 else {
282- let v = r
310+ let y = u
283311 throw("You try to deposit on unsupported pool")
284312 }
285313 }
286- if (n(o))
314+ if (q(r))
287315 then {
288- let aF = {
289- let r = assetInfo(fromBase58String(aE))
290- if ($isInstanceOf(r, "Asset"))
316+ let aI = {
317+ let u = assetInfo(fromBase58String(aH))
318+ if ($isInstanceOf(u, "Asset"))
291319 then {
292- let G = r
293- G.decimals
320+ let J = u
321+ J.decimals
294322 }
295323 else throw("Can't find asset")
296324 }
297- if ((aE != ay))
325+ if ((aH != aB))
298326 then throw("You attached wrong liquidity token from Swop.fi")
299327 else {
300- let aG = getIntegerValue(this, aA)
301- let aH = {
302- let r = getInteger(aC)
303- if ($isInstanceOf(r, "Int"))
328+ let aJ = getIntegerValue(this, aD)
329+ let aK = {
330+ let u = getInteger(aF)
331+ if ($isInstanceOf(u, "Int"))
304332 then {
305- let aI = r
306- aI
333+ let aL = u
334+ aL
307335 }
308336 else {
309- let v = r
337+ let y = u
310338 0
311339 }
312340 }
313- let aJ = ((B - fraction(B, 1, a, HALFUP)) - fraction(B, 1, b, HALFUP))
314- let H = A(aJ, fromBase58String(aD), o, i)
315- let aK = (B - aJ)
316- let aL = ((aG + B) - aK)
317- let aM = (aH + H)
318- let aN = (((((o + "_") + aB) + "_") + toBase58String(I.transactionId)) + "_locked")
319-[Reissue(fromBase58String(aD), H, true), ScriptTransfer(I.caller, H, fromBase58String(aD)), ScriptTransfer(h, aK, fromBase58String(aE)), IntegerEntry(aN, aJ), IntegerEntry(aA, aL), IntegerEntry(aC, aM)]
341+ let aM = ((E - fraction(E, 1, a, HALFUP)) - fraction(E, 1, b, HALFUP))
342+ let K = D(aM, fromBase58String(aG), r, m)
343+ let aN = (E - aM)
344+ let aO = ((aJ + E) - aN)
345+ let aP = (aK + K)
346+ let aQ = (((((r + "_") + aE) + "_") + toBase58String(L.transactionId)) + "_locked")
347+[Reissue(fromBase58String(aG), K, true), ScriptTransfer(L.caller, K, fromBase58String(aG)), ScriptTransfer(h, aN, fromBase58String(aH)), IntegerEntry(aQ, aM), IntegerEntry(aD, aO), IntegerEntry(aF, aP)]
320348 }
321349 }
322350 else throw("Pool is not active!")
323351 }
324352 }
325353
326354
327355
328-@Callable(I)
329-func withdraw (o) = if ((size(I.payments) != 1))
356+@Callable(L)
357+func withdraw (r) = if ((size(L.payments) != 1))
330358 then throw("One attached payment expected")
331359 else {
332- let B = I.payments[0].amount
333- let C = I.payments[0].assetId
334- let ay = {
335- let r = C
336- if ($isInstanceOf(r, "ByteVector"))
360+ let E = L.payments[0].amount
361+ let F = L.payments[0].assetId
362+ let aB = {
363+ let u = F
364+ if ($isInstanceOf(u, "ByteVector"))
337365 then {
338- let az = r
339- toBase58String(az)
366+ let aC = u
367+ toBase58String(aC)
340368 }
341369 else throw("Match error")
342370 }
343- if ((0 >= B))
344- then throw(("Deposit amount must be positive. Actual: " + toString(B)))
345- else if (n(o))
371+ if ((0 >= E))
372+ then throw(("Deposit amount must be positive. Actual: " + toString(E)))
373+ else if (q(r))
346374 then {
347- let aA = (o + "_asset_balance")
348- let aB = toString(I.caller)
349- let aC = (((o + "_") + aB) + "_asset_balance")
350- let aH = {
351- let r = getInteger(aC)
352- if ($isInstanceOf(r, "Int"))
375+ let aD = (r + "_asset_balance")
376+ let aE = toString(L.caller)
377+ let aF = (((r + "_") + aE) + "_asset_balance")
378+ let aK = {
379+ let u = getInteger(aF)
380+ if ($isInstanceOf(u, "Int"))
353381 then {
354- let aI = r
355- aI
382+ let aL = u
383+ aL
356384 }
357385 else {
358- let v = r
386+ let y = u
359387 0
360388 }
361389 }
362- let aD = t(o)
363- let aE = w(o)
364- let aG = getIntegerValue(this, aA)
365- let H = A(B, fromBase58String(ay), o, j)
366- let aL = (aG - B)
367- let aM = (aH - B)
368-[Burn(fromBase58String(aD), B), ScriptTransfer(I.caller, H, fromBase58String(aE)), IntegerEntry(aA, aL), IntegerEntry(aC, aM)]
390+ let aG = w(r)
391+ let aH = z(r)
392+ let aJ = getIntegerValue(this, aD)
393+ let K = D(E, fromBase58String(aB), r, n)
394+ let aO = (aJ - E)
395+ let aP = (aK - E)
396+[Burn(fromBase58String(aG), E), ScriptTransfer(L.caller, K, fromBase58String(aH)), IntegerEntry(aD, aO), IntegerEntry(aF, aP)]
369397 }
370398 else throw("Pool is not active!")
371399 }
372400
373401
374402
375-@Callable(I)
376-func poolActivating (J,aO) = if (containsElement([d, e, f], I.callerPublicKey))
403+@Callable(L)
404+func poolActivating (M,aR) = if (containsElement([d, e, f], L.callerPublicKey))
377405 then {
378- func U (O,o) = {
379- let Q = value(indexOf(J, o))
380- let aP = aO[Q]
381-BooleanEntry((o + "_active"), aP) :: O
406+ func X (R,r) = {
407+ let T = value(indexOf(M, r))
408+ let aS = aR[T]
409+BooleanEntry((r + "_active"), aS) :: R
382410 }
383411
384- let am = {
385- let W = J
386- let X = size(W)
387- let Y = nil
388- func Z (aa,ab) = if ((ab >= X))
389- then aa
390- else U(aa, W[ab])
412+ let ap = {
413+ let Z = M
414+ let aa = size(Z)
415+ let ab = nil
416+ func ac (ad,ae) = if ((ae >= aa))
417+ then ad
418+ else X(ad, Z[ae])
391419
392- func ac (aa,ab) = if ((ab >= X))
393- then aa
420+ func af (ad,ae) = if ((ae >= aa))
421+ then ad
394422 else throw("List size exceeds 100")
395423
396- ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
424+ af(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
397425 }
398- am
426+ ap
399427 }
400428 else throw("Only admin can call this function")
401429
402430
403-@Verifier(aQ)
404-func aR () = {
405- let r = aQ
406- if ($isInstanceOf(r, "InvokeScriptTransaction"))
431+@Verifier(aT)
432+func aU () = {
433+ let u = aT
434+ if ($isInstanceOf(u, "InvokeScriptTransaction"))
407435 then {
408- let aS = r
409- let aT = if ((aS.dApp == k))
410- then if (if ((aS.function == "lockShareTokens"))
436+ let aV = u
437+ let aW = if ((aV.dApp == j))
438+ then if (if ((aV.function == "lockShareTokens"))
411439 then true
412- else (aS.function == "claim"))
440+ else (aV.function == "claim"))
413441 then true
414- else (aS.function == "withdrawShareTokens")
442+ else (aV.function == "withdrawShareTokens")
415443 else false
416- let aU = {
417- let aV = aS.dApp
418- if ($isInstanceOf(aV, "Address"))
444+ let aX = if ((aV.dApp == i))
445+ then if ((aV.function == "lockSWOP"))
446+ then true
447+ else (aV.function == "withdrawSWOP")
448+ else false
449+ let aY = {
450+ let aZ = aV.dApp
451+ if ($isInstanceOf(aZ, "Address"))
419452 then {
420- let aW = aV
421- toString(aW)
453+ let ba = aZ
454+ toString(ba)
422455 }
423456 else throw("Transaction must have only address")
424457 }
425- let aX = if (containsElement(l, aU))
426- then containsElement(m, aS.function)
458+ let bb = if (containsElement(o, aY))
459+ then containsElement(p, aV.function)
427460 else false
428- let aY = if (if (if (sigVerify(aQ.bodyBytes, aQ.proofs[0], d))
461+ let bc = if (if (if (sigVerify(aT.bodyBytes, aT.proofs[0], d))
429462 then true
430- else sigVerify(aQ.bodyBytes, aQ.proofs[0], e))
463+ else sigVerify(aT.bodyBytes, aT.proofs[0], e))
431464 then true
432- else sigVerify(aQ.bodyBytes, aQ.proofs[0], g))
465+ else sigVerify(aT.bodyBytes, aT.proofs[0], g))
433466 then true
434- else sigVerify(aQ.bodyBytes, aQ.proofs[0], aQ.senderPublicKey)
435- if (if (aT)
467+ else sigVerify(aT.bodyBytes, aT.proofs[0], aT.senderPublicKey)
468+ if (if (if (aW)
469+ then true
470+ else bb)
436471 then true
437472 else aX)
438- then aY
473+ then bc
439474 else false
440475 }
441476 else {
442- let aZ = if (sigVerify(aQ.bodyBytes, aQ.proofs[0], d))
477+ let bd = if (sigVerify(aT.bodyBytes, aT.proofs[0], d))
443478 then 1
444479 else 0
445- let ba = if (sigVerify(aQ.bodyBytes, aQ.proofs[1], e))
480+ let be = if (sigVerify(aT.bodyBytes, aT.proofs[1], e))
446481 then 1
447482 else 0
448- let bb = if (sigVerify(aQ.bodyBytes, aQ.proofs[2], f))
483+ let bf = if (sigVerify(aT.bodyBytes, aT.proofs[2], f))
449484 then 1
450485 else 0
451- (((aZ + ba) + bb) >= 2)
486+ (((bd + be) + bf) >= 2)
452487 }
453488 }
454489

github/deemru/w8io/026f985 
368.89 ms