tx · 4FmFGJwxneP5Jvrhq4XHJ4uHDpZaHcda9d74Yi4GXjUV

3MxFYk97QYdeHRMTu51rVyHqvFEVB4UtmBX:  -0.01700000 Waves

2022.09.15 10:54 [2229937] smart account 3MxFYk97QYdeHRMTu51rVyHqvFEVB4UtmBX > SELF 0.00000000 Waves

{ "type": 13, "id": "4FmFGJwxneP5Jvrhq4XHJ4uHDpZaHcda9d74Yi4GXjUV", "fee": 1700000, "feeAssetId": null, "timestamp": 1663228473768, "version": 2, "chainId": 84, "sender": "3MxFYk97QYdeHRMTu51rVyHqvFEVB4UtmBX", "senderPublicKey": "2panvMtE3s1p1oCdVqRGMuBYaZJV3AZ6zpdmZ6vHkDaL", "proofs": [ "4Draif5HciyvK2KdkihHLiwDdknNcC3pVNxrrSQZqSJXBfJaHcyYFxEBWW4MpfZ54XmqmybCvEZuTWnKHAD59uur", "4dCVT35YjTjzBEnFW9cdxVqsJgVQwQnAtCBLuKHPnZAH7vPSiSZAvgAyup7o6FjxUyHCMzAeWwwW8keZe1ceeTyx" ], "script": "base64:BgITCAISABIECgIIARIDCgEIEgASACEAB2tBY3RpdmUCBmFjdGl2ZQAGa0NhdXNlAg5zaHV0ZG93bl9jYXVzZQAWa0xhc3RQb29sVG9rZW5JbnRlcmVzdAITX3Bvb2xfbGFzdF9pbnRlcmVzdAARa1VzZXJMYXN0SW50ZXJlc3QCE191c2VyX2xhc3RfaW50ZXJlc3QAE2tVc2VyQ2xhaW1BdmFpbGFibGUCGF91c2VyX2F2YWlsYWJsZV90b19jbGFpbQAWa1VzZXJTaGFyZVRva2Vuc0xvY2tlZAIUX3NoYXJlX3Rva2Vuc19sb2NrZWQAEmtTaGFyZVRva2Vuc0xvY2tlZAIaX3RvdGFsX3NoYXJlX3Rva2Vuc19sb2NrZWQAC2tPcmFjbGVQb29sAgVwb29sXwANa1Bvb2xBc3NldElkcwIJYXNzZXRfaWRzAA1rQWRtaW5QdWJLZXkxAgthZG1pbl9wdWJfMQANa0FkbWluUHViS2V5MgILYWRtaW5fcHViXzIADWtBZG1pblB1YktleTMCC2FkbWluX3B1Yl8zAAxrRmFybWluZ0FkZHICD2Zhcm1pbmdfYWRkcmVzcwAKc2NhbGVWYWx1ZQCAwtcvAAZvcmFjbGUJAQdBZGRyZXNzAQEaAVTpRaoekC86rvG6DuYumpJfGpiE4fNiswgBE2dldEJhc2U1OEZyb21PcmFjbGUBA2tleQQHJG1hdGNoMAkAnQgCBQZvcmFjbGUFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEBnN0cmluZwUHJG1hdGNoMAkA2QQBBQZzdHJpbmcEB25vdGhpbmcFByRtYXRjaDAJAAIBCQCsAgIFA2tleQIIaXMgZW1wdHkADGFkbWluUHViS2V5MQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkxAAxhZG1pblB1YktleTIJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MgAMYWRtaW5QdWJLZXkzCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTMAC2Zhcm1pbmdBZGRyCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0Zhcm1pbmdBZGRyAAZhY3RpdmUJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUHa0FjdGl2ZQYBCGlzQWN0aXZlAAMFBmFjdGl2ZQUEdW5pdAkAAgECH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQBCmlzUG9vbENhbGwBBmNhbGxlcgMJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBQtrT3JhY2xlUG9vbAkApQgBBQZjYWxsZXIFBHVuaXQJAAIBAiBPbmx5IHBvb2wgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgENaXNGYXJtaW5nQ2FsbAEGY2FsbGVyAwkAAAIFBmNhbGxlcgULZmFybWluZ0FkZHIFBHVuaXQJAAIBAiNPbmx5IGZhcm1pbmcgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEHc3VzcGVuZAEFY2F1c2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIFB2tBY3RpdmUHCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmtDYXVzZQUFY2F1c2UFA25pbAEYZ2V0VXNlclNoYXJlVG9rZW5zTG9ja2VkAgRwb29sC3VzZXJBZGRyZXNzCQELdmFsdWVPckVsc2UCCQCaCAIFC2Zhcm1pbmdBZGRyCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQt1c2VyQWRkcmVzcwUWa1VzZXJTaGFyZVRva2Vuc0xvY2tlZAAAARlnZXRUb3RhbFNoYXJlVG9rZW5zTG9ja2VkAQRwb29sCQELdmFsdWVPckVsc2UCCQCaCAIFC2Zhcm1pbmdBZGRyCQCsAgIFBHBvb2wFEmtTaGFyZVRva2Vuc0xvY2tlZAAAARNnZXRVc2VyTGFzdEludGVyZXN0AwR1c2VyBHBvb2wHYXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUEdXNlcgIBXwUEcG9vbAIBXwUHYXNzZXRJZAURa1VzZXJMYXN0SW50ZXJlc3QAAAEYZ2V0UG9vbFRva2VuTGFzdEludGVyZXN0AgRwb29sB2Fzc2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwUHYXNzZXRJZAUWa0xhc3RQb29sVG9rZW5JbnRlcmVzdAAAARVnZXRVc2VyQ2xhaW1BdmFpbGFibGUDBHVzZXIEcG9vbAdhc3NldElkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQRwb29sAgFfBQdhc3NldElkBRNrVXNlckNsYWltQXZhaWxhYmxlAAABDWdldFN0ckFzc2V0SWQBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAJANgEAQUCaWQDCQABAgUHJG1hdGNoMAIEVW5pdAQFd2F2ZXMFByRtYXRjaDACBVdBVkVTCQACAQILTWF0Y2ggZXJyb3IBD2NhbGNDbGFpbUFtb3VudAMEcG9vbAdhc3NldElkBHVzZXIEDGxhc3RJbnRlcmVzdAkBGGdldFBvb2xUb2tlbkxhc3RJbnRlcmVzdAIFBHBvb2wFB2Fzc2V0SWQEEHVzZXJMYXN0SW50ZXJlc3QJARNnZXRVc2VyTGFzdEludGVyZXN0AwUEdXNlcgUEcG9vbAUHYXNzZXRJZAQVdXNlclNoYXJlVG9rZW5zTG9ja2VkCQEYZ2V0VXNlclNoYXJlVG9rZW5zTG9ja2VkAgUEcG9vbAUEdXNlcgQSdXNlckNsYWltQXZhaWxhYmxlCQEVZ2V0VXNlckNsYWltQXZhaWxhYmxlAwUEdXNlcgUEcG9vbAUHYXNzZXRJZAQVbmV3VXNlckNsYWltQXZhaWxhYmxlCQBrAwUVdXNlclNoYXJlVG9rZW5zTG9ja2VkCQBlAgUMbGFzdEludGVyZXN0BRB1c2VyTGFzdEludGVyZXN0BQpzY2FsZVZhbHVlCQCUCgIJAGQCBRJ1c2VyQ2xhaW1BdmFpbGFibGUFFW5ld1VzZXJDbGFpbUF2YWlsYWJsZQUMbGFzdEludGVyZXN0ARdjYWxjQ2xhaW1BbW91bnRFdmFsdWF0ZQIEcG9vbAR1c2VyBAhwb29sQWRkcgkBB0FkZHJlc3MBCQDZBAEFBHBvb2wECGFzc2V0SWRzCQC1CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQhwb29sQWRkcgUNa1Bvb2xBc3NldElkcwIWQ2FuJ3QgZmluZCBwb29sIGFzc2V0cwIBLAoBEGNhbGNDbGFpbUFtb3VudHMCA2FjYwdhc3NldElkBAskdDAzMzMyMzQwMgkBD2NhbGNDbGFpbUFtb3VudAMFBHBvb2wFB2Fzc2V0SWQFBHVzZXIEC2NsYWltQW1vdW50CAULJHQwMzMzMjM0MDICXzEEDGxhc3RJbnRlcmVzdAgFCyR0MDMzMzIzNDAyAl8yCQDNCAIFA2FjYwkAzAgCBQtjbGFpbUFtb3VudAUDbmlsBAxjbGFpbUFtb3VudHMKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEGNhbGNDbGFpbUFtb3VudHMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPCQCUCgIFCGFzc2V0SWRzBQxjbGFpbUFtb3VudHMFAWkBB2FpckRyb3AACQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQEKaXNQb29sQ2FsbAEIBQFpBmNhbGxlcgQLJHQwMzYxNTM2OTAJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAULJHQwMzYxNTM2OTACXzEECnBtdEFzc2V0SWQIBQskdDAzNjE1MzY5MAJfMgQEcG9vbAkApQgBCAUBaQZjYWxsZXIEFnRvdGFsU2hhcmVUb2tlbnNMb2NrZWQJARlnZXRUb3RhbFNoYXJlVG9rZW5zTG9ja2VkAQUEcG9vbAQMbGFzdEludGVyZXN0CQEYZ2V0UG9vbFRva2VuTGFzdEludGVyZXN0AgUEcG9vbAkBDWdldFN0ckFzc2V0SWQBBQpwbXRBc3NldElkBAtpbnRlcmVzdE5ldwkAZAIFDGxhc3RJbnRlcmVzdAMDCQBmAgUWdG90YWxTaGFyZVRva2Vuc0xvY2tlZAAACQBmAgUJcG10QW1vdW50AAAHCQBrAwUJcG10QW1vdW50BQpzY2FsZVZhbHVlBRZ0b3RhbFNoYXJlVG9rZW5zTG9ja2VkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8JAQ1nZXRTdHJBc3NldElkAQUKcG10QXNzZXRJZAUWa0xhc3RQb29sVG9rZW5JbnRlcmVzdAULaW50ZXJlc3ROZXcFA25pbAFpARJ1cGRhdGVVc2VySW50ZXJlc3QCBHBvb2wYbmV3VXNlclNoYXJlVG9rZW5zTG9ja2VkCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQENaXNGYXJtaW5nQ2FsbAEIBQFpBmNhbGxlcgQIcG9vbEFkZHIJAQdBZGRyZXNzAQkA2QQBBQRwb29sBAR1c2VyCQClCAEIBQFpDG9yaWdpbkNhbGxlcgQIYXNzZXRJZHMJALUJAgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFCHBvb2xBZGRyBQ1rUG9vbEFzc2V0SWRzAhZDYW4ndCBmaW5kIHBvb2wgYXNzZXRzAgEsCgEnY2FsY05ld1VzZXJJbnRlcmVzdEFuZENsYWltQW1vdW50RXRyaWVzAgNhY2MHYXNzZXRJZAQLJHQwNDU3ODQ2NDgJAQ9jYWxjQ2xhaW1BbW91bnQDBQRwb29sBQdhc3NldElkBQR1c2VyBAtjbGFpbUFtb3VudAgFCyR0MDQ1Nzg0NjQ4Al8xBAxsYXN0SW50ZXJlc3QIBQskdDA0NTc4NDY0OAJfMgkAzQgCBQNhY2MJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQRwb29sAgFfBQdhc3NldElkBRNrVXNlckNsYWltQXZhaWxhYmxlBQtjbGFpbUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBHVzZXICAV8FBHBvb2wCAV8FB2Fzc2V0SWQFEWtVc2VyTGFzdEludGVyZXN0BQxsYXN0SW50ZXJlc3QFA25pbAoAAiRsBQhhc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEnY2FsY05ld1VzZXJJbnRlcmVzdEFuZENsYWltQW1vdW50RXRyaWVzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwFpAQVjbGFpbQEEcG9vbAkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAQIcG9vbEFkZHIJAQdBZGRyZXNzAQkA2QQBBQRwb29sBAR1c2VyCQClCAEIBQFpBmNhbGxlcgQIYXNzZXRJZHMJALUJAgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFCHBvb2xBZGRyBQ1rUG9vbEFzc2V0SWRzAhZDYW4ndCBmaW5kIHBvb2wgYXNzZXRzAgEsCgEVY2FsY0NsYWltQW1vdW50RXRyaWVzAgNhY2MHYXNzZXRJZAQLJHQwNTMwMTUzMjUFA2FjYwQHZW50cmllcwgFCyR0MDUzMDE1MzI1Al8xBANzdW0IBQskdDA1MzAxNTMyNQJfMgQLJHQwNTMzMjU0MDIJAQ9jYWxjQ2xhaW1BbW91bnQDBQRwb29sBQdhc3NldElkBQR1c2VyBAtjbGFpbUFtb3VudAgFCyR0MDUzMzI1NDAyAl8xBAxsYXN0SW50ZXJlc3QIBQskdDA1MzMyNTQwMgJfMgkAlAoCCQDNCAIFB2VudHJpZXMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQtjbGFpbUFtb3VudAkA2QQBBQdhc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUEdXNlcgIBXwUEcG9vbAIBXwUHYXNzZXRJZAUTa1VzZXJDbGFpbUF2YWlsYWJsZQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUEdXNlcgIBXwUEcG9vbAIBXwUHYXNzZXRJZAURa1VzZXJMYXN0SW50ZXJlc3QFDGxhc3RJbnRlcmVzdAUDbmlsBQtjbGFpbUFtb3VudAQLJHQwNTcwMjU3ODQKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARVjYWxjQ2xhaW1BbW91bnRFdHJpZXMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAxjbGFpbUVudHJpZXMIBQskdDA1NzAyNTc4NAJfMQQJc3VtVG9rZW5zCAULJHQwNTcwMjU3ODQCXzIDCQAAAgUJc3VtVG9rZW5zAAAJAAIBAhxZb3UgaGF2ZSBubyB0b2tlbnMgZm9yIGNsYWltBQxjbGFpbUVudHJpZXMBaQEIc2h1dGRvd24AAwkBASEBBQZhY3RpdmUJAAIBCQCsAgICIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUGa0NhdXNlAhp0aGUgY2F1c2Ugd2Fzbid0IHNwZWNpZmllZAMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUMYWRtaW5QdWJLZXkxCQDMCAIFDGFkbWluUHViS2V5MgkAzAgCBQxhZG1pblB1YktleTMFA25pbAgFAWkPY2FsbGVyUHVibGljS2V5CQACAQIhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQEHc3VzcGVuZAECD1BhdXNlZCBieSBhZG1pbgFpAQhhY3RpdmF0ZQADBQZhY3RpdmUJAAIBAhZEQXBwIGlzIGFscmVhZHkgYWN0aXZlAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQxhZG1pblB1YktleTEJAMwIAgUMYWRtaW5QdWJLZXkyCQDMCAIFDGFkbWluUHViS2V5MwUDbmlsCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAAIBAiFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAMwIAgkBDEJvb2xlYW5FbnRyeQIFB2tBY3RpdmUGCQDMCAIJAQtEZWxldGVFbnRyeQEFBmtDYXVzZQUDbmlsAQJ0eAEGdmVyaWZ5AAQSYWRtaW5QdWJLZXkxU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkxAAEAAAQSYWRtaW5QdWJLZXkyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUMYWRtaW5QdWJLZXkyAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUMYWRtaW5QdWJLZXkzAAEAAAkAZwIJAGQCCQBkAgUSYWRtaW5QdWJLZXkxU2lnbmVkBRJhZG1pblB1YktleTJTaWduZWQFEmFkbWluUHViS2V5M1NpZ25lZAACVBme3g==", "height": 2229937, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 998GTpcEfvuZn33A2s39oMv81gypA2XgXt7ygiBjT6M5 Next: GtB9EvDXebCq1iVMMCGMpQZ7SAeHqJpDmb5qcBhr4MQZ Diff:
OldNewDifferences
149149
150150
151151 @Callable(i)
152-func updateUserInterest (newUserShareTokensLocked) = valueOrElse(isActive(), valueOrElse(isFarmingCall(i.caller), {
153- let poolAddr = i.caller
152+func updateUserInterest (pool,newUserShareTokensLocked) = valueOrElse(isActive(), valueOrElse(isFarmingCall(i.caller), {
153+ let poolAddr = Address(fromBase58String(pool))
154154 let user = toString(i.originCaller)
155- let pool = toString(poolAddr)
156155 let assetIds = split(valueOrErrorMessage(getString(poolAddr, kPoolAssetIds), "Can't find pool assets"), ",")
157156 func calcNewUserInterestAndClaimAmountEtries (acc,assetId) = {
158- let $t045754645 = calcClaimAmount(pool, assetId, user)
159- let claimAmount = $t045754645._1
160- let lastInterest = $t045754645._2
157+ let $t045784648 = calcClaimAmount(pool, assetId, user)
158+ let claimAmount = $t045784648._1
159+ let lastInterest = $t045784648._2
161160 (acc :+ [IntegerEntry((((((user + "_") + pool) + "_") + assetId) + kUserClaimAvailable), claimAmount), IntegerEntry((((((user + "_") + pool) + "_") + assetId) + kUserLastInterest), lastInterest)])
162161 }
163162
183182 let user = toString(i.caller)
184183 let assetIds = split(valueOrErrorMessage(getString(poolAddr, kPoolAssetIds), "Can't find pool assets"), ",")
185184 func calcClaimAmountEtries (acc,assetId) = {
186- let $t052985322 = acc
187- let entries = $t052985322._1
188- let sum = $t052985322._2
189- let $t053295399 = calcClaimAmount(pool, assetId, user)
190- let claimAmount = $t053295399._1
191- let lastInterest = $t053295399._2
185+ let $t053015325 = acc
186+ let entries = $t053015325._1
187+ let sum = $t053015325._2
188+ let $t053325402 = calcClaimAmount(pool, assetId, user)
189+ let claimAmount = $t053325402._1
190+ let lastInterest = $t053325402._2
192191 $Tuple2((entries :+ [ScriptTransfer(i.caller, claimAmount, fromBase58String(assetId)), IntegerEntry((((((user + "_") + pool) + "_") + assetId) + kUserClaimAvailable), 0), IntegerEntry((((((user + "_") + pool) + "_") + assetId) + kUserLastInterest), lastInterest)]), claimAmount)
193192 }
194193
195- let $t056995781 = {
194+ let $t057025784 = {
196195 let $l = assetIds
197196 let $s = size($l)
198197 let $acc0 = $Tuple2(nil, 0)
206205
207206 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
208207 }
209- let claimEntries = $t056995781._1
210- let sumTokens = $t056995781._2
208+ let claimEntries = $t057025784._1
209+ let sumTokens = $t057025784._2
211210 if ((sumTokens == 0))
212211 then throw("You have no tokens for claim")
213212 else claimEntries
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let kActive = "active"
55
66 let kCause = "shutdown_cause"
77
88 let kLastPoolTokenInterest = "_pool_last_interest"
99
1010 let kUserLastInterest = "_user_last_interest"
1111
1212 let kUserClaimAvailable = "_user_available_to_claim"
1313
1414 let kUserShareTokensLocked = "_share_tokens_locked"
1515
1616 let kShareTokensLocked = "_total_share_tokens_locked"
1717
1818 let kOraclePool = "pool_"
1919
2020 let kPoolAssetIds = "asset_ids"
2121
2222 let kAdminPubKey1 = "admin_pub_1"
2323
2424 let kAdminPubKey2 = "admin_pub_2"
2525
2626 let kAdminPubKey3 = "admin_pub_3"
2727
2828 let kFarmingAddr = "farming_address"
2929
3030 let scaleValue = 100000000
3131
3232 let oracle = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
3333
3434 func getBase58FromOracle (key) = match getString(oracle, key) {
3535 case string: String =>
3636 fromBase58String(string)
3737 case nothing =>
3838 throw((key + "is empty"))
3939 }
4040
4141
4242 let adminPubKey1 = getBase58FromOracle(kAdminPubKey1)
4343
4444 let adminPubKey2 = getBase58FromOracle(kAdminPubKey2)
4545
4646 let adminPubKey3 = getBase58FromOracle(kAdminPubKey3)
4747
4848 let farmingAddr = Address(getBase58FromOracle(kFarmingAddr))
4949
5050 let active = valueOrElse(getBoolean(this, kActive), true)
5151
5252 func isActive () = if (active)
5353 then unit
5454 else throw("DApp is inactive at this moment")
5555
5656
5757 func isPoolCall (caller) = if (isDefined(getString(oracle, (kOraclePool + toString(caller)))))
5858 then unit
5959 else throw("Only pool can call this function")
6060
6161
6262 func isFarmingCall (caller) = if ((caller == farmingAddr))
6363 then unit
6464 else throw("Only farming can call this function")
6565
6666
6767 func suspend (cause) = [BooleanEntry(kActive, false), StringEntry(kCause, cause)]
6868
6969
7070 func getUserShareTokensLocked (pool,userAddress) = valueOrElse(getInteger(farmingAddr, (((pool + "_") + userAddress) + kUserShareTokensLocked)), 0)
7171
7272
7373 func getTotalShareTokensLocked (pool) = valueOrElse(getInteger(farmingAddr, (pool + kShareTokensLocked)), 0)
7474
7575
7676 func getUserLastInterest (user,pool,assetId) = valueOrElse(getInteger(this, (((((user + "_") + pool) + "_") + assetId) + kUserLastInterest)), 0)
7777
7878
7979 func getPoolTokenLastInterest (pool,assetId) = valueOrElse(getInteger(this, (((pool + "_") + assetId) + kLastPoolTokenInterest)), 0)
8080
8181
8282 func getUserClaimAvailable (user,pool,assetId) = valueOrElse(getInteger(this, (((((user + "_") + pool) + "_") + assetId) + kUserClaimAvailable)), 0)
8383
8484
8585 func getStrAssetId (assetId) = match assetId {
8686 case id: ByteVector =>
8787 toBase58String(id)
8888 case waves: Unit =>
8989 "WAVES"
9090 case _ =>
9191 throw("Match error")
9292 }
9393
9494
9595 func calcClaimAmount (pool,assetId,user) = {
9696 let lastInterest = getPoolTokenLastInterest(pool, assetId)
9797 let userLastInterest = getUserLastInterest(user, pool, assetId)
9898 let userShareTokensLocked = getUserShareTokensLocked(pool, user)
9999 let userClaimAvailable = getUserClaimAvailable(user, pool, assetId)
100100 let newUserClaimAvailable = fraction(userShareTokensLocked, (lastInterest - userLastInterest), scaleValue)
101101 $Tuple2((userClaimAvailable + newUserClaimAvailable), lastInterest)
102102 }
103103
104104
105105 func calcClaimAmountEvaluate (pool,user) = {
106106 let poolAddr = Address(fromBase58String(pool))
107107 let assetIds = split(valueOrErrorMessage(getString(poolAddr, kPoolAssetIds), "Can't find pool assets"), ",")
108108 func calcClaimAmounts (acc,assetId) = {
109109 let $t033323402 = calcClaimAmount(pool, assetId, user)
110110 let claimAmount = $t033323402._1
111111 let lastInterest = $t033323402._2
112112 (acc :+ [claimAmount])
113113 }
114114
115115 let claimAmounts = {
116116 let $l = assetIds
117117 let $s = size($l)
118118 let $acc0 = nil
119119 func $f0_1 ($a,$i) = if (($i >= $s))
120120 then $a
121121 else calcClaimAmounts($a, $l[$i])
122122
123123 func $f0_2 ($a,$i) = if (($i >= $s))
124124 then $a
125125 else throw("List size exceeds 15")
126126
127127 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
128128 }
129129 $Tuple2(assetIds, claimAmounts)
130130 }
131131
132132
133133 @Callable(i)
134134 func airDrop () = valueOrElse(isActive(), valueOrElse(isPoolCall(i.caller), {
135135 let $t036153690 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
136136 let pmtAmount = $t036153690._1
137137 let pmtAssetId = $t036153690._2
138138 let pool = toString(i.caller)
139139 let totalShareTokensLocked = getTotalShareTokensLocked(pool)
140140 let lastInterest = getPoolTokenLastInterest(pool, getStrAssetId(pmtAssetId))
141141 let interestNew = (lastInterest + (if (if ((totalShareTokensLocked > 0))
142142 then (pmtAmount > 0)
143143 else false)
144144 then fraction(pmtAmount, scaleValue, totalShareTokensLocked)
145145 else 0))
146146 [IntegerEntry((((pool + "_") + getStrAssetId(pmtAssetId)) + kLastPoolTokenInterest), interestNew)]
147147 }))
148148
149149
150150
151151 @Callable(i)
152-func updateUserInterest (newUserShareTokensLocked) = valueOrElse(isActive(), valueOrElse(isFarmingCall(i.caller), {
153- let poolAddr = i.caller
152+func updateUserInterest (pool,newUserShareTokensLocked) = valueOrElse(isActive(), valueOrElse(isFarmingCall(i.caller), {
153+ let poolAddr = Address(fromBase58String(pool))
154154 let user = toString(i.originCaller)
155- let pool = toString(poolAddr)
156155 let assetIds = split(valueOrErrorMessage(getString(poolAddr, kPoolAssetIds), "Can't find pool assets"), ",")
157156 func calcNewUserInterestAndClaimAmountEtries (acc,assetId) = {
158- let $t045754645 = calcClaimAmount(pool, assetId, user)
159- let claimAmount = $t045754645._1
160- let lastInterest = $t045754645._2
157+ let $t045784648 = calcClaimAmount(pool, assetId, user)
158+ let claimAmount = $t045784648._1
159+ let lastInterest = $t045784648._2
161160 (acc :+ [IntegerEntry((((((user + "_") + pool) + "_") + assetId) + kUserClaimAvailable), claimAmount), IntegerEntry((((((user + "_") + pool) + "_") + assetId) + kUserLastInterest), lastInterest)])
162161 }
163162
164163 let $l = assetIds
165164 let $s = size($l)
166165 let $acc0 = nil
167166 func $f0_1 ($a,$i) = if (($i >= $s))
168167 then $a
169168 else calcNewUserInterestAndClaimAmountEtries($a, $l[$i])
170169
171170 func $f0_2 ($a,$i) = if (($i >= $s))
172171 then $a
173172 else throw("List size exceeds 15")
174173
175174 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
176175 }))
177176
178177
179178
180179 @Callable(i)
181180 func claim (pool) = valueOrElse(isActive(), {
182181 let poolAddr = Address(fromBase58String(pool))
183182 let user = toString(i.caller)
184183 let assetIds = split(valueOrErrorMessage(getString(poolAddr, kPoolAssetIds), "Can't find pool assets"), ",")
185184 func calcClaimAmountEtries (acc,assetId) = {
186- let $t052985322 = acc
187- let entries = $t052985322._1
188- let sum = $t052985322._2
189- let $t053295399 = calcClaimAmount(pool, assetId, user)
190- let claimAmount = $t053295399._1
191- let lastInterest = $t053295399._2
185+ let $t053015325 = acc
186+ let entries = $t053015325._1
187+ let sum = $t053015325._2
188+ let $t053325402 = calcClaimAmount(pool, assetId, user)
189+ let claimAmount = $t053325402._1
190+ let lastInterest = $t053325402._2
192191 $Tuple2((entries :+ [ScriptTransfer(i.caller, claimAmount, fromBase58String(assetId)), IntegerEntry((((((user + "_") + pool) + "_") + assetId) + kUserClaimAvailable), 0), IntegerEntry((((((user + "_") + pool) + "_") + assetId) + kUserLastInterest), lastInterest)]), claimAmount)
193192 }
194193
195- let $t056995781 = {
194+ let $t057025784 = {
196195 let $l = assetIds
197196 let $s = size($l)
198197 let $acc0 = $Tuple2(nil, 0)
199198 func $f0_1 ($a,$i) = if (($i >= $s))
200199 then $a
201200 else calcClaimAmountEtries($a, $l[$i])
202201
203202 func $f0_2 ($a,$i) = if (($i >= $s))
204203 then $a
205204 else throw("List size exceeds 15")
206205
207206 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
208207 }
209- let claimEntries = $t056995781._1
210- let sumTokens = $t056995781._2
208+ let claimEntries = $t057025784._1
209+ let sumTokens = $t057025784._2
211210 if ((sumTokens == 0))
212211 then throw("You have no tokens for claim")
213212 else claimEntries
214213 })
215214
216215
217216
218217 @Callable(i)
219218 func shutdown () = if (!(active))
220219 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, kCause), "the cause wasn't specified")))
221220 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey)))
222221 then throw("Only admin can call this function")
223222 else suspend("Paused by admin")
224223
225224
226225
227226 @Callable(i)
228227 func activate () = if (active)
229228 then throw("DApp is already active")
230229 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey)))
231230 then throw("Only admin can call this function")
232231 else [BooleanEntry(kActive, true), DeleteEntry(kCause)]
233232
234233
235234 @Verifier(tx)
236235 func verify () = {
237236 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
238237 then 1
239238 else 0
240239 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
241240 then 1
242241 else 0
243242 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
244243 then 1
245244 else 0
246245 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
247246 }
248247

github/deemru/w8io/873ac7e 
39.27 ms