tx · 7ztZHb3GqvqSU6LBEdVxKKcCKSiQHGPzckWvHYKoSbVX

3PEZngxRNSDEJz2MiNUG3jAVBhhVFTNFQz2:  -0.01400000 Waves

2021.08.28 20:23 [2743381] smart account 3PEZngxRNSDEJz2MiNUG3jAVBhhVFTNFQz2 > SELF 0.00000000 Waves

{ "type": 13, "id": "7ztZHb3GqvqSU6LBEdVxKKcCKSiQHGPzckWvHYKoSbVX", "fee": 1400000, "feeAssetId": null, "timestamp": 1630171477165, "version": 2, "chainId": 87, "sender": "3PEZngxRNSDEJz2MiNUG3jAVBhhVFTNFQz2", "senderPublicKey": "8HhthX4cRpH5QMaK46KDBbQZhK75SQZYUjJZzBwHkaTK", "proofs": [ "5MzbjEXw4HvGxWtmXUdPAJAGzQM3oya4MZM52BusPZMNKFEAoiVjkKNV7KiYdv7cP5TMt4jdKedDi3B5PzMgB1i1" ], "script": "base64:AAIFAAAAAAAAAC4IAhIECgIIARIDCgEEEgASAwoBCBIDCgEIEgMKAQgSAwoBCBIECgIICBIDCgEIAAAAHAAAAAAIbUFjY1BLZXkBAAAAIA93LGqExO7NKvi1BU6ocYS9FlQk4dt9cvvjVdy1LhgSAAAAAAhtQWNjQWRkcgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAIbUFjY1BLZXkAAAAACmZlZVBlcmNlbnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACG1BY2NBZGRyCQABLAAAAAIJAAEsAAAAAgIAAAACZl8JAAQlAAAAAQUAAAAEdGhpcwIAAAAEX2ZlZQAAAAAPa1RvdGFsTGlxdWlkaXR5AgAAAA90b3RhbF9saXF1aWRpdHkAAAAADGtJbml0aWFsaXplZAIAAAALSU5JVElBTElaRUQAAAAAE2tMaXF1aWRpdHlUaHJlc2hvbGQCAAAAE0xJUVVJRElUWV9USFJFU0hPTEQAAAAAEWtGYXJtUGFydGljaXBhbnRzAgAAABFmYXJtX3BhcnRpY2lwYW50cwAAAAARa1RvdGFsU2hhcmVUb2tlbnMCAAAAEnRvdGFsX3NoYXJlX3Rva2VucwAAAAANa1NoYXJlQXNzZXRJZAIAAAAOU0hBUkVfQVNTRVRfSUQAAAAADmtJbmN1YmF0b3JEYXBwAgAAAA5JTkNVQkFUT1JfREFQUAAAAAAMa0JyZWVkZXJEYXBwAgAAAAxCUkVFREVSX0RBUFAAAAAADGtGYXJtaW5nRGFwcAIAAAAMRkFSTUlOR19EQVBQAAAAABBrTWFya2V0UHJveHlEYXBwAgAAABZNQVJLRVRQTEFDRV9QUk9YWV9EQVBQAAAAAAxrQXVjdGlvbkRhcHACAAAADEFVQ1RJT05fREFQUAAAAAAHa0xvY2tlZAIAAAAGTE9DS0VEAAAAABNrVG90YWxGYXJtaW5nUmV3YXJkAgAAABR0b3RhbF9mYXJtaW5nX3Jld2FyZAAAAAAQa0Nlb0NvbGxlY3RlZEZlZQIAAAARY2VvX2NvbGxlY3RlZF9mZWUAAAAAF2tDZW9Db2xsZWN0ZWRGZWVPdmVyYWxsAgAAAA9jZW9fZmVlX292ZXJhbGwAAAAACGtUb0Rpc3RyAgAAAA10b19kaXN0cmlidXRl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cnRpY2lwYW50cwQAAAANa1BhcnRpY2lwYXRlZAkAASwAAAACCQABLAAAAAICAAAACGFjY291bnRfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAANX3BhcnRpY2lwYXRlZAQAAAATYWxyZWFkeVBhcnRpY2lwYXRlZAkBAAAAB2dldEJvb2wAAAABBQAAAA1rUGFydGljaXBhdGVkBAAAABNuZXdGYXJtUGFydGljaXBhbnRzAwkAAAAAAAACBQAAABNhbHJlYWR5UGFydGljaXBhdGVkBQAAAAR1bml0CQAAZAAAAAIFAAAAEGZhcm1QYXJ0aWNpcGFudHMAAAAAAAAAAAEFAAAAEGZhcm1QYXJ0aWNpcGFudHMJAARMAAAAAgUAAAAHcmVpc3N1ZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEXNoYXJlVG9rZW5zVG9HaXZlBQAAAA1zaGFyZVRva2Vuc0lkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABFrVG90YWxTaGFyZVRva2VucwkAAGQAAAACBQAAABB0b3RhbFNoYXJlVG9rZW5zBQAAABFzaGFyZVRva2Vuc1RvR2l2ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPa1RvdGFsTGlxdWlkaXR5CQAAZAAAAAIFAAAADnRvdGFsTGlxdWlkaXR5CQEAAAAFdmFsdWUAAAABCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWtGYXJtUGFydGljaXBhbnRzBQAAABNuZXdGYXJtUGFydGljaXBhbnRzCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAA1rUGFydGljaXBhdGVkBgUAAAADbmlsAAAAAWkBAAAAF2NsYWltRmFybWluZ1Jld2FyZFByb3h5AAAAAQAAAANpZHMDCQEAAAACIT0AAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAACG1BY2NQS2V5CQAAAgAAAAECAAAAA18yMwQAAAALZmFybWluZ0RhcHAJAQAA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Z1Jld2FyZAkBAAAABmdldEludAAAAAEFAAAAE2tUb3RhbEZhcm1pbmdSZXdhcmQEAAAADWN1cnJlbnRDZW9GZWUJAQAAAAZnZXRJbnQAAAABBQAAABBrQ2VvQ29sbGVjdGVkRmVlBAAAAA1jZW9GZWVPdmVyYWxsCQEAAAAGZ2V0SW50AAAAAQUAAAAXa0Nlb0NvbGxlY3RlZEZlZU92ZXJhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tUb3RhbEZhcm1pbmdSZXdhcmQJAABlAAAAAgkAAGQAAAACBQAAABJ0b3RhbEZhcm1pbmdSZXdhcmQFAAAADWNsYWltZWRSZXdhcmQFAAAADmZhcm1DZW9GZWVTaXplCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABBrQ2VvQ29sbGVjdGVkRmVlCQAAZAAAAAIFAAAADWN1cnJlbnRDZW9GZWUFAAAADmZhcm1DZW9GZWVTaXplCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAhrVG9EaXN0cgkAAGUAAAACCQAAZAAAAAIFAAAAB3RvRGlzdHIFAAAADWNsYWltZWRSZXdhcmQFAAAADmZhcm1DZW9GZWVTaXplCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABdrQ2VvQ29sbGVjdGVkRmVlT3ZlcmFsbAkAAGQAAAACBQAAAA1jZW9GZWVPdmVyYWxsBQAAAA5mYXJtQ2VvRmVlU2l6ZQUAAAADbmlsAAAAAWkBAAAAC2NsYWltQ2VvRmVlAAAAAQAAAAdhZGRyZXNzAwkAAAAAAAACCQEAAAAHZ2V0Qm9vbAAAAAEFAAAAB2tMb2NrZWQGCQAAAgAAAAECAAAAA18yMgMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBAAAABZjdXJyZW50Q2VvQ29sbGVjdGVkRmVlCQEAAAAGZ2V0SW50AAAAAQUAAAAQa0Nlb0NvbGxlY3RlZEZlZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAdhZGRyZXNzBQAAABZjdXJyZW50Q2VvQ29sbGVjdGVkRmVlCQEAAAAIZ2V0RWdnSWQAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABBrQ2VvQ29sbGVjdGVkRmVlAAAAAAAAAAAABQAAAANuaWwJAAACAAAAAQIAAAACXzgAAAABaQEAAAAQc3RhcnRMaXF1aWRhdGlvbgAAAAEAAAAJYXVjdGlvbklkCQAAAgAAAAECAAAAAl83AAAAAWkBAAAAEnZvdGVGb3JMaXF1aWRhdGlvbgAAAAEAAAAJYXVjdGlvbklkCQAAAgAAAAECAAAAAl83AAAAAWkBAAAAEGNhbGxVbnN0YWtlUHJveHkAAAACAAAACGZ1bmN0aW9uAAAAB2Fzc2V0SWQDCQAAAAAAAAIJAQAAAAdnZXRCb29sAAAAAQUAAAAHa0xvY2tlZAYJAAACAAAAAQIAAAAWQ29udHJhY3QgaXMgbG9ja2VkIG5vdwMDCQEAAAACIT0AAAACBQAAAAhmdW5jdGlvbgIAAAAKdW5zdGFrZU5GVAkBAAAAAiE9AAAAAgUAAAAIZnVuY3Rpb24CAAAADnVuc3Rha2VKYWNrcG90BwkAAAIAAAABAgAAABFCYWQgZnVuY3Rpb24gbmFtZQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAACFDYW4gYmUgY2FsbGVkIG9ubHkgYnkgdGhlIGFjY291bnQEAAAAEmZhcm1pbmdEYXBwQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAB2dldFN0ckEAAAACBQAAAAhtQWNjQWRkcgIAAAAMRkFSTUlOR19EQVBQBAAAAA11c3Rha2VkUmV3YXJkCQAD/AAAAAQFAAAAEmZhcm1pbmdEYXBwQWRkcmVzcwUAAAAIZnVuY3Rpb24JAARMAAAAAgUAAAAHYXNzZXRJZAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAADXVzdGFrZWRSZXdhcmQFAAAADXVzdGFrZWRSZXdhcmQEAAAAEXVuc3Rha2VkUmV3YXJkTm93CQEAAAAGZ2V0SW50AAAAAQUAAAAPa1Vuc3Rha2VkUmV3YXJkBAAAABFuZXdVbnN0YWtlZFJld2FyZAQAAAAHJG1hdGNoMAUAAAANdXN0YWtlZFJld2FyZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAJAABkAAAAAgUAAAARdW5zdGFrZWRSZXdhcmROb3cFAAAAA2ludAkAAAIAAAABAgAAABZFcnJvciBkdXJpbmcgdW5zdGFraW5nCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rVW5zdGFrZWRSZXdhcmQFAAAAEW5ld1Vuc3Rha2VkUmV3YXJkBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADnJldmVydFRyYW5zZmVyAAAAAQAAAAR0eElkAwkAAAAAAAACCQEAAAAHZ2V0Qm9vbAAAAAEFAAAAB2tMb2NrZWQGCQAAAgAAAAECAAAAFkNvbnRyYWN0IGlzIGxvY2tlZCBub3cDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAhQ2FuIGJlIGNhbGxlZCBvbmx5IGJ5IHRoZSBhY2NvdW50BAAAAAJ0eAkBAAAABXZhbHVlAAAAAQkAA+4AAAABCQACWQAAAAEFAAAABHR4SWQEAAAACWtSZXZlcnRlZAkAASwAAAACAgAAAAp0eF9yZXZlcnRfBQAAAAR0eElkBAAAAAp0eFJldmVydGVkCQEAAAAHZ2V0Qm9vbAAAAAEFAAAACWtSZXZlcnRlZAQAAAARdW5zdGFrZWRSZXdhcmROb3cJAQAAAAZnZXRJbnQAAAABBQAAAA9rVW5zdGFrZWRSZXdhcmQEAAAAB3RvRGlzdHIJAQAAAAZnZXRJbnQAAAABBQAAAAhrVG9EaXN0cgQAAAAKbWluQmFsYW5jZQkAAGQAAAACBQAAABF1bnN0YWtlZFJld2FyZE5vdwUAAAAHdG9EaXN0cgQAAAARY3VycmVudEVnZ0JhbGFuY2UJAAPwAAAAAgUAAAAEdGhpcwkBAAAACGdldEVnZ0lkAAAAAAMJAAAAAAAAAgUAAAAKdHhSZXZlcnRlZAYJAAACAAAAAQIAAAATVHggYWxyZWFkeSByZXZlcnRlZAMJAQAAAAIhPQAAAAIIBQAAAAJ0eAAAAAlyZWNpcGllbnQFAAAABHRoaXMJAAACAAAAAQIAAAAfVHggcmVjaXBpZW50IGlzIGFub3RoZXIgYWNjb3VudAMJAQAAAAIhPQAAAAIIBQAAAAJ0eAAAAAdhc3NldElkCQEAAAAIZ2V0RWdnSWQAAAAACQAAAgAAAAECAAAAIlRyYW5zYWN0aW9uIGlzIG5vdCB3aXRoIEVHRyB0b2tlbnMDCQAAZgAAAAIFAAAACm1pbkJhbGFuY2UJAABlAAAAAgUAAAARY3VycmVudEVnZ0JhbGFuY2UIBQAAAAJ0eAAAAAZhbW91bnQJAAACAAAAAQIAAAAcUmV2ZXJ0IG1ha2VzIGJhbGFuY2UgdG9vIGxvdwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAACdHgAAAAGc2VuZGVyCAUAAAACdHgAAAAGYW1vdW50CAUAAAACdHgAAAAHYXNzZXRJZAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa1JldmVydGVkBgUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAMY2hlY2tTdGFydGVkCQAAZwAAAAIJAQAAAAZnZXRJbnQAAAABBQAAAA9rVG90YWxMaXF1aWRpdHkJAQAAAAZnZXRJbnQAAAABBQAAABNrTGlxdWlkaXR5VGhyZXNob2xkCgEAAAAQdG90YWxFZ2dTcGVuZGluZwAAAAIAAAAFYWNjdW0AAAAHcGF5bWVudAMJAAAAAAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkBAAAACGdldEVnZ0lkAAAAAAkAAGQAAAACBQAAAAVhY2N1bQgFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAVhY2N1bQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBAAAAANpbnYFAAAAByRtYXRjaDAEAAAAEXVuc3Rha2VkUmV3YXJkTm93CQEAAAAGZ2V0SW50AAAAAQUAAAAPa1Vuc3Rha2VkUmV3YXJkBAAAAAd0b0Rpc3RyCQEAAAAGZ2V0SW50AAAAAQUAAAAIa1RvRGlzdHIEAAAACm1pbkJhbGFuY2UJAABkAAAAAgUAAAARdW5zdGFrZWRSZXdhcmROb3cFAAAAB3RvRGlzdHIDAwkAAAAAAAACCAUAAAADaW52AAAACGZ1bmN0aW9uAgAAAAp1bnN0YWtlTkZUBgkAAAAAAAACCAUAAAADaW52AAAACGZ1bmN0aW9uAgAAAA51bnN0YWtlSmFja3BvdAkAAAIAAAABAgAAAChZb3UgY2Fubm90IGNhbGwgdGhlc2UgZnVuY3Rpb25zIGRpcmVjdGx5AwkAAAAAAAACCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQcJAAACAAAAAQIAAAAEXzEwMAMJAAAAAAAAAgUAAAAMY2hlY2tTdGFydGVkBwkAAAIAAAABAgAAAANfMTQDCQAAAAAAAAIJAQAAAAdnZXRCb29sAAAAAQUAAAAHa0xvY2tlZAYJAAACAAAAAQIAAAADXzIyAwMJAABmAAAAAggFAAAAA2ludgAAAANmZWUAAAAAAAANu6AGCQEAAAACIT0AAAACCAUAAAADaW52AAAACmZlZUFzc2V0SWQFAAAABHVuaXQJAAACAAAAAQIAAAADXzE1AwkAAAAAAAACCAUAAAADaW52AAAACGZ1bmN0aW9uAgAAAAtjbGFpbVJld2FyZAkAAAIAAAABAgAAAANfMTYDCQAAZgAAAAIJAAGQAAAAAQgFAAAAA2ludgAAAAhwYXltZW50cwAAAAAAAAAAAgkAAAIAAAABAgAAAANfMTcDCQAAZgAAAAIFAAAACm1pbkJhbGFuY2UJAABlAAAAAgkAA/AAAAACBQAAAAR0aGlzCQEAAAAIZ2V0RWdnSWQAAAAABAAAAA0kbGlzdDg4MDg4ODUwCAUAAAADaW52AAAACHBheW1lbnRzBAAAAA0kc2l6ZTg4MDg4ODUwCQABkAAAAAEFAAAADSRsaXN0ODgwODg4NTAEAAAADSRhY2MwODgwODg4NTAAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplODgwODg4NTAAAAAAAAAAAAAFAAAADSRhY2MwODgwODg4NTAEAAAADSRhY2MxODgwODg4NTAJAQAAABB0b3RhbEVnZ1NwZW5kaW5nAAAAAgUAAAANJGFjYzA4ODA4ODg1MAkAAZEAAAACBQAAAA0kbGlzdDg4MDg4ODUwAAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTg4MDg4ODUwAAAAAAAAAAABBQAAAA0kYWNjMTg4MDg4ODUwBAAAAA0kYWNjMjg4MDg4ODUwCQEAAAAQdG90YWxFZ2dTcGVuZGluZwAAAAIFAAAADSRhY2MxODgwODg4NTAJAAGRAAAAAgUAAAANJGxpc3Q4ODA4ODg1MAAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemU4ODA4ODg1MAAAAAAAAAAAAgUAAAANJGFjYzI4ODA4ODg1MAQAAAANJGFjYzM4ODA4ODg1MAkBAAAAEHRvdGFsRWdnU3BlbmRpbmcAAAACBQAAAA0kYWNjMjg4MDg4ODUwCQABkQAAAAIFAAAADSRsaXN0ODgwODg4NTAAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplODgwODg4NTAAAAAAAAAAAAMFAAAADSRhY2MzODgwODg4NTAEAAAADSRhY2M0ODgwODg4NTAJAQAAABB0b3RhbEVnZ1NwZW5kaW5nAAAAAgUAAAANJGFjYzM4ODA4ODg1MAkAAZEAAAACBQAAAA0kbGlzdDg4MDg4ODUwAAAAAAAAAAADCQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgMwkAAAIAAAABCQABLAAAAAICAAAAIVlvdXIgbWluaW1hbCBiYWxhbmNlIHNob3VsZCBiZSA9IAkAAaQAAAABBQAAAAptaW5CYWxhbmNlAwMJAAAAAAAAAgkABCQAAAABCAUAAAADaW52AAAABGRBcHAFAAAABHRoaXMJAAAAAAAAAggFAAAAA2ludgAAAAhmdW5jdGlvbgIAAAAQY2FsbFVuc3Rha2VQcm94eQcJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5AwMJAAAAAAAAAgkABCQAAAABCAUAAAADaW52AAAABGRBcHAFAAAABHRoaXMJAAAAAAAAAggFAAAAA2ludgAAAAhmdW5jdGlvbgIAAAALY2xhaW1DZW9GZWUHCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQMDCQAAAAAAAAIJAAQkAAAAAQgFAAAAA2ludgAAAARkQXBwCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAASZ2V0TWFya2V0UHJveHlBZGRyAAAAAAkAAAAAAAACCAUAAAADaW52AAAACGZ1bmN0aW9uAgAAABRjYWxsTWFya2V0cGxhY2VQcm94eQcJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BAAAABBhbGxvd2VkQ29udHJhY3RzCQEAAAAHZ2V0U3RyQQAAAAIFAAAACG1BY2NBZGRyAgAAABFhbGxvd2VkX2NvbnRyYWN0cwQAAAAUYWxsb3dlZENvbnRyYWN0c0xpc3QJAAS1AAAAAgUAAAAQYWxsb3dlZENvbnRyYWN0cwIAAAABOwQAAAAKZGFwcFRvQ2FsbAkABCUAAAABCQAEJAAAAAEIBQAAAANpbnYAAAAEZEFwcAkBAAAAAiE9AAAAAgkABE8AAAACBQAAABRhbGxvd2VkQ29udHJhY3RzTGlzdAUAAAAKZGFwcFRvQ2FsbAUAAAAEdW5pdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAnNzBQAAAAckbWF0Y2gwCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAIbUFjY1BLZXkH1wGYgQ==", "height": 2743381, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8Kh8hP4VQYX7NBmfJCzM2sKnCVf63SbVn6zFucyc69XB Next: 9oj5dAGRRwzRJxV51Rq6q9G55Dsvzr9m8tgPhpUECdHt Diff:
OldNewDifferences
384384 }
385385
386386
387+
388+@Callable(i)
389+func revertTransfer (txId) = if ((getBool(kLocked) == true))
390+ then throw("Contract is locked now")
391+ else if ((i.caller != this))
392+ then throw("Can be called only by the account")
393+ else {
394+ let tx = value(transferTransactionById(fromBase58String(txId)))
395+ let kReverted = ("tx_revert_" + txId)
396+ let txReverted = getBool(kReverted)
397+ let unstakedRewardNow = getInt(kUnstakedReward)
398+ let toDistr = getInt(kToDistr)
399+ let minBalance = (unstakedRewardNow + toDistr)
400+ let currentEggBalance = assetBalance(this, getEggId())
401+ if ((txReverted == true))
402+ then throw("Tx already reverted")
403+ else if ((tx.recipient != this))
404+ then throw("Tx recipient is another account")
405+ else if ((tx.assetId != getEggId()))
406+ then throw("Transaction is not with EGG tokens")
407+ else if ((minBalance > (currentEggBalance - tx.amount)))
408+ then throw("Revert makes balance too low")
409+ else [ScriptTransfer(tx.sender, tx.amount, tx.assetId), BooleanEntry(kReverted, true)]
410+ }
411+
412+
387413 @Verifier(tx)
388414 func verify () = {
389415 let checkStarted = (getInt(kTotalLiquidity) >= getInt(kLiquidityThreshold))
415441 else if ((size(inv.payments) > 2))
416442 then throw("_17")
417443 else if ((minBalance > (assetBalance(this, getEggId()) - {
418- let $list77887830 = inv.payments
419- let $size77887830 = size($list77887830)
420- let $acc077887830 = 0
421- if (($size77887830 == 0))
422- then $acc077887830
444+ let $list88088850 = inv.payments
445+ let $size88088850 = size($list88088850)
446+ let $acc088088850 = 0
447+ if (($size88088850 == 0))
448+ then $acc088088850
423449 else {
424- let $acc177887830 = totalEggSpending($acc077887830, $list77887830[0])
425- if (($size77887830 == 1))
426- then $acc177887830
450+ let $acc188088850 = totalEggSpending($acc088088850, $list88088850[0])
451+ if (($size88088850 == 1))
452+ then $acc188088850
427453 else {
428- let $acc277887830 = totalEggSpending($acc177887830, $list77887830[1])
429- if (($size77887830 == 2))
430- then $acc277887830
454+ let $acc288088850 = totalEggSpending($acc188088850, $list88088850[1])
455+ if (($size88088850 == 2))
456+ then $acc288088850
431457 else {
432- let $acc377887830 = totalEggSpending($acc277887830, $list77887830[2])
433- if (($size77887830 == 3))
434- then $acc377887830
458+ let $acc388088850 = totalEggSpending($acc288088850, $list88088850[2])
459+ if (($size88088850 == 3))
460+ then $acc388088850
435461 else {
436- let $acc477887830 = totalEggSpending($acc377887830, $list77887830[3])
462+ let $acc488088850 = totalEggSpending($acc388088850, $list88088850[3])
437463 throw("List size exceed 3")
438464 }
439465 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let mAccPKey = base58'23NWm7kUDQqbTVkirjd5JXWRZaWVoS4ZesmRNHicBa3T'
55
66 let mAccAddr = addressFromPublicKey(mAccPKey)
77
88 let feePercent = getIntegerValue(mAccAddr, (("f_" + toString(this)) + "_fee"))
99
1010 let kTotalLiquidity = "total_liquidity"
1111
1212 let kInitialized = "INITIALIZED"
1313
1414 let kLiquidityThreshold = "LIQUIDITY_THRESHOLD"
1515
1616 let kFarmParticipants = "farm_participants"
1717
1818 let kTotalShareTokens = "total_share_tokens"
1919
2020 let kShareAssetId = "SHARE_ASSET_ID"
2121
2222 let kIncubatorDapp = "INCUBATOR_DAPP"
2323
2424 let kBreederDapp = "BREEDER_DAPP"
2525
2626 let kFarmingDapp = "FARMING_DAPP"
2727
2828 let kMarketProxyDapp = "MARKETPLACE_PROXY_DAPP"
2929
3030 let kAuctionDapp = "AUCTION_DAPP"
3131
3232 let kLocked = "LOCKED"
3333
3434 let kTotalFarmingReward = "total_farming_reward"
3535
3636 let kCeoCollectedFee = "ceo_collected_fee"
3737
3838 let kCeoCollectedFeeOverall = "ceo_fee_overall"
3939
4040 let kToDistr = "to_distribute"
4141
4242 let kUnstakedReward = "unstaked_reward"
4343
4444 func getInt (key) = match getInteger(this, key) {
4545 case b: Int =>
4646 b
4747 case _ =>
4848 0
4949 }
5050
5151
5252 func getStr (key) = match getString(this, key) {
5353 case b: String =>
5454 b
5555 case _ =>
5656 ""
5757 }
5858
5959
6060 func getBool (key) = match getBoolean(this, key) {
6161 case b: Boolean =>
6262 b
6363 case _ =>
6464 unit
6565 }
6666
6767
6868 func getStrA (a,k) = match getString(a, k) {
6969 case b: String =>
7070 b
7171 case _ =>
7272 ""
7373 }
7474
7575
7676 func getIntA (address,key) = match getInteger(address, key) {
7777 case b: Int =>
7878 b
7979 case _ =>
8080 0
8181 }
8282
8383
8484 func getMarketProxyAddr () = getStrA(mAccAddr, kMarketProxyDapp)
8585
8686
8787 func getEggId () = fromBase58String(getStringValue(mAccAddr, "EGG_ASSET_ID"))
8888
8989
9090 func getShareAssetId () = fromBase58String(getStr(kShareAssetId))
9191
9292
9393 @Callable(i)
9494 func initCollectiveFarm (name,minimumThreshold) = if ((i.callerPublicKey != mAccPKey))
9595 then throw("_1")
9696 else if ((getBool(kInitialized) != unit))
9797 then throw("_2")
9898 else if (if ((i.payments[0].amount != 10))
9999 then true
100100 else (i.payments[0].assetId != getEggId()))
101101 then throw("_20")
102102 else {
103103 let shareTokens = 10000000
104104 let shareToken = Issue(name, (("Share token for the \"" + name) + "\" collective farm"), shareTokens, 8, true)
105105 [StringEntry(kShareAssetId, toBase58String(calculateAssetId(shareToken))), BooleanEntry(kInitialized, true), IntegerEntry(kTotalLiquidity, 10), IntegerEntry(kTotalShareTokens, shareTokens), shareToken, ScriptTransfer(i.caller, shareTokens, calculateAssetId(shareToken)), BooleanEntry(kLocked, false), IntegerEntry(kLiquidityThreshold, minimumThreshold)]
106106 }
107107
108108
109109
110110 @Callable(i)
111111 func setLock (s) = if ((i.callerPublicKey != mAccPKey))
112112 then throw("_21")
113113 else [BooleanEntry(kLocked, s)]
114114
115115
116116
117117 @Callable(i)
118118 func provideLiquidity () = {
119119 let eggAssetId = getEggId()
120120 if ((getBool(kLocked) == true))
121121 then throw("_22")
122122 else if ((i.payments[0].assetId != eggAssetId))
123123 then throw("_4")
124124 else {
125125 let totalLiquidity = getInt(kTotalLiquidity)
126126 let totalShareTokens = getInt(kTotalShareTokens)
127127 let currentLiquidityAmount = i.payments[0].amount
128128 let shareTokensToGive = (currentLiquidityAmount * 1000000)
129129 let shareTokensId = fromBase58String(getStr(kShareAssetId))
130130 let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
131131 let farmParticipants = getInt(kFarmParticipants)
132132 let kParticipated = (("account_" + toString(i.caller)) + "_participated")
133133 let alreadyParticipated = getBool(kParticipated)
134134 let newFarmParticipants = if ((alreadyParticipated == unit))
135135 then (farmParticipants + 1)
136136 else farmParticipants
137137 [reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalShareTokens, (totalShareTokens + shareTokensToGive)), IntegerEntry(kTotalLiquidity, (totalLiquidity + value(i.payments[0].amount))), IntegerEntry(kFarmParticipants, newFarmParticipants), BooleanEntry(kParticipated, true)]
138138 }
139139 }
140140
141141
142142
143143 @Callable(i)
144144 func claimFarmingRewardProxy (ids) = if ((i.callerPublicKey != mAccPKey))
145145 then throw("_23")
146146 else {
147147 let farmingDapp = addressFromStringValue(getStrA(mAccAddr, kFarmingDapp))
148148 func claimReward (accum,nftId) = {
149149 let invRes = invoke(farmingDapp, "claimReward", [nftId], nil)
150150 if ((invRes == invRes))
151151 then match invRes {
152152 case int: Int =>
153153 (accum + int)
154154 case _ =>
155155 throw("_5")
156156 }
157157 else throw("Strict value is not equal to itself.")
158158 }
159159
160160 let nftIds = split(ids, ";")
161161 let foldResult = {
162162 let $list45704602 = nftIds
163163 let $size45704602 = size($list45704602)
164164 let $acc045704602 = 0
165165 if (($size45704602 == 0))
166166 then $acc045704602
167167 else {
168168 let $acc145704602 = claimReward($acc045704602, $list45704602[0])
169169 if (($size45704602 == 1))
170170 then $acc145704602
171171 else {
172172 let $acc245704602 = claimReward($acc145704602, $list45704602[1])
173173 if (($size45704602 == 2))
174174 then $acc245704602
175175 else {
176176 let $acc345704602 = claimReward($acc245704602, $list45704602[2])
177177 if (($size45704602 == 3))
178178 then $acc345704602
179179 else {
180180 let $acc445704602 = claimReward($acc345704602, $list45704602[3])
181181 if (($size45704602 == 4))
182182 then $acc445704602
183183 else {
184184 let $acc545704602 = claimReward($acc445704602, $list45704602[4])
185185 if (($size45704602 == 5))
186186 then $acc545704602
187187 else {
188188 let $acc645704602 = claimReward($acc545704602, $list45704602[5])
189189 if (($size45704602 == 6))
190190 then $acc645704602
191191 else {
192192 let $acc745704602 = claimReward($acc645704602, $list45704602[6])
193193 if (($size45704602 == 7))
194194 then $acc745704602
195195 else {
196196 let $acc845704602 = claimReward($acc745704602, $list45704602[7])
197197 if (($size45704602 == 8))
198198 then $acc845704602
199199 else {
200200 let $acc945704602 = claimReward($acc845704602, $list45704602[8])
201201 if (($size45704602 == 9))
202202 then $acc945704602
203203 else {
204204 let $acc1045704602 = claimReward($acc945704602, $list45704602[9])
205205 if (($size45704602 == 10))
206206 then $acc1045704602
207207 else {
208208 let $acc1145704602 = claimReward($acc1045704602, $list45704602[10])
209209 if (($size45704602 == 11))
210210 then $acc1145704602
211211 else {
212212 let $acc1245704602 = claimReward($acc1145704602, $list45704602[11])
213213 if (($size45704602 == 12))
214214 then $acc1245704602
215215 else {
216216 let $acc1345704602 = claimReward($acc1245704602, $list45704602[12])
217217 if (($size45704602 == 13))
218218 then $acc1345704602
219219 else {
220220 let $acc1445704602 = claimReward($acc1345704602, $list45704602[13])
221221 if (($size45704602 == 14))
222222 then $acc1445704602
223223 else {
224224 let $acc1545704602 = claimReward($acc1445704602, $list45704602[14])
225225 if (($size45704602 == 15))
226226 then $acc1545704602
227227 else {
228228 let $acc1645704602 = claimReward($acc1545704602, $list45704602[15])
229229 if (($size45704602 == 16))
230230 then $acc1645704602
231231 else {
232232 let $acc1745704602 = claimReward($acc1645704602, $list45704602[16])
233233 if (($size45704602 == 17))
234234 then $acc1745704602
235235 else {
236236 let $acc1845704602 = claimReward($acc1745704602, $list45704602[17])
237237 if (($size45704602 == 18))
238238 then $acc1845704602
239239 else {
240240 let $acc1945704602 = claimReward($acc1845704602, $list45704602[18])
241241 if (($size45704602 == 19))
242242 then $acc1945704602
243243 else {
244244 let $acc2045704602 = claimReward($acc1945704602, $list45704602[19])
245245 if (($size45704602 == 20))
246246 then $acc2045704602
247247 else {
248248 let $acc2145704602 = claimReward($acc2045704602, $list45704602[20])
249249 if (($size45704602 == 21))
250250 then $acc2145704602
251251 else {
252252 let $acc2245704602 = claimReward($acc2145704602, $list45704602[21])
253253 if (($size45704602 == 22))
254254 then $acc2245704602
255255 else {
256256 let $acc2345704602 = claimReward($acc2245704602, $list45704602[22])
257257 if (($size45704602 == 23))
258258 then $acc2345704602
259259 else {
260260 let $acc2445704602 = claimReward($acc2345704602, $list45704602[23])
261261 if (($size45704602 == 24))
262262 then $acc2445704602
263263 else {
264264 let $acc2545704602 = claimReward($acc2445704602, $list45704602[24])
265265 if (($size45704602 == 25))
266266 then $acc2545704602
267267 else {
268268 let $acc2645704602 = claimReward($acc2545704602, $list45704602[25])
269269 if (($size45704602 == 26))
270270 then $acc2645704602
271271 else {
272272 let $acc2745704602 = claimReward($acc2645704602, $list45704602[26])
273273 if (($size45704602 == 27))
274274 then $acc2745704602
275275 else {
276276 let $acc2845704602 = claimReward($acc2745704602, $list45704602[27])
277277 if (($size45704602 == 28))
278278 then $acc2845704602
279279 else {
280280 let $acc2945704602 = claimReward($acc2845704602, $list45704602[28])
281281 if (($size45704602 == 29))
282282 then $acc2945704602
283283 else {
284284 let $acc3045704602 = claimReward($acc2945704602, $list45704602[29])
285285 if (($size45704602 == 30))
286286 then $acc3045704602
287287 else {
288288 let $acc3145704602 = claimReward($acc3045704602, $list45704602[30])
289289 throw("List size exceed 30")
290290 }
291291 }
292292 }
293293 }
294294 }
295295 }
296296 }
297297 }
298298 }
299299 }
300300 }
301301 }
302302 }
303303 }
304304 }
305305 }
306306 }
307307 }
308308 }
309309 }
310310 }
311311 }
312312 }
313313 }
314314 }
315315 }
316316 }
317317 }
318318 }
319319 }
320320 }
321321 }
322322 let claimedReward = match foldResult {
323323 case int: Int =>
324324 int
325325 case _ =>
326326 throw("_6")
327327 }
328328 let farmCeoFeeSize = fraction(claimedReward, feePercent, 100)
329329 let toDistr = getInt(kToDistr)
330330 let totalFarmingReward = getInt(kTotalFarmingReward)
331331 let currentCeoFee = getInt(kCeoCollectedFee)
332332 let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
333333 [IntegerEntry(kTotalFarmingReward, ((totalFarmingReward + claimedReward) - farmCeoFeeSize)), IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kToDistr, ((toDistr + claimedReward) - farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize))]
334334 }
335335
336336
337337
338338 @Callable(i)
339339 func claimCeoFee (address) = if ((getBool(kLocked) == true))
340340 then throw("_22")
341341 else if ((i.caller == this))
342342 then {
343343 let currentCeoCollectedFee = getInt(kCeoCollectedFee)
344344 [ScriptTransfer(addressFromStringValue(address), currentCeoCollectedFee, getEggId()), IntegerEntry(kCeoCollectedFee, 0)]
345345 }
346346 else throw("_8")
347347
348348
349349
350350 @Callable(i)
351351 func startLiquidation (auctionId) = throw("_7")
352352
353353
354354
355355 @Callable(i)
356356 func voteForLiquidation (auctionId) = throw("_7")
357357
358358
359359
360360 @Callable(i)
361361 func callUnstakeProxy (function,assetId) = if ((getBool(kLocked) == true))
362362 then throw("Contract is locked now")
363363 else if (if ((function != "unstakeNFT"))
364364 then (function != "unstakeJackpot")
365365 else false)
366366 then throw("Bad function name")
367367 else if ((i.caller != this))
368368 then throw("Can be called only by the account")
369369 else {
370370 let farmingDappAddress = addressFromStringValue(getStrA(mAccAddr, "FARMING_DAPP"))
371371 let ustakedReward = invoke(farmingDappAddress, function, [assetId], nil)
372372 if ((ustakedReward == ustakedReward))
373373 then {
374374 let unstakedRewardNow = getInt(kUnstakedReward)
375375 let newUnstakedReward = match ustakedReward {
376376 case int: Int =>
377377 (unstakedRewardNow + int)
378378 case _ =>
379379 throw("Error during unstaking")
380380 }
381381 [IntegerEntry(kUnstakedReward, newUnstakedReward)]
382382 }
383383 else throw("Strict value is not equal to itself.")
384384 }
385385
386386
387+
388+@Callable(i)
389+func revertTransfer (txId) = if ((getBool(kLocked) == true))
390+ then throw("Contract is locked now")
391+ else if ((i.caller != this))
392+ then throw("Can be called only by the account")
393+ else {
394+ let tx = value(transferTransactionById(fromBase58String(txId)))
395+ let kReverted = ("tx_revert_" + txId)
396+ let txReverted = getBool(kReverted)
397+ let unstakedRewardNow = getInt(kUnstakedReward)
398+ let toDistr = getInt(kToDistr)
399+ let minBalance = (unstakedRewardNow + toDistr)
400+ let currentEggBalance = assetBalance(this, getEggId())
401+ if ((txReverted == true))
402+ then throw("Tx already reverted")
403+ else if ((tx.recipient != this))
404+ then throw("Tx recipient is another account")
405+ else if ((tx.assetId != getEggId()))
406+ then throw("Transaction is not with EGG tokens")
407+ else if ((minBalance > (currentEggBalance - tx.amount)))
408+ then throw("Revert makes balance too low")
409+ else [ScriptTransfer(tx.sender, tx.amount, tx.assetId), BooleanEntry(kReverted, true)]
410+ }
411+
412+
387413 @Verifier(tx)
388414 func verify () = {
389415 let checkStarted = (getInt(kTotalLiquidity) >= getInt(kLiquidityThreshold))
390416 func totalEggSpending (accum,payment) = if ((payment.assetId == getEggId()))
391417 then (accum + payment.amount)
392418 else accum
393419
394420 match tx {
395421 case inv: InvokeScriptTransaction =>
396422 let unstakedRewardNow = getInt(kUnstakedReward)
397423 let toDistr = getInt(kToDistr)
398424 let minBalance = (unstakedRewardNow + toDistr)
399425 if (if ((inv.function == "unstakeNFT"))
400426 then true
401427 else (inv.function == "unstakeJackpot"))
402428 then throw("You cannot call these functions directly")
403429 else if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
404430 then throw("_100")
405431 else if ((checkStarted == false))
406432 then throw("_14")
407433 else if ((getBool(kLocked) == true))
408434 then throw("_22")
409435 else if (if ((inv.fee > 900000))
410436 then true
411437 else (inv.feeAssetId != unit))
412438 then throw("_15")
413439 else if ((inv.function == "claimReward"))
414440 then throw("_16")
415441 else if ((size(inv.payments) > 2))
416442 then throw("_17")
417443 else if ((minBalance > (assetBalance(this, getEggId()) - {
418- let $list77887830 = inv.payments
419- let $size77887830 = size($list77887830)
420- let $acc077887830 = 0
421- if (($size77887830 == 0))
422- then $acc077887830
444+ let $list88088850 = inv.payments
445+ let $size88088850 = size($list88088850)
446+ let $acc088088850 = 0
447+ if (($size88088850 == 0))
448+ then $acc088088850
423449 else {
424- let $acc177887830 = totalEggSpending($acc077887830, $list77887830[0])
425- if (($size77887830 == 1))
426- then $acc177887830
450+ let $acc188088850 = totalEggSpending($acc088088850, $list88088850[0])
451+ if (($size88088850 == 1))
452+ then $acc188088850
427453 else {
428- let $acc277887830 = totalEggSpending($acc177887830, $list77887830[1])
429- if (($size77887830 == 2))
430- then $acc277887830
454+ let $acc288088850 = totalEggSpending($acc188088850, $list88088850[1])
455+ if (($size88088850 == 2))
456+ then $acc288088850
431457 else {
432- let $acc377887830 = totalEggSpending($acc277887830, $list77887830[2])
433- if (($size77887830 == 3))
434- then $acc377887830
458+ let $acc388088850 = totalEggSpending($acc288088850, $list88088850[2])
459+ if (($size88088850 == 3))
460+ then $acc388088850
435461 else {
436- let $acc477887830 = totalEggSpending($acc377887830, $list77887830[3])
462+ let $acc488088850 = totalEggSpending($acc388088850, $list88088850[3])
437463 throw("List size exceed 3")
438464 }
439465 }
440466 }
441467 }
442468 })))
443469 then throw(("Your minimal balance should be = " + toString(minBalance)))
444470 else if (if ((addressFromRecipient(inv.dApp) == this))
445471 then (inv.function == "callUnstakeProxy")
446472 else false)
447473 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
448474 else if (if ((addressFromRecipient(inv.dApp) == this))
449475 then (inv.function == "claimCeoFee")
450476 else false)
451477 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
452478 else if (if ((addressFromRecipient(inv.dApp) == addressFromStringValue(getMarketProxyAddr())))
453479 then (inv.function == "callMarketplaceProxy")
454480 else false)
455481 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
456482 else {
457483 let allowedContracts = getStrA(mAccAddr, "allowed_contracts")
458484 let allowedContractsList = split(allowedContracts, ";")
459485 let dappToCall = toString(addressFromRecipient(inv.dApp))
460486 (indexOf(allowedContractsList, dappToCall) != unit)
461487 }
462488 case ss: SetScriptTransaction =>
463489 sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
464490 case _ =>
465491 false
466492 }
467493 }
468494

github/deemru/w8io/3ef1775 
92.46 ms