tx · 9uP2Qa9eT74CrjyrmX9eLkw3Rur2wPYbyk3J4VuQ9n4S

3Mp6q2xQpfg2SsgQCmb5wrLEoccocLzsHe7:  -0.01400000 Waves

2021.03.13 17:01 [1436004] smart account 3Mp6q2xQpfg2SsgQCmb5wrLEoccocLzsHe7 > SELF 0.00000000 Waves

{ "type": 13, "id": "9uP2Qa9eT74CrjyrmX9eLkw3Rur2wPYbyk3J4VuQ9n4S", "fee": 1400000, "feeAssetId": null, "timestamp": 1615644138228, "version": 1, "sender": "3Mp6q2xQpfg2SsgQCmb5wrLEoccocLzsHe7", "senderPublicKey": "6ytFxpvYWgvpRb57S4oF6hQ6Koh2Mj5eate4LUXdCyCW", "proofs": [ "sWA4jKunEor6KvDDXPMofjKbxqT1Ui5N7t7emGdQs4JgUVDptxJwkSwdpfhycApfp5hYZunA5y7jb7Cv8z4q2wP" ], "script": "base64:AAIEAAAAAAAAABwIAhIDCgEIEgMKAQgSAwoBCBIECgIIARIDCgEIAAAAIQAAAAAMYWRtaW5QdWJLZXkxAQAAACC6Cdc7iVmk0V2g//G7M9Cq4TlpD8vivZHWO+5PXqjgEwAAAAAMYWRtaW5QdWJLZXkyAQAAACDCkUSZs9KwtA0ipZFYvYi8oTe7CMv/3YzmlO9bFg5+QAAAAAAMYWRtaW5QdWJLZXkzAQAAACCOHhcueLEHO/RITnozKGB2KHf8meWSMKMgws+oq+kOVQAAAAAUa2V5U2hhcmVUb2tlbnNMb2NrZWQCAAAAGl90b3RhbF9zaGFyZV90b2tlbnNfbG9ja2VkAAAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50AgAAAB1fY3VycmVudF9wb29sX2ZyYWN0aW9uX3Jld2FyZAAAAAAda2V5UmV3YXJkUG9vbEZyYWN0aW9uUHJldmlvdXMCAAAAHl9wcmV2aW91c19wb29sX2ZyYWN0aW9uX3Jld2FyZAAAAAAda2V5VG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQCAAAAHnRvdGFsX3Jld2FyZF9wZXJfYmxvY2tfY3VycmVudAAAAAAea2V5VG90YWxSZXdhcmRQZXJCbG9ja1ByZXZpb3VzAgAAAB90b3RhbF9yZXdhcmRfcGVyX2Jsb2NrX3ByZXZpb3VzAAAAABVrZXlSZXdhcmRVcGRhdGVIZWlnaHQCAAAAFHJld2FyZF91cGRhdGVfaGVpZ2h0AAAAAA9rZXlMYXN0SW50ZXJlc3QCAAAADl9sYXN0X2ludGVyZXN0AAAAABVrZXlMYXN0SW50ZXJlc3RIZWlnaHQCAAAAFV9sYXN0X2ludGVyZXN0X2hlaWdodAAAAAAYa2V5VXNlclNoYXJlVG9rZW5zTG9ja2VkAgAAABRfc2hhcmVfdG9rZW5zX2xvY2tlZAAAAAATa2V5VXNlckxhc3RJbnRlcmVzdAIAAAAOX2xhc3RfaW50ZXJlc3QAAAAACWtleVNXT1BpZAIAAAAHU1dPUF9pZAAAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50AgAAABRfU1dPUF9jbGFpbWVkX2Ftb3VudAAAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAIAAAAZX1NXT1BfbGFzdF9jbGFpbWVkX2Ftb3VudAAAAAAQa2V5QXZhaWxhYmxlU1dPUAIAAAAPX2F2YWlsYWJsZV9TV09QAAAAABVrZXlGYXJtaW5nU3RhcnRIZWlnaHQCAAAAFGZhcm1pbmdfc3RhcnRfaGVpZ2h0AAAAABFnb3Zlcm5hbnZlQWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVOIvRnAfAlfiWx68HOIeHDJDuNNowHPa2AAAAAAOb25lV2Vla0luQmxvY2sAAAAAAAAAJ3oAAAAADnRvdGFsVm90ZVNoYXJlAAAAAAJUC+QAAAAAAARTV09QCQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAACWtleVNXT1BpZAEAAAAYZ2V0VG90YWxTaGFyZVRva2VuTG9ja2VkAAAAAQAAAARwb29sCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABRrZXlTaGFyZVRva2Vuc0xvY2tlZAkAASwAAAACCQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAAARwb29sBQAAABRrZXlTaGFyZVRva2Vuc0xvY2tlZAEAAAAPZ2V0U2hhcmVBc3NldElkAAAAAQAAAARwb29sCQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQUAAAAEcG9vbAIAAAAOc2hhcmVfYXNzZXRfaWQBAAAADmNhbGNTY2FsZVZhbHVlAAAAAgAAAAhhc3NldElkMQAAAAhhc3NldElkMgQAAAAQYXNzZXRJZDFEZWNpbWFscwgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAIYXNzZXRJZDEAAAAIZGVjaW1hbHMEAAAAEGFzc2V0SWQyRGVjaW1hbHMICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAACGFzc2V0SWQyAAAACGRlY2ltYWxzBAAAAAtzY2FsZURpZ2l0cwkAAGQAAAACCQAAZQAAAAIFAAAAEGFzc2V0SWQyRGVjaW1hbHMFAAAAEGFzc2V0SWQxRGVjaW1hbHMAAAAAAAAAAAgJAABsAAAABgAAAAAAAAAACgAAAAAAAAAAAAUAAAALc2NhbGVEaWdpdHMAAAAAAAAAAAAAAAAAAAAAAAAFAAAACEhBTEZET1dOAQAAABF1c2VyQXZhaWxhYmxlU1dPUAAAAAIAAAAEcG9vbAAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8JAAQlAAAAAQUAAAAEdXNlcgUAAAAQa2V5QXZhaWxhYmxlU1dPUAAAAAAAAAAAAAEAAAAKcmV3YXJkSW5mbwAAAAEAAAAEcG9vbAQAAAAadG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABFnb3Zlcm5hbnZlQWRkcmVzcwUAAAAda2V5VG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAAB1rZXlUb3RhbFJld2FyZFBlckJsb2NrQ3VycmVudAIAAAAMIGF0IGFkZHJlc3MgCQAEJQAAAAEFAAAAEWdvdmVybmFudmVBZGRyZXNzBAAAABt0b3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABFnb3Zlcm5hbnZlQWRkcmVzcwUAAAAea2V5VG90YWxSZXdhcmRQZXJCbG9ja1ByZXZpb3VzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABRObyBkYXRhIG9uIHRoZSBrZXk6IAUAAAAea2V5VG90YWxSZXdhcmRQZXJCbG9ja1ByZXZpb3VzAgAAAAwgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAARZ292ZXJuYW52ZUFkZHJlc3MEAAAAGXJld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABFnb3Zlcm5hbnZlQWRkcmVzcwkAASwAAAACBQAAAARwb29sBQAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAAARwb29sBQAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50AgAAAAwgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAARZ292ZXJuYW52ZUFkZHJlc3MEAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAEWdvdmVybmFudmVBZGRyZXNzBQAAABVrZXlSZXdhcmRVcGRhdGVIZWlnaHQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAABVrZXlSZXdhcmRVcGRhdGVIZWlnaHQCAAAADCBhdCBhZGRyZXNzIAkABCUAAAABBQAAABFnb3Zlcm5hbnZlQWRkcmVzcwQAAAAacmV3YXJkUG9vbEZyYWN0aW9uUHJldmlvdXMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABFnb3Zlcm5hbnZlQWRkcmVzcwkAASwAAAACBQAAAARwb29sBQAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABRObyBkYXRhIG9uIHRoZSBrZXk6IAUAAAAEcG9vbAUAAAAda2V5UmV3YXJkUG9vbEZyYWN0aW9uUHJldmlvdXMCAAAADCBhdCBhZGRyZXNzIAkABCUAAAABBQAAABFnb3Zlcm5hbnZlQWRkcmVzcwQAAAARcmV3YXJkUG9vbEN1cnJlbnQJAABrAAAAAwUAAAAadG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQFAAAAGXJld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQFAAAADnRvdGFsVm90ZVNoYXJlBAAAABJyZXdhcmRQb29sUHJldmlvdXMJAABrAAAAAwUAAAAbdG90YWxSZXdhcmRQZXJCbG9ja1ByZXZpb3VzBQAAABpyZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwUAAAAOdG90YWxWb3RlU2hhcmUDAwkAAGYAAAACBQAAABFyZXdhcmRQb29sQ3VycmVudAUAAAAadG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQGCQAAZgAAAAIFAAAAEnJld2FyZFBvb2xQcmV2aW91cwUAAAAbdG90YWxSZXdhcmRQZXJCbG9ja1ByZXZpb3VzCQAAAgAAAAECAAAAYnJld2FyZFBvb2xDdXJyZW50ID4gdG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQgb3IgcmV3YXJkUG9vbFByZXZpb3VzID4gdG90YWxSZXdhcmRQZXJCbG9ja1ByZXZpb3VzCQAFFQAAAAMFAAAAEXJld2FyZFBvb2xDdXJyZW50BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFBvb2xQcmV2aW91cwEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAEAAAAEcG9vbAQAAAAMbGFzdEludGVyZXN0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAAA9rZXlMYXN0SW50ZXJlc3QJAAEsAAAAAgkAASwAAAACAgAAABRObyBkYXRhIG9uIHRoZSBrZXk6IAUAAAAEcG9vbAUAAAAPa2V5TGFzdEludGVyZXN0BAAAABJsYXN0SW50ZXJlc3RIZWlnaHQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABVrZXlMYXN0SW50ZXJlc3RIZWlnaHQFAAAABmhlaWdodAkABRQAAAACBQAAABJsYXN0SW50ZXJlc3RIZWlnaHQFAAAADGxhc3RJbnRlcmVzdAEAAAATZ2V0VXNlckludGVyZXN0SW5mbwAAAAIAAAAEcG9vbAAAAAt1c2VyQWRkcmVzcwQAAAAQdXNlckxhc3RJbnRlcmVzdAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfCQAEJQAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BAAAAAl1c2VyU2hhcmUJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAABXwkABCUAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAAYa2V5VXNlclNoYXJlVG9rZW5zTG9ja2VkBAAAAAxsYXN0SW50ZXJlc3QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABHBvb2wFAAAAD2tleUxhc3RJbnRlcmVzdAkAASwAAAACCQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAAARwb29sBQAAAA9rZXlMYXN0SW50ZXJlc3QEAAAAFXVzZXJMYXN0SW50ZXJlc3RWYWx1ZQQAAAAHJG1hdGNoMAUAAAAQdXNlckxhc3RJbnRlcmVzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAABB1c2VyTGFzdEludGVyZXN0BQAAAAckbWF0Y2gwBQAAABB1c2VyTGFzdEludGVyZXN0BQAAAAxsYXN0SW50ZXJlc3QEAAAAFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAQAAAAHJG1hdGNoMAUAAAAJdXNlclNoYXJlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAACXVzZXJTaGFyZQUAAAAHJG1hdGNoMAUAAAAJdXNlclNoYXJlAAAAAAAAAAAACQAFFAAAAAIFAAAAFXVzZXJMYXN0SW50ZXJlc3RWYWx1ZQUAAAAVdXNlclNoYXJlVG9rZW5zQW1vdW50AQAAAAxjYWxjSW50ZXJlc3QAAAAJAAAAEmxhc3RJbnRlcmVzdEhlaWdodAAAABJyZXdhcmRVcGRhdGVIZWlnaHQAAAAMbGFzdEludGVyZXN0AAAAFWN1cnJlbnRSZXdhcmRQZXJCbG9jawAAABBzaGFyZVRva2VuTG9ja2VkAAAAFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sAAAAMc2hhcmVBc3NldElkAAAACnNjYWxlVmFsdWUAAAAJcG10QW1vdW50AwkAAAAAAAACBQAAABBzaGFyZVRva2VuTG9ja2VkAAAAAAAAAAAAAAAAAAAAAAAAAwkAAGYAAAACBQAAABJyZXdhcmRVcGRhdGVIZWlnaHQFAAAABmhlaWdodAQAAAAGcmV3YXJkCQAAaAAAAAIFAAAAFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABJsYXN0SW50ZXJlc3RIZWlnaHQJAABkAAAAAgUAAAAMbGFzdEludGVyZXN0CQAAawAAAAMFAAAABnJld2FyZAUAAAAKc2NhbGVWYWx1ZQUAAAAQc2hhcmVUb2tlbkxvY2tlZAMJAABmAAAAAgUAAAASbGFzdEludGVyZXN0SGVpZ2h0BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQEAAAABnJld2FyZAkAAGgAAAACBQAAABVjdXJyZW50UmV3YXJkUGVyQmxvY2sJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABJsYXN0SW50ZXJlc3RIZWlnaHQJAABkAAAAAgUAAAAMbGFzdEludGVyZXN0CQAAawAAAAMFAAAABnJld2FyZAUAAAAKc2NhbGVWYWx1ZQUAAAAQc2hhcmVUb2tlbkxvY2tlZAQAAAAqcmV3YXJkQWZ0ZXJMYXN0SW50ZXJlc3RCZWZvcmVSZWF3YXJkVXBkYXRlCQAAaAAAAAIFAAAAFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sJAABlAAAAAgUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0BQAAABJsYXN0SW50ZXJlc3RIZWlnaHQEAAAAE2ludGVyZXN0QWZ0ZXJVcGRhdGUJAABkAAAAAgUAAAAMbGFzdEludGVyZXN0CQAAawAAAAMFAAAAKnJld2FyZEFmdGVyTGFzdEludGVyZXN0QmVmb3JlUmVhd2FyZFVwZGF0ZQUAAAAKc2NhbGVWYWx1ZQUAAAAQc2hhcmVUb2tlbkxvY2tlZAQAAAAGcmV3YXJkCQAAaAAAAAIFAAAAFWN1cnJlbnRSZXdhcmRQZXJCbG9jawkAAGUAAAACBQAAAAZoZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAGQAAAACBQAAABNpbnRlcmVzdEFmdGVyVXBkYXRlCQAAawAAAAMFAAAABnJld2FyZAUAAAAKc2NhbGVWYWx1ZQUAAAAQc2hhcmVUb2tlbkxvY2tlZAEAAAAJY2xhaW1DYWxjAAAAAwAAAARwb29sAAAABmNhbGxlcgAAAAlwbXRBbW91bnQEAAAADHNoYXJlQXNzZXRJZAkBAAAAD2dldFNoYXJlQXNzZXRJZAAAAAEFAAAABHBvb2wEAAAACnNjYWxlVmFsdWUJAQAAAA5jYWxjU2NhbGVWYWx1ZQAAAAIFAAAABFNXT1AFAAAADHNoYXJlQXNzZXRJZAQAAAAQc2hhcmVUb2tlbkxvY2tlZAkBAAAAGGdldFRvdGFsU2hhcmVUb2tlbkxvY2tlZAAAAAEFAAAABHBvb2wEAAAACyR0MDcwMTQ3MDc5CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAEFAAAABHBvb2wEAAAAEmxhc3RJbnRlcmVzdEhlaWdodAgFAAAACyR0MDcwMTQ3MDc5AAAAAl8xBAAAAAxsYXN0SW50ZXJlc3QIBQAAAAskdDA3MDE0NzA3OQAAAAJfMgQAAAALJHQwNzA4NDcxNzIJAQAAAApyZXdhcmRJbmZvAAAAAQUAAAAEcG9vbAQAAAAVY3VycmVudFJld2FyZFBlckJsb2NrCAUAAAALJHQwNzA4NDcxNzIAAAACXzEEAAAAEnJld2FyZFVwZGF0ZUhlaWdodAgFAAAACyR0MDcwODQ3MTcyAAAAAl8yBAAAABZwcmV2aW91c1Jld2FyZFBlckJsb2NrCAUAAAALJHQwNzA4NDcxNzIAAAACXzMEAAAACyR0MDcxNzc3MjU2CQEAAAATZ2V0VXNlckludGVyZXN0SW5mbwAAAAIFAAAABHBvb2wFAAAABmNhbGxlcgQAAAAQdXNlckxhc3RJbnRlcmVzdAgFAAAACyR0MDcxNzc3MjU2AAAAAl8xBAAAABV1c2VyU2hhcmVUb2tlbnNBbW91bnQIBQAAAAskdDA3MTc3NzI1NgAAAAJfMgQAAAAPY3VycmVudEludGVyZXN0CQEAAAAMY2FsY0ludGVyZXN0AAAACQUAAAASbGFzdEludGVyZXN0SGVpZ2h0BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQFAAAADGxhc3RJbnRlcmVzdAUAAAAVY3VycmVudFJld2FyZFBlckJsb2NrBQAAABBzaGFyZVRva2VuTG9ja2VkBQAAABZwcmV2aW91c1Jld2FyZFBlckJsb2NrBQAAAAxzaGFyZUFzc2V0SWQFAAAACnNjYWxlVmFsdWUFAAAACXBtdEFtb3VudAQAAAALY2xhaW1BbW91bnQJAABrAAAAAwUAAAAVdXNlclNoYXJlVG9rZW5zQW1vdW50CQAAZQAAAAIFAAAAD2N1cnJlbnRJbnRlcmVzdAUAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAKc2NhbGVWYWx1ZQQAAAAPdXNlck5ld0ludGVyZXN0BQAAAA9jdXJyZW50SW50ZXJlc3QJAAUWAAAABAUAAAAPdXNlck5ld0ludGVyZXN0BQAAAA9jdXJyZW50SW50ZXJlc3QFAAAAC2NsYWltQW1vdW50BQAAABV1c2VyU2hhcmVUb2tlbnNBbW91bnQBAAAAFmNoZWNrUG10QXNzZXRJZENvcnJlY3QAAAACAAAABHBvb2wAAAAKcG10QXNzZXRJZAQAAAAQcG9vbFNoYXJlQXNzZXRJZAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACCQEAAAAFdmFsdWUAAAABCQAEJgAAAAEFAAAABHBvb2wCAAAADnNoYXJlX2Fzc2V0X2lkAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAABBwb29sU2hhcmVBc3NldElkBgcBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAIAAAAEcG9vbAAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8JAAQlAAAAAQUAAAAEdXNlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAAAAAAAAAAAABQAAAAFpAQAAAARpbml0AAAAAQAAAAdlYXJseUxQAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwIAAAAJa2V5U1dPUGlkCQAAAgAAAAECAAAAGFNXT1AgYWxyZWFkeSBpbml0aWFsaXplZAQAAAAKaW5pdEFtb3VudAAAAFrzEHpAAAQAAAAJU1dPUGlzc3VlCQAEQgAAAAUCAAAABFNXT1ACAAAAE1NXT1AgcHJvdG9jb2wgdG9rZW4FAAAACmluaXRBbW91bnQAAAAAAAAAAAgGBAAAAAZTV09QaWQJAAQ4AAAAAQUAAAAJU1dPUGlzc3VlBQAAAANuaWwAAAABaQEAAAAUaW5pdFBvb2xTaGFyZUZhcm1pbmcAAAABAAAABHBvb2wEAAAACyR0MDg3OTQ4ODc0CQEAAAAKcmV3YXJkSW5mbwAAAAEFAAAABHBvb2wEAAAADWN1cnJlbnRSZXdhcmQIBQAAAAskdDA4Nzk0ODg3NAAAAAJfMQQAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CAUAAAALJHQwODc5NDg4NzQAAAACXzIEAAAAFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sIBQAAAAskdDA4Nzk0ODg3NAAAAAJfMwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAABRrZXlTaGFyZVRva2Vuc0xvY2tlZAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAAA9rZXlMYXN0SW50ZXJlc3QAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAca2V5UmV3YXJkUG9vbEZyYWN0aW9uQ3VycmVudAUAAAANY3VycmVudFJld2FyZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwUAAAAWcHJldmlvdXNSZXdhcmRQZXJCbG9jawUAAAADbmlsAAAAAWkBAAAAD2xvY2tTaGFyZVRva2VucwAAAAEAAAAEcG9vbAQAAAALJHQwOTIwNTkyODAJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAlwbXRBbW91bnQIBQAAAAskdDA5MjA1OTI4MAAAAAJfMQQAAAAKcG10QXNzZXRJZAgFAAAACyR0MDkyMDU5MjgwAAAAAl8yAwkBAAAAASEAAAABCQEAAAAWY2hlY2tQbXRBc3NldElkQ29ycmVjdAAAAAIFAAAABHBvb2wFAAAACnBtdEFzc2V0SWQJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBtdEFzc2V0SWQEAAAACyR0MDkzODE5NDg5CQEAAAAJY2xhaW1DYWxjAAAAAwUAAAAEcG9vbAgFAAAAAWkAAAAGY2FsbGVyBQAAAAlwbXRBbW91bnQEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAACyR0MDkzODE5NDg5AAAAAl8xBAAAAA9jdXJyZW50SW50ZXJlc3QIBQAAAAskdDA5MzgxOTQ4OQAAAAJfMgQAAAALY2xhaW1BbW91bnQIBQAAAAskdDA5MzgxOTQ4OQAAAAJfMwQAAAAVdXNlclNoYXJlVG9rZW5zQW1vdW50CAUAAAALJHQwOTM4MTk0ODkAAAACXzQEAAAAEnVzZXJTaGFyZUFtb3VudE5ldwkAAGQAAAACBQAAABV1c2VyU2hhcmVUb2tlbnNBbW91bnQFAAAACXBtdEFtb3VudAQAAAARYXZhaWxhYmxlRnVuZHNOZXcJAABkAAAAAgkBAAAAEXVzZXJBdmFpbGFibGVTV09QAAAAAgUAAAAEcG9vbAgFAAAAAWkAAAAGY2FsbGVyBQAAAAtjbGFpbUFtb3VudAQAAAAQdG90YWxTaGFyZUFtb3VudAkBAAAAGGdldFRvdGFsU2hhcmVUb2tlbkxvY2tlZAAAAAEFAAAABHBvb2wEAAAAE3RvdGFsU2hhcmVBbW91bnROZXcJAABkAAAAAgUAAAAQdG90YWxTaGFyZUFtb3VudAUAAAAJcG10QW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAIFAAAABHBvb2wIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNoYXJlVG9rZW5zTG9ja2VkBQAAABJ1c2VyU2hhcmVBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAPa2V5TGFzdEludGVyZXN0BQAAAA9jdXJyZW50SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAVa2V5TGFzdEludGVyZXN0SGVpZ2h0BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAUa2V5U2hhcmVUb2tlbnNMb2NrZWQFAAAAE3RvdGFsU2hhcmVBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABBrZXlBdmFpbGFibGVTV09QBQAAABFhdmFpbGFibGVGdW5kc05ldwUAAAADbmlsAAAAAWkBAAAAE3dpdGhkcmF3U2hhcmVUb2tlbnMAAAACAAAABHBvb2wAAAAZc2hhcmVUb2tlbnNXaXRoZHJhd0Ftb3VudAQAAAANc2hhcmVUb2tlbnNJZAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACCQEAAAAFdmFsdWUAAAABCQAEJgAAAAEFAAAABHBvb2wCAAAADnNoYXJlX2Fzc2V0X2lkBAAAAA0kdDAxMDg0NjEwOTQ2CQEAAAAJY2xhaW1DYWxjAAAAAwUAAAAEcG9vbAgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABBAAAAA91c2VyTmV3SW50ZXJlc3QIBQAAAA0kdDAxMDg0NjEwOTQ2AAAAAl8xBAAAAA9jdXJyZW50SW50ZXJlc3QIBQAAAA0kdDAxMDg0NjEwOTQ2AAAAAl8yBAAAAAtjbGFpbUFtb3VudAgFAAAADSR0MDEwODQ2MTA5NDYAAAACXzMEAAAAFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAgFAAAADSR0MDEwODQ2MTA5NDYAAAACXzQDCQAAZgAAAAIFAAAAGXNoYXJlVG9rZW5zV2l0aGRyYXdBbW91bnQFAAAAFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAkAAAIAAAABAgAAACxXaXRoZHJhdyBhbW91bnQgbW9yZSB0aGVuIHVzZXIgbG9ja2VkIGFtb3VudAQAAAASdXNlclNoYXJlQW1vdW50TmV3CQAAZQAAAAIFAAAAFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAUAAAAZc2hhcmVUb2tlbnNXaXRoZHJhd0Ftb3VudAQAAAARYXZhaWxhYmxlRnVuZHNOZXcJAABkAAAAAgkBAAAAEXVzZXJBdmFpbGFibGVTV09QAAAAAgUAAAAEcG9vbAgFAAAAAWkAAAAGY2FsbGVyBQAAAAtjbGFpbUFtb3VudAQAAAAQdG90YWxTaGFyZUFtb3VudAkBAAAAGGdldFRvdGFsU2hhcmVUb2tlbkxvY2tlZAAAAAEFAAAABHBvb2wEAAAAE3RvdGFsU2hhcmVBbW91bnROZXcJAABlAAAAAgUAAAAQdG90YWxTaGFyZUFtb3VudAUAAAAZc2hhcmVUb2tlbnNXaXRoZHJhd0Ftb3VudAQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAACBQAAAARwb29sCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAABXwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAABXwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAGGtleVVzZXJTaGFyZVRva2Vuc0xvY2tlZAUAAAASdXNlclNoYXJlQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAD2tleUxhc3RJbnRlcmVzdAUAAAAPY3VycmVudEludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAFWtleUxhc3RJbnRlcmVzdEhlaWdodAUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAFGtleVNoYXJlVG9rZW5zTG9ja2VkBQAAABN0b3RhbFNoYXJlQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAQa2V5QXZhaWxhYmxlU1dPUAUAAAARYXZhaWxhYmxlRnVuZHNOZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABlzaGFyZVRva2Vuc1dpdGhkcmF3QW1vdW50BQAAAA1zaGFyZVRva2Vuc0lkBQAAAANuaWwAAAABaQEAAAAFY2xhaW0AAAABAAAABHBvb2wEAAAAEHNoYXJlVG9rZW5Mb2NrZWQJAQAAABhnZXRUb3RhbFNoYXJlVG9rZW5Mb2NrZWQAAAABBQAAAARwb29sBAAAAA0kdDAxMjQzODEyNTAzCQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAEFAAAABHBvb2wEAAAAEmxhc3RJbnRlcmVzdEhlaWdodAgFAAAADSR0MDEyNDM4MTI1MDMAAAACXzEEAAAADGxhc3RJbnRlcmVzdAgFAAAADSR0MDEyNDM4MTI1MDMAAAACXzIEAAAADSR0MDEyNTA4MTI1OTcJAQAAAApyZXdhcmRJbmZvAAAAAQUAAAAEcG9vbAQAAAAVY3VycmVudFJld2FyZFBlckJsb2NrCAUAAAANJHQwMTI1MDgxMjU5NwAAAAJfMQQAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CAUAAAANJHQwMTI1MDgxMjU5NwAAAAJfMgQAAAAWcHJldmlvdXNSZXdhcmRQZXJCbG9jawgFAAAADSR0MDEyNTA4MTI1OTcAAAACXzMEAAAADSR0MDEyNjAyMTI3MDIJAQAAAAljbGFpbUNhbGMAAAADBQAAAARwb29sCAUAAAABaQAAAAZjYWxsZXIAAAAAAAAAAAEEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAADSR0MDEyNjAyMTI3MDIAAAACXzEEAAAAD2N1cnJlbnRJbnRlcmVzdAgFAAAADSR0MDEyNjAyMTI3MDIAAAACXzIEAAAAC2NsYWltQW1vdW50CAUAAAANJHQwMTI2MDIxMjcwMgAAAAJfMwQAAAAVdXNlclNoYXJlVG9rZW5zQW1vdW50CAUAAAANJHQwMTI2MDIxMjcwMgAAAAJfNAQAAAANYXZhaWxhYmxlRnVuZAkAAGQAAAACCQEAAAARdXNlckF2YWlsYWJsZVNXT1AAAAACBQAAAARwb29sCAUAAAABaQAAAAZjYWxsZXIFAAAAC2NsYWltQW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAIFAAAABHBvb2wIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50AwkAAAAAAAACBQAAAA1hdmFpbGFibGVGdW5kAAAAAAAAAAAACQAAAgAAAAECAAAAGVlvdSBoYXZlIDAgYXZhaWxhYmxlIFNXT1AJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAPa2V5TGFzdEludGVyZXN0BQAAAA9jdXJyZW50SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAVa2V5TGFzdEludGVyZXN0SGVpZ2h0BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABBrZXlBdmFpbGFibGVTV09QAAAAAAAAAAAACQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAAEU1dPUAUAAAANYXZhaWxhYmxlRnVuZAYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA1hdmFpbGFibGVGdW5kBQAAAARTV09QBQAAAANuaWwAAAAAyzz5Bg==", "chainId": 84, "height": 1436004, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FxCNAhZsZGKHMg7L3tnm1gRRuWkvVbzKWME8ajrqhMks Next: 6122BrMCYbKsV75D7NVPy2EkELmdEPeH6K2oEtJHr2ea Diff:
OldNewDifferences
4545
4646 let SWOP = fromBase58String(getStringValue(this, keySWOPid))
4747
48-let farmingStartHeight = valueOrErrorMessage(getInteger(this, keyFarmingStartHeight), ("No data on the key: " + keyFarmingStartHeight))
49-
50-let farmingPreStartHeight = (farmingStartHeight - oneWeekInBlock)
51-
5248 func getTotalShareTokenLocked (pool) = valueOrErrorMessage(getInteger(this, (pool + keyShareTokensLocked)), (("No data on the key: " + pool) + keyShareTokensLocked))
5349
5450
8480
8581 func getLastInterestInfo (pool) = {
8682 let lastInterest = valueOrErrorMessage(getInteger(this, (pool + keyLastInterest)), (("No data on the key: " + pool) + keyLastInterest))
87- let lastInterestHeight = valueOrElse(getInteger(this, (pool + keyLastInterestHeight)), farmingPreStartHeight)
83+ let lastInterestHeight = valueOrElse(getInteger(this, (pool + keyLastInterestHeight)), height)
8884 $Tuple2(lastInterestHeight, lastInterest)
8985 }
9086
133129 let shareAssetId = getShareAssetId(pool)
134130 let scaleValue = calcScaleValue(SWOP, shareAssetId)
135131 let shareTokenLocked = getTotalShareTokenLocked(pool)
136- let $t072747339 = getLastInterestInfo(pool)
137- let lastInterestHeight = $t072747339._1
138- let lastInterest = $t072747339._2
139- let $t073447432 = rewardInfo(pool)
140- let currentRewardPerBlock = $t073447432._1
141- let rewardUpdateHeight = $t073447432._2
142- let previousRewardPerBlock = $t073447432._3
143- let $t074377516 = getUserInterestInfo(pool, caller)
144- let userLastInterest = $t074377516._1
145- let userShareTokensAmount = $t074377516._2
132+ let $t070147079 = getLastInterestInfo(pool)
133+ let lastInterestHeight = $t070147079._1
134+ let lastInterest = $t070147079._2
135+ let $t070847172 = rewardInfo(pool)
136+ let currentRewardPerBlock = $t070847172._1
137+ let rewardUpdateHeight = $t070847172._2
138+ let previousRewardPerBlock = $t070847172._3
139+ let $t071777256 = getUserInterestInfo(pool, caller)
140+ let userLastInterest = $t071777256._1
141+ let userShareTokensAmount = $t071777256._2
146142 let currentInterest = calcInterest(lastInterestHeight, rewardUpdateHeight, lastInterest, currentRewardPerBlock, shareTokenLocked, previousRewardPerBlock, shareAssetId, scaleValue, pmtAmount)
147143 let claimAmount = fraction(userShareTokensAmount, (currentInterest - userLastInterest), scaleValue)
148144 let userNewInterest = currentInterest
175171
176172 @Callable(i)
177173 func initPoolShareFarming (pool) = {
178- let $t090549134 = rewardInfo(pool)
179- let currentReward = $t090549134._1
180- let rewardUpdateHeight = $t090549134._2
181- let previousRewardPerBlock = $t090549134._3
174+ let $t087948874 = rewardInfo(pool)
175+ let currentReward = $t087948874._1
176+ let rewardUpdateHeight = $t087948874._2
177+ let previousRewardPerBlock = $t087948874._3
182178 [IntegerEntry((pool + keyShareTokensLocked), 0), IntegerEntry((pool + keyLastInterest), 0), IntegerEntry((pool + keyRewardPoolFractionCurrent), currentReward), IntegerEntry((pool + keyRewardPoolFractionPrevious), previousRewardPerBlock)]
183179 }
184180
186182
187183 @Callable(i)
188184 func lockShareTokens (pool) = {
189- let $t094659540 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
190- let pmtAmount = $t094659540._1
191- let pmtAssetId = $t094659540._2
192- if ((farmingStartHeight > height))
193- then if (!(checkPmtAssetIdCorrect(pool, pmtAssetId)))
194- then throw("Incorrect pmtAssetId")
195- else {
196- let userShareTokensAmount = valueOrElse(getInteger(this, (((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked)), 0)
197- let userNewInterest = 0
198- let userShareAmountNew = (userShareTokensAmount + pmtAmount)
199- let totalShareAmount = getTotalShareTokenLocked(pool)
200- let totalShareAmountNew = (totalShareAmount + pmtAmount)
201-[IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked), userShareAmountNew), IntegerEntry((pool + keyLastInterest), 0), IntegerEntry((pool + keyShareTokensLocked), totalShareAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), 0)]
202- }
203- else if (!(checkPmtAssetIdCorrect(pool, pmtAssetId)))
204- then throw("Incorrect pmtAssetId")
205- else {
206- let $t01056710675 = claimCalc(pool, i.caller, pmtAmount)
207- let userNewInterest = $t01056710675._1
208- let currentInterest = $t01056710675._2
209- let claimAmount = $t01056710675._3
210- let userShareTokensAmount = $t01056710675._4
211- let userShareAmountNew = (userShareTokensAmount + pmtAmount)
212- let availableFundsNew = (userAvailableSWOP(pool, i.caller) + claimAmount)
213- let totalShareAmount = getTotalShareTokenLocked(pool)
214- let totalShareAmountNew = (totalShareAmount + pmtAmount)
215- let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
216- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
185+ let $t092059280 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
186+ let pmtAmount = $t092059280._1
187+ let pmtAssetId = $t092059280._2
188+ if (!(checkPmtAssetIdCorrect(pool, pmtAssetId)))
189+ then throw("Incorrect pmtAssetId")
190+ else {
191+ let $t093819489 = claimCalc(pool, i.caller, pmtAmount)
192+ let userNewInterest = $t093819489._1
193+ let currentInterest = $t093819489._2
194+ let claimAmount = $t093819489._3
195+ let userShareTokensAmount = $t093819489._4
196+ let userShareAmountNew = (userShareTokensAmount + pmtAmount)
197+ let availableFundsNew = (userAvailableSWOP(pool, i.caller) + claimAmount)
198+ let totalShareAmount = getTotalShareTokenLocked(pool)
199+ let totalShareAmountNew = (totalShareAmount + pmtAmount)
200+ let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
201+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
217202 [IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked), userShareAmountNew), IntegerEntry((pool + keyLastInterest), currentInterest), IntegerEntry((pool + keyLastInterestHeight), height), IntegerEntry((pool + keyShareTokensLocked), totalShareAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPLastClaimedAmount), claimAmount), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), availableFundsNew)]
218- }
203+ }
219204 }
220205
221206
223208 @Callable(i)
224209 func withdrawShareTokens (pool,shareTokensWithdrawAmount) = {
225210 let shareTokensId = fromBase58String(getStringValue(value(addressFromString(pool)), "share_asset_id"))
226- if ((farmingStartHeight > height))
227- then {
228- let userShareTokensAmount = valueOrElse(getInteger(this, (((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked)), 0)
229- if ((shareTokensWithdrawAmount > userShareTokensAmount))
230- then throw("Withdraw amount more then user locked amount")
231- else {
232- let userNewInterest = 0
233- let userShareAmountNew = (userShareTokensAmount - shareTokensWithdrawAmount)
234- let totalShareAmount = getTotalShareTokenLocked(pool)
235- let totalShareAmountNew = (totalShareAmount - shareTokensWithdrawAmount)
236-[IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked), userShareAmountNew), IntegerEntry((pool + keyLastInterest), 0), IntegerEntry((pool + keyShareTokensLocked), totalShareAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), 0), ScriptTransfer(i.caller, shareTokensWithdrawAmount, shareTokensId)]
237- }
238- }
211+ let $t01084610946 = claimCalc(pool, i.caller, 1)
212+ let userNewInterest = $t01084610946._1
213+ let currentInterest = $t01084610946._2
214+ let claimAmount = $t01084610946._3
215+ let userShareTokensAmount = $t01084610946._4
216+ if ((shareTokensWithdrawAmount > userShareTokensAmount))
217+ then throw("Withdraw amount more then user locked amount")
239218 else {
240- let $t01310113201 = claimCalc(pool, i.caller, 1)
241- let userNewInterest = $t01310113201._1
242- let currentInterest = $t01310113201._2
243- let claimAmount = $t01310113201._3
244- let userShareTokensAmount = $t01310113201._4
245- if ((shareTokensWithdrawAmount > userShareTokensAmount))
246- then throw("Withdraw amount more then user locked amount")
247- else {
248- let userShareAmountNew = (userShareTokensAmount - shareTokensWithdrawAmount)
249- let availableFundsNew = (userAvailableSWOP(pool, i.caller) + claimAmount)
250- let totalShareAmount = getTotalShareTokenLocked(pool)
251- let totalShareAmountNew = (totalShareAmount - shareTokensWithdrawAmount)
252- let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
253- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
219+ let userShareAmountNew = (userShareTokensAmount - shareTokensWithdrawAmount)
220+ let availableFundsNew = (userAvailableSWOP(pool, i.caller) + claimAmount)
221+ let totalShareAmount = getTotalShareTokenLocked(pool)
222+ let totalShareAmountNew = (totalShareAmount - shareTokensWithdrawAmount)
223+ let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
224+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
254225 [IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked), userShareAmountNew), IntegerEntry((pool + keyLastInterest), currentInterest), IntegerEntry((pool + keyLastInterestHeight), height), IntegerEntry((pool + keyShareTokensLocked), totalShareAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), availableFundsNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, shareTokensWithdrawAmount, shareTokensId)]
255- }
256226 }
257227 }
258228
259229
260230
261231 @Callable(i)
262-func claim (pool) = if ((farmingStartHeight > height))
263- then throw((("This method will be active after " + toString(farmingStartHeight)) + " height"))
264- else {
265- let shareTokenLocked = getTotalShareTokenLocked(pool)
266- let $t01482514890 = getLastInterestInfo(pool)
267- let lastInterestHeight = $t01482514890._1
268- let lastInterest = $t01482514890._2
269- let $t01489514984 = rewardInfo(pool)
270- let currentRewardPerBlock = $t01489514984._1
271- let rewardUpdateHeight = $t01489514984._2
272- let previousRewardPerBlock = $t01489514984._3
273- let $t01498915089 = claimCalc(pool, i.caller, 1)
274- let userNewInterest = $t01498915089._1
275- let currentInterest = $t01498915089._2
276- let claimAmount = $t01498915089._3
277- let userShareTokensAmount = $t01498915089._4
278- let availableFund = (userAvailableSWOP(pool, i.caller) + claimAmount)
279- let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
280- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
281- if ((availableFund == 0))
282- then throw("You have 0 available SWOP")
283- else [IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((pool + keyLastInterest), currentInterest), IntegerEntry((pool + keyLastInterestHeight), height), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), 0), Reissue(SWOP, availableFund, true), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, availableFund, SWOP)]
284- }
232+func claim (pool) = {
233+ let shareTokenLocked = getTotalShareTokenLocked(pool)
234+ let $t01243812503 = getLastInterestInfo(pool)
235+ let lastInterestHeight = $t01243812503._1
236+ let lastInterest = $t01243812503._2
237+ let $t01250812597 = rewardInfo(pool)
238+ let currentRewardPerBlock = $t01250812597._1
239+ let rewardUpdateHeight = $t01250812597._2
240+ let previousRewardPerBlock = $t01250812597._3
241+ let $t01260212702 = claimCalc(pool, i.caller, 1)
242+ let userNewInterest = $t01260212702._1
243+ let currentInterest = $t01260212702._2
244+ let claimAmount = $t01260212702._3
245+ let userShareTokensAmount = $t01260212702._4
246+ let availableFund = (userAvailableSWOP(pool, i.caller) + claimAmount)
247+ let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
248+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
249+ if ((availableFund == 0))
250+ then throw("You have 0 available SWOP")
251+ else [IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((pool + keyLastInterest), currentInterest), IntegerEntry((pool + keyLastInterestHeight), height), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), 0), Reissue(SWOP, availableFund, true), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, availableFund, SWOP)]
252+ }
285253
286254
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminPubKey1 = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
55
66 let adminPubKey2 = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
77
88 let adminPubKey3 = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
99
1010 let keyShareTokensLocked = "_total_share_tokens_locked"
1111
1212 let keyRewardPoolFractionCurrent = "_current_pool_fraction_reward"
1313
1414 let keyRewardPoolFractionPrevious = "_previous_pool_fraction_reward"
1515
1616 let keyTotalRewardPerBlockCurrent = "total_reward_per_block_current"
1717
1818 let keyTotalRewardPerBlockPrevious = "total_reward_per_block_previous"
1919
2020 let keyRewardUpdateHeight = "reward_update_height"
2121
2222 let keyLastInterest = "_last_interest"
2323
2424 let keyLastInterestHeight = "_last_interest_height"
2525
2626 let keyUserShareTokensLocked = "_share_tokens_locked"
2727
2828 let keyUserLastInterest = "_last_interest"
2929
3030 let keySWOPid = "SWOP_id"
3131
3232 let keyUserSWOPClaimedAmount = "_SWOP_claimed_amount"
3333
3434 let keyUserSWOPLastClaimedAmount = "_SWOP_last_claimed_amount"
3535
3636 let keyAvailableSWOP = "_available_SWOP"
3737
3838 let keyFarmingStartHeight = "farming_start_height"
3939
4040 let governanveAddress = Address(base58'3NAY381Utk65jiLYmvHBg4c3guUvhiH1SPy')
4141
4242 let oneWeekInBlock = 10106
4343
4444 let totalVoteShare = 10000000000
4545
4646 let SWOP = fromBase58String(getStringValue(this, keySWOPid))
4747
48-let farmingStartHeight = valueOrErrorMessage(getInteger(this, keyFarmingStartHeight), ("No data on the key: " + keyFarmingStartHeight))
49-
50-let farmingPreStartHeight = (farmingStartHeight - oneWeekInBlock)
51-
5248 func getTotalShareTokenLocked (pool) = valueOrErrorMessage(getInteger(this, (pool + keyShareTokensLocked)), (("No data on the key: " + pool) + keyShareTokensLocked))
5349
5450
5551 func getShareAssetId (pool) = fromBase58String(getStringValue(value(addressFromString(pool)), "share_asset_id"))
5652
5753
5854 func calcScaleValue (assetId1,assetId2) = {
5955 let assetId1Decimals = value(assetInfo(assetId1)).decimals
6056 let assetId2Decimals = value(assetInfo(assetId2)).decimals
6157 let scaleDigits = ((assetId2Decimals - assetId1Decimals) + 8)
6258 pow(10, 0, scaleDigits, 0, 0, HALFDOWN)
6359 }
6460
6561
6662 func userAvailableSWOP (pool,user) = valueOrElse(getInteger(this, (((pool + "_") + toString(user)) + keyAvailableSWOP)), 0)
6763
6864
6965 func rewardInfo (pool) = {
7066 let totalRewardPerBlockCurrent = valueOrErrorMessage(getInteger(governanveAddress, keyTotalRewardPerBlockCurrent), ((("No data on the key: " + keyTotalRewardPerBlockCurrent) + " at address ") + toString(governanveAddress)))
7167 let totalRewardPerBlockPrevious = valueOrErrorMessage(getInteger(governanveAddress, keyTotalRewardPerBlockPrevious), ((("No data on the key: " + keyTotalRewardPerBlockPrevious) + " at address ") + toString(governanveAddress)))
7268 let rewardPoolFractionCurrent = valueOrErrorMessage(getInteger(governanveAddress, (pool + keyRewardPoolFractionCurrent)), (((("No data on the key: " + pool) + keyRewardPoolFractionCurrent) + " at address ") + toString(governanveAddress)))
7369 let rewardUpdateHeight = valueOrErrorMessage(getInteger(governanveAddress, keyRewardUpdateHeight), ((("No data on the key: " + keyRewardUpdateHeight) + " at address ") + toString(governanveAddress)))
7470 let rewardPoolFractionPrevious = valueOrErrorMessage(getInteger(governanveAddress, (pool + keyRewardPoolFractionPrevious)), (((("No data on the key: " + pool) + keyRewardPoolFractionPrevious) + " at address ") + toString(governanveAddress)))
7571 let rewardPoolCurrent = fraction(totalRewardPerBlockCurrent, rewardPoolFractionCurrent, totalVoteShare)
7672 let rewardPoolPrevious = fraction(totalRewardPerBlockPrevious, rewardPoolFractionPrevious, totalVoteShare)
7773 if (if ((rewardPoolCurrent > totalRewardPerBlockCurrent))
7874 then true
7975 else (rewardPoolPrevious > totalRewardPerBlockPrevious))
8076 then throw("rewardPoolCurrent > totalRewardPerBlockCurrent or rewardPoolPrevious > totalRewardPerBlockPrevious")
8177 else $Tuple3(rewardPoolCurrent, rewardUpdateHeight, rewardPoolPrevious)
8278 }
8379
8480
8581 func getLastInterestInfo (pool) = {
8682 let lastInterest = valueOrErrorMessage(getInteger(this, (pool + keyLastInterest)), (("No data on the key: " + pool) + keyLastInterest))
87- let lastInterestHeight = valueOrElse(getInteger(this, (pool + keyLastInterestHeight)), farmingPreStartHeight)
83+ let lastInterestHeight = valueOrElse(getInteger(this, (pool + keyLastInterestHeight)), height)
8884 $Tuple2(lastInterestHeight, lastInterest)
8985 }
9086
9187
9288 func getUserInterestInfo (pool,userAddress) = {
9389 let userLastInterest = getInteger(this, (((pool + "_") + toString(userAddress)) + keyUserLastInterest))
9490 let userShare = getInteger(this, (((pool + "_") + toString(userAddress)) + keyUserShareTokensLocked))
9591 let lastInterest = valueOrErrorMessage(getInteger(this, (pool + keyLastInterest)), (("No data on the key: " + pool) + keyLastInterest))
9692 let userLastInterestValue = match userLastInterest {
9793 case userLastInterest: Int =>
9894 userLastInterest
9995 case _ =>
10096 lastInterest
10197 }
10298 let userShareTokensAmount = match userShare {
10399 case userShare: Int =>
104100 userShare
105101 case _ =>
106102 0
107103 }
108104 $Tuple2(userLastInterestValue, userShareTokensAmount)
109105 }
110106
111107
112108 func calcInterest (lastInterestHeight,rewardUpdateHeight,lastInterest,currentRewardPerBlock,shareTokenLocked,previousRewardPerBlock,shareAssetId,scaleValue,pmtAmount) = if ((shareTokenLocked == 0))
113109 then 0
114110 else if ((rewardUpdateHeight > height))
115111 then {
116112 let reward = (previousRewardPerBlock * (height - lastInterestHeight))
117113 (lastInterest + fraction(reward, scaleValue, shareTokenLocked))
118114 }
119115 else if ((lastInterestHeight > rewardUpdateHeight))
120116 then {
121117 let reward = (currentRewardPerBlock * (height - lastInterestHeight))
122118 (lastInterest + fraction(reward, scaleValue, shareTokenLocked))
123119 }
124120 else {
125121 let rewardAfterLastInterestBeforeReawardUpdate = (previousRewardPerBlock * (rewardUpdateHeight - lastInterestHeight))
126122 let interestAfterUpdate = (lastInterest + fraction(rewardAfterLastInterestBeforeReawardUpdate, scaleValue, shareTokenLocked))
127123 let reward = (currentRewardPerBlock * (height - rewardUpdateHeight))
128124 (interestAfterUpdate + fraction(reward, scaleValue, shareTokenLocked))
129125 }
130126
131127
132128 func claimCalc (pool,caller,pmtAmount) = {
133129 let shareAssetId = getShareAssetId(pool)
134130 let scaleValue = calcScaleValue(SWOP, shareAssetId)
135131 let shareTokenLocked = getTotalShareTokenLocked(pool)
136- let $t072747339 = getLastInterestInfo(pool)
137- let lastInterestHeight = $t072747339._1
138- let lastInterest = $t072747339._2
139- let $t073447432 = rewardInfo(pool)
140- let currentRewardPerBlock = $t073447432._1
141- let rewardUpdateHeight = $t073447432._2
142- let previousRewardPerBlock = $t073447432._3
143- let $t074377516 = getUserInterestInfo(pool, caller)
144- let userLastInterest = $t074377516._1
145- let userShareTokensAmount = $t074377516._2
132+ let $t070147079 = getLastInterestInfo(pool)
133+ let lastInterestHeight = $t070147079._1
134+ let lastInterest = $t070147079._2
135+ let $t070847172 = rewardInfo(pool)
136+ let currentRewardPerBlock = $t070847172._1
137+ let rewardUpdateHeight = $t070847172._2
138+ let previousRewardPerBlock = $t070847172._3
139+ let $t071777256 = getUserInterestInfo(pool, caller)
140+ let userLastInterest = $t071777256._1
141+ let userShareTokensAmount = $t071777256._2
146142 let currentInterest = calcInterest(lastInterestHeight, rewardUpdateHeight, lastInterest, currentRewardPerBlock, shareTokenLocked, previousRewardPerBlock, shareAssetId, scaleValue, pmtAmount)
147143 let claimAmount = fraction(userShareTokensAmount, (currentInterest - userLastInterest), scaleValue)
148144 let userNewInterest = currentInterest
149145 $Tuple4(userNewInterest, currentInterest, claimAmount, userShareTokensAmount)
150146 }
151147
152148
153149 func checkPmtAssetIdCorrect (pool,pmtAssetId) = {
154150 let poolShareAssetId = fromBase58String(getStringValue(value(addressFromString(pool)), "share_asset_id"))
155151 if ((pmtAssetId == poolShareAssetId))
156152 then true
157153 else false
158154 }
159155
160156
161157 func getUserSWOPClaimedAmount (pool,user) = valueOrElse(getInteger(this, (((pool + "_") + toString(user)) + keyUserSWOPClaimedAmount)), 0)
162158
163159
164160 @Callable(i)
165161 func init (earlyLP) = if (isDefined(getString(this, "keySWOPid")))
166162 then throw("SWOP already initialized")
167163 else {
168164 let initAmount = 100000000000000
169165 let SWOPissue = Issue("SWOP", "SWOP protocol token", initAmount, 8, true)
170166 let SWOPid = calculateAssetId(SWOPissue)
171167 nil
172168 }
173169
174170
175171
176172 @Callable(i)
177173 func initPoolShareFarming (pool) = {
178- let $t090549134 = rewardInfo(pool)
179- let currentReward = $t090549134._1
180- let rewardUpdateHeight = $t090549134._2
181- let previousRewardPerBlock = $t090549134._3
174+ let $t087948874 = rewardInfo(pool)
175+ let currentReward = $t087948874._1
176+ let rewardUpdateHeight = $t087948874._2
177+ let previousRewardPerBlock = $t087948874._3
182178 [IntegerEntry((pool + keyShareTokensLocked), 0), IntegerEntry((pool + keyLastInterest), 0), IntegerEntry((pool + keyRewardPoolFractionCurrent), currentReward), IntegerEntry((pool + keyRewardPoolFractionPrevious), previousRewardPerBlock)]
183179 }
184180
185181
186182
187183 @Callable(i)
188184 func lockShareTokens (pool) = {
189- let $t094659540 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
190- let pmtAmount = $t094659540._1
191- let pmtAssetId = $t094659540._2
192- if ((farmingStartHeight > height))
193- then if (!(checkPmtAssetIdCorrect(pool, pmtAssetId)))
194- then throw("Incorrect pmtAssetId")
195- else {
196- let userShareTokensAmount = valueOrElse(getInteger(this, (((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked)), 0)
197- let userNewInterest = 0
198- let userShareAmountNew = (userShareTokensAmount + pmtAmount)
199- let totalShareAmount = getTotalShareTokenLocked(pool)
200- let totalShareAmountNew = (totalShareAmount + pmtAmount)
201-[IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked), userShareAmountNew), IntegerEntry((pool + keyLastInterest), 0), IntegerEntry((pool + keyShareTokensLocked), totalShareAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), 0)]
202- }
203- else if (!(checkPmtAssetIdCorrect(pool, pmtAssetId)))
204- then throw("Incorrect pmtAssetId")
205- else {
206- let $t01056710675 = claimCalc(pool, i.caller, pmtAmount)
207- let userNewInterest = $t01056710675._1
208- let currentInterest = $t01056710675._2
209- let claimAmount = $t01056710675._3
210- let userShareTokensAmount = $t01056710675._4
211- let userShareAmountNew = (userShareTokensAmount + pmtAmount)
212- let availableFundsNew = (userAvailableSWOP(pool, i.caller) + claimAmount)
213- let totalShareAmount = getTotalShareTokenLocked(pool)
214- let totalShareAmountNew = (totalShareAmount + pmtAmount)
215- let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
216- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
185+ let $t092059280 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
186+ let pmtAmount = $t092059280._1
187+ let pmtAssetId = $t092059280._2
188+ if (!(checkPmtAssetIdCorrect(pool, pmtAssetId)))
189+ then throw("Incorrect pmtAssetId")
190+ else {
191+ let $t093819489 = claimCalc(pool, i.caller, pmtAmount)
192+ let userNewInterest = $t093819489._1
193+ let currentInterest = $t093819489._2
194+ let claimAmount = $t093819489._3
195+ let userShareTokensAmount = $t093819489._4
196+ let userShareAmountNew = (userShareTokensAmount + pmtAmount)
197+ let availableFundsNew = (userAvailableSWOP(pool, i.caller) + claimAmount)
198+ let totalShareAmount = getTotalShareTokenLocked(pool)
199+ let totalShareAmountNew = (totalShareAmount + pmtAmount)
200+ let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
201+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
217202 [IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked), userShareAmountNew), IntegerEntry((pool + keyLastInterest), currentInterest), IntegerEntry((pool + keyLastInterestHeight), height), IntegerEntry((pool + keyShareTokensLocked), totalShareAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPLastClaimedAmount), claimAmount), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), availableFundsNew)]
218- }
203+ }
219204 }
220205
221206
222207
223208 @Callable(i)
224209 func withdrawShareTokens (pool,shareTokensWithdrawAmount) = {
225210 let shareTokensId = fromBase58String(getStringValue(value(addressFromString(pool)), "share_asset_id"))
226- if ((farmingStartHeight > height))
227- then {
228- let userShareTokensAmount = valueOrElse(getInteger(this, (((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked)), 0)
229- if ((shareTokensWithdrawAmount > userShareTokensAmount))
230- then throw("Withdraw amount more then user locked amount")
231- else {
232- let userNewInterest = 0
233- let userShareAmountNew = (userShareTokensAmount - shareTokensWithdrawAmount)
234- let totalShareAmount = getTotalShareTokenLocked(pool)
235- let totalShareAmountNew = (totalShareAmount - shareTokensWithdrawAmount)
236-[IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked), userShareAmountNew), IntegerEntry((pool + keyLastInterest), 0), IntegerEntry((pool + keyShareTokensLocked), totalShareAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), 0), ScriptTransfer(i.caller, shareTokensWithdrawAmount, shareTokensId)]
237- }
238- }
211+ let $t01084610946 = claimCalc(pool, i.caller, 1)
212+ let userNewInterest = $t01084610946._1
213+ let currentInterest = $t01084610946._2
214+ let claimAmount = $t01084610946._3
215+ let userShareTokensAmount = $t01084610946._4
216+ if ((shareTokensWithdrawAmount > userShareTokensAmount))
217+ then throw("Withdraw amount more then user locked amount")
239218 else {
240- let $t01310113201 = claimCalc(pool, i.caller, 1)
241- let userNewInterest = $t01310113201._1
242- let currentInterest = $t01310113201._2
243- let claimAmount = $t01310113201._3
244- let userShareTokensAmount = $t01310113201._4
245- if ((shareTokensWithdrawAmount > userShareTokensAmount))
246- then throw("Withdraw amount more then user locked amount")
247- else {
248- let userShareAmountNew = (userShareTokensAmount - shareTokensWithdrawAmount)
249- let availableFundsNew = (userAvailableSWOP(pool, i.caller) + claimAmount)
250- let totalShareAmount = getTotalShareTokenLocked(pool)
251- let totalShareAmountNew = (totalShareAmount - shareTokensWithdrawAmount)
252- let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
253- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
219+ let userShareAmountNew = (userShareTokensAmount - shareTokensWithdrawAmount)
220+ let availableFundsNew = (userAvailableSWOP(pool, i.caller) + claimAmount)
221+ let totalShareAmount = getTotalShareTokenLocked(pool)
222+ let totalShareAmountNew = (totalShareAmount - shareTokensWithdrawAmount)
223+ let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
224+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
254225 [IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserShareTokensLocked), userShareAmountNew), IntegerEntry((pool + keyLastInterest), currentInterest), IntegerEntry((pool + keyLastInterestHeight), height), IntegerEntry((pool + keyShareTokensLocked), totalShareAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), availableFundsNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, shareTokensWithdrawAmount, shareTokensId)]
255- }
256226 }
257227 }
258228
259229
260230
261231 @Callable(i)
262-func claim (pool) = if ((farmingStartHeight > height))
263- then throw((("This method will be active after " + toString(farmingStartHeight)) + " height"))
264- else {
265- let shareTokenLocked = getTotalShareTokenLocked(pool)
266- let $t01482514890 = getLastInterestInfo(pool)
267- let lastInterestHeight = $t01482514890._1
268- let lastInterest = $t01482514890._2
269- let $t01489514984 = rewardInfo(pool)
270- let currentRewardPerBlock = $t01489514984._1
271- let rewardUpdateHeight = $t01489514984._2
272- let previousRewardPerBlock = $t01489514984._3
273- let $t01498915089 = claimCalc(pool, i.caller, 1)
274- let userNewInterest = $t01498915089._1
275- let currentInterest = $t01498915089._2
276- let claimAmount = $t01498915089._3
277- let userShareTokensAmount = $t01498915089._4
278- let availableFund = (userAvailableSWOP(pool, i.caller) + claimAmount)
279- let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
280- let userClaimedAmountNew = (userClaimedAmount + claimAmount)
281- if ((availableFund == 0))
282- then throw("You have 0 available SWOP")
283- else [IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((pool + keyLastInterest), currentInterest), IntegerEntry((pool + keyLastInterestHeight), height), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), 0), Reissue(SWOP, availableFund, true), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, availableFund, SWOP)]
284- }
232+func claim (pool) = {
233+ let shareTokenLocked = getTotalShareTokenLocked(pool)
234+ let $t01243812503 = getLastInterestInfo(pool)
235+ let lastInterestHeight = $t01243812503._1
236+ let lastInterest = $t01243812503._2
237+ let $t01250812597 = rewardInfo(pool)
238+ let currentRewardPerBlock = $t01250812597._1
239+ let rewardUpdateHeight = $t01250812597._2
240+ let previousRewardPerBlock = $t01250812597._3
241+ let $t01260212702 = claimCalc(pool, i.caller, 1)
242+ let userNewInterest = $t01260212702._1
243+ let currentInterest = $t01260212702._2
244+ let claimAmount = $t01260212702._3
245+ let userShareTokensAmount = $t01260212702._4
246+ let availableFund = (userAvailableSWOP(pool, i.caller) + claimAmount)
247+ let userClaimedAmount = getUserSWOPClaimedAmount(pool, i.caller)
248+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
249+ if ((availableFund == 0))
250+ then throw("You have 0 available SWOP")
251+ else [IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserLastInterest), userNewInterest), IntegerEntry((pool + keyLastInterest), currentInterest), IntegerEntry((pool + keyLastInterestHeight), height), IntegerEntry((((pool + "_") + toString(i.caller)) + keyAvailableSWOP), 0), Reissue(SWOP, availableFund, true), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((((pool + "_") + toString(i.caller)) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, availableFund, SWOP)]
252+ }
285253
286254

github/deemru/w8io/169f3d6 
50.11 ms