tx · 6tm7U2jTfq1xwaYKDqNxSM2VoZvABwQkbUbd67bo73Mq 3N4wBgYtWgJW2LTRef2ekWQTrEXCRfXmGLh: -0.01000000 Waves 2023.10.20 19:34 [2807154] smart account 3N4wBgYtWgJW2LTRef2ekWQTrEXCRfXmGLh > SELF 0.00000000 Waves
{ "type": 13, "id": "6tm7U2jTfq1xwaYKDqNxSM2VoZvABwQkbUbd67bo73Mq", "fee": 1000000, "feeAssetId": null, "timestamp": 1697819741931, "version": 2, "chainId": 84, "sender": "3N4wBgYtWgJW2LTRef2ekWQTrEXCRfXmGLh", "senderPublicKey": "7hRYZBcZCcRPgMoWSZsJ7jspEBuJt9Tc58d12xK3DWMp", "proofs": [ "4JcykYN4Mx9amG53DfY1hKMbpdZaxJPtHzitHYXoj31aphdJ9NAjURBZSXmekeDpwi4Rip4AV8gTezu2XgoiW8R2" ], "script": "base64:BgIWCAISBgoEGBERCBIAEgMKAQESAwoBAQcAFHVzZXJfYmFsYW5jZV9hZGRyZXNzAiMzTjFzMnc0TkhnYnJYeE5aWEg5UnRhVlQ5cHRIUkpjZ1NwMgARbHBfYWRkcmVzc19wdWJrZXkBIMjtmNqG7lU1WGDHPJboKlti9SIwxR/k7IFRCWjnzhpzACBtYXNzdHJhbnNmZXJfd2hpdGVsaXN0ZWRfYWRkcmVzcwkApwgBBRFscF9hZGRyZXNzX3B1YmtleQAUbHBfZGVwb3NpdG9yX2FkZHJlc3MBIAKzAejCIyo1u64LRV3TLFVU23AoEuHL2Ni8HYSbNWZ5ABRscF93aGl0ZWxpc3RfYWRkcmVzcwkApwgBBRRscF9kZXBvc2l0b3JfYWRkcmVzcwALbmV0d29ya19mZWUAoMIeAR12YWxpZGF0ZU1hc3NUcmFuc2ZlckFyZ3VtZW50cwQKcmVjaXBpZW50cwdhbW91bnRzCnBheW1lbnRJZHgIcGF5bWVudHMEDnJlY2lwaWVudHNTaXplCQCQAwEFCnJlY2lwaWVudHMEC2Ftb3VudHNTaXplCQCQAwEFB2Ftb3VudHMEDnBheW1lbnRJZHhTaXplCQCQAwEFCnBheW1lbnRJZHgEDHBheW1lbnRzU2l6ZQkAkAMBBQhwYXltZW50cwQJbWluQW1vdW50CQCXAwEFB2Ftb3VudHMEDW1pblBheW1lbnRJZHgJAJcDAQUKcGF5bWVudElkeAQNbWF4UGF5bWVudElkeAkAlgMBBQpwYXltZW50SWR4CgERcGF5bWVudHNWYWxpZGF0b3ICDHBheW1lbnRBY2N1bQtuZXh0UGF5bWVudAQLJHQwMTQ5MDE1MjcFDHBheW1lbnRBY2N1bQQNdmFsaWRQYXltZW50cwgFCyR0MDE0OTAxNTI3Al8xBAFqCAULJHQwMTQ5MDE1MjcCXzIDCQBnAgUBagUMcGF5bWVudHNTaXplCQCUCgIFDXZhbGlkUGF5bWVudHMJAGQCBQFqAAEKARFhbW91bnRzQWdncmVnYXRvcgILYW1vdW50QWNjdW0KbmV4dEFtb3VudAQLJHQwMTY4MjE3MTEFC2Ftb3VudEFjY3VtBAZhbW91bnQIBQskdDAxNjgyMTcxMQJfMQQBawgFCyR0MDE2ODIxNzExAl8yAwMJAGcCBQFr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XzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoDAwMDAwMDAwkAAAIFDnJlY2lwaWVudHNTaXplBQthbW91bnRzU2l6ZQkAAAIFDnJlY2lwaWVudHNTaXplBQ5wYXltZW50SWR4U2l6ZQcJAGYCBQ5yZWNpcGllbnRzU2l6ZQAABwkAZwIAZAUOcmVjaXBpZW50c1NpemUHCQBmAgUMcGF5bWVudHNTaXplAAAHCQBmAgUJbWluQW1vdW50AAAHCQAAAgUNbWluUGF5bWVudElkeAAABwkAAAIFDW1heFBheW1lbnRJZHgJAGUCBQxwYXltZW50c1NpemUAAQcJAAACCAUScGF5bWVudHNWYWxpZGF0aW9uAl8xBQxwYXltZW50c1NpemUHBAFpAQxtYXNzVHJhbnNmZXIECnJlY2lwaWVudHMHYW1vdW50cwpwYXltZW50SWR4CmF0dGFjaG1lbnQEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAZBbW91bnQIBQNwbXQGYW1vdW50BBVtYXhpbXVtX3BheW91dF9mYWN0b3IAEgQHQ291bnRlcgkAkQMCCQC1CQIFCmF0dGFjaG1lbnQCAV8AAAQdQ2hlY2tUb3RhbEZ1bmRzQWRkZWRJbkNvdW50ZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQERQGV4dHJOYXRpdmUoMTA2MikBBRR1c2VyX2JhbGFuY2VfYWRkcmVzcwkArAICAiJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfBQdDb3VudGVyCQCsAgIJAKwCAgIMQ291bnRlciBJRDogBQdDb3VudGVyAgsgTm90IEZvdW5kLgQQbWFzc3BheW91dGxpbWl0cwkAawMFHUNoZWNrVG90YWxGdW5kc0FkZGVkSW5Db3VudGVyBRVtYXhpbXVtX3BheW91dF9mYWN0b3IACgMJAQIhPQIIBQFpBmNhbGxlcgUgbWFzc3RyYW5zZmVyX3doaXRlbGlzdGVkX2FkZHJlc3MJAAIBCQCsAgIJAKwCAgISTm90IGFuIEFkbWluIG9ubHkgCQClCAEFIG1hc3N0cmFuc2Zlcl93aGl0ZWxpc3RlZF9hZGRyZXNzAg0gY2FuIHNpZ24gaXQuAwkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAkAAgECK09ubHkgV2F2ZXMgaXMgYWxsb3dlZCB0byBBdHRhY2ggYXMgcGF5bWVudC4DCQEBIQEJAR12YWxpZGF0ZU1hc3NUcmFuc2ZlckFyZ3VtZW50cwQFCnJlY2lwaWVudHMFB2Ftb3VudHMFCnBheW1lbnRJZHgIBQFpCHBheW1lbnRzCQACAQIRSW52YWxpZCBhcmd1bWVudHMDCQBmAgUGQW1vdW50BRBtYXNzcGF5b3V0bGltaXRzCQACAQkArAICCQCsAgICSUF0dGFjaGVkIFBheW1lbnQgQW1vdW50IGlzIGV4Y2VlZGluZyBtb3JlIHRoYW4gTWF4aW11bSBFbGlnaWJsZSBMaW1pdCBvZiAJAKQDAQUQbWFzc3BheW91dGxpbWl0cwIKIFdhdmVsZXRzLgQOcmVjaXBpZW50c1NpemUJAJADAQUKcmVjaXBpZW50cwoBGHNjcmlwdFRyYW5zZmVyc0dlbmVyYXRvcgIFYWNjdW0EbmV4dAQLJHQwMzY0NzM2NzkFBWFjY3VtBA9zY3JpcHRUcmFuc2ZlcnMIBQskdDAzNjQ3MzY3OQJfMQQBaggFCyR0MDM2NDczNjc5Al8yAwkAZwIFAWoFDnJlY2lwaWVudHNTaXplCQCUCgIFD3NjcmlwdFRyYW5zZmVycwkAZAIFAWoAAQkAlAoCCQDNCAIFD3NjcmlwdFRyYW5zZmVycwkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQpyZWNpcGllbnRzBQFqBQRuZXh0CAkAkQMCCAUBaQhwYXltZW50cwkAkQMCBQpwYXltZW50SWR4BQFqB2Fzc2V0SWQJAGQCBQFqAAEEBnJlc3VsdAoAAiRsBQdhbW91bnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEYc2NyaXB0VHJhbnNmZXJzR2VuZXJhdG9yAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhVMaXN0IHNpemUgZXhjZWVkcyAxMDAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZAkAlAoCCQDOCAIIBQZyZXN1bHQCXzEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHQ291bnRlcgIOX1RvdGFsX1dpbm5lcnMFDnJlY2lwaWVudHNTaXplBQNuaWwFBHVuaXQBaQEQQWRkUG9vbExpcXVpZGl0eQAEDWNhbGxlcmFkZHJlc3MJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQJJTm8gcGF5bWVudCBhdHRhY2hlZCwgUGxlYXNlIEF0dGFjaCBvbmx5IFdoaXRlbGlzdGVkIFRva2VucyBpbiBwYXltZW50WzFdLgQhUHJldmlvdXNGdW5kc0FkZGVkVG9Qb29sYnlDb21wYW55BAckbWF0Y2gwCQCaCAIFBHRoaXMCDlRvdGFsX0xQX0FkZGVkAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABB5Ub3RhbEZ1bmRzQWRkZWRUb1Bvb2xieUNvbXBhbnkJAGQCBSFQcmV2aW91c0Z1bmRzQWRkZWRUb1Bvb2xieUNvbXBhbnkIBQNwbXQGYW1vdW50BBVQcmV2aW91c1Bvb2xMaXF1aWRpdHkEByRtYXRjaDAJAJoIAgUEdGhpcwIUVG90YWxfUG9vbF9MaXF1aWRpdHkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEElRvdGFsUG9vbExpcXVpZGl0eQkAZAIFFVByZXZpb3VzUG9vbExpcXVpZGl0eQgFA3BtdAZhbW91bnQEGFByZXZpb3VzTFBEZXBvc2l0Q291bnRlcgQHJG1hdGNoMAkAmggCBQR0aGlzAhJMUF9EZXBvc2l0X0NvdW50ZXIDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFVRvdGFsTFBEZXBvc2l0Q291bnRlcgkAZAIFGFByZXZpb3VzTFBEZXBvc2l0Q291bnRlcgABAwkBAiE9AggFAWkGY2FsbGVyBRRscF93aGl0ZWxpc3RfYWRkcmVzcwkAAgEJAKwCAgkArAICAiVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQClCAEFFGxwX3doaXRlbGlzdF9hZGRyZXNzAiIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAkAAgECLk9ubHkgV0FWRVMgaXMgYWxsb3dlZCB0byBkZXBvc2l0IGF0IHRoZSBtb21lbnQJAMwIAgkBDEludGVnZXJFbnRyeQICFFRvdGFsX1Bvb2xfTGlxdWlkaXR5BRJUb3RhbFBvb2xMaXF1aWRpdHkJAMwIAgkBDEludGVnZXJFbnRyeQICEkxQX0RlcG9zaXRfQ291bnRlcgUVVG90YWxMUERlcG9zaXRDb3VudGVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg5Ub3RhbF9MUF9BZGRlZAUeVG90YWxGdW5kc0FkZGVkVG9Qb29sYnlDb21wYW55BQNuaWwBaQEPVXBkYXRlTFBCYWxhbmNlARZQYWlkTWFzc1RyYW5zZmVyQW1vdW50BBRyZWFkX2FjY291bnRfYmFsYW5jZQgJAO8HAQUEdGhpcwdyZWd1bGFyBBlyZWFkX3RvdGFsX3Bvb2xfbGlxdWlkaXR5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwIUVG90YWxfUG9vbF9MaXF1aWRpdHkCJE5vIEluaXRpYWwgUG9vbCBMaXF1aWRpdHkgd2FzIEZvdW5kLgQVcmVjZWl2ZWRfb3JkZXJfYW1vdW50CQBlAgkAZQIFFHJlYWRfYWNjb3VudF9iYWxhbmNlBRlyZWFkX3RvdGFsX3Bvb2xfbGlxdWlkaXR5BQtuZXR3b3JrX2ZlZQQUdXBkYXRlZF9wb29sX2JhbGFuY2UJAGQCCQBlAgUZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQUWUGFpZE1hc3NUcmFuc2ZlckFtb3VudAUVcmVjZWl2ZWRfb3JkZXJfYW1vdW50BBtQcmV2aW91c01hc3NUcmFuc2ZlckNvdW50ZXIEByRtYXRjaDAJAJoIAgUEdGhpcwIVTWFzc19UcmFuc2Zlcl9Db3VudGVyAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBhUb3RhbE1hc3NUcmFuc2ZlckNvdW50ZXIJAGQCBRtQcmV2aW91c01hc3NUcmFuc2ZlckNvdW50ZXIAAQQYUHJldmlvdXNNYXNzVHJhbnNmZXJTZW5kBAckbWF0Y2gwCQCaCAIFBHRoaXMCGFRvdGFsX01hc3NfVHJhbnNmZXJfU2VuZAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQVVG90YWxNYXNzVHJhbnNmZXJTZW5kCQBkAgUYUHJldmlvdXNNYXNzVHJhbnNmZXJTZW5kBRZQYWlkTWFzc1RyYW5zZmVyQW1vdW50AwkBAiE9AggFAWkGY2FsbGVyBSBtYXNzdHJhbnNmZXJfd2hpdGVsaXN0ZWRfYWRkcmVzcwkAAgEJAKwCAgkArAICAiVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQClCAEFIG1hc3N0cmFuc2Zlcl93aGl0ZWxpc3RlZF9hZGRyZXNzAiIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAZgIFFlBhaWRNYXNzVHJhbnNmZXJBbW91bnQFGXJlYWRfdG90YWxfcG9vbF9saXF1aWRpdHkJAAIBAkNQbGFjZWQgTWFzcyBUcmFuc2ZlciBBbW91bnQgU2l6ZSBpcyBtb3JlIHRoYW4gVG90YWwgUG9vbCBMaXF1aWRpdHkuCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhRUb3RhbF9Qb29sX0xpcXVpZGl0eQUUdXBkYXRlZF9wb29sX2JhbGFuY2UJAMwIAgkBDEludGVnZXJFbnRyeQICFU1hc3NfVHJhbnNmZXJfQ291bnRlcgUYVG90YWxNYXNzVHJhbnNmZXJDb3VudGVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhhUb3RhbF9NYXNzX1RyYW5zZmVyX1NlbmQFFVRvdGFsTWFzc1RyYW5zZmVyU2VuZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCkAwEFGFRvdGFsTWFzc1RyYW5zZmVyQ291bnRlcgITX01hc3NfVHJhbnNmZXJfU2VuZAUWUGFpZE1hc3NUcmFuc2ZlckFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBSBtYXNzdHJhbnNmZXJfd2hpdGVsaXN0ZWRfYWRkcmVzcwUWUGFpZE1hc3NUcmFuc2ZlckFtb3VudAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBSBtYXNzdHJhbnNmZXJfd2hpdGVsaXN0ZWRfYWRkcmVzcwULbmV0d29ya19mZWUFBHVuaXQFA25pbAFpARFXaXRoZHJhd0xQQmFsYW5jZQEOV2l0aGRyYXdBbW91bnQEGXJlYWRfdG90YWxfcG9vbF9saXF1aWRpdHkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzAhRUb3RhbF9Qb29sX0xpcXVpZGl0eQIkTm8gSW5pdGlhbCBQb29sIExpcXVpZGl0eSB3YXMgRm91bmQuBBR1cGRhdGVkX3Bvb2xfYmFsYW5jZQkAZQIFGXJlYWRfdG90YWxfcG9vbF9saXF1aWRpdHkFDldpdGhkcmF3QW1vdW50BBlQcmV2aW91c0xQV2l0aGRyYXdDb3VudGVyBAckbWF0Y2gwCQCaCAIFBHRoaXMCE0xQX1dpdGhkcmF3X0NvdW50ZXIDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFlRvdGFsTFBXaXRoZHJhd0NvdW50ZXIJAGQCBRlQcmV2aW91c0xQV2l0aGRyYXdDb3VudGVyAAEEElByZXZpb3VzTFBXaXRoZHJhdwQHJG1hdGNoMAkAmggCBQR0aGlzAhFUb3RhbF9MUF9XaXRoZHJhdwMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQPVG90YWxMUFdpdGhkcmF3CQBkAgUSUHJldmlvdXNMUFdpdGhkcmF3BQ5XaXRoZHJhd0Ftb3VudAMJAQIhPQIIBQFpBmNhbGxlcgUUbHBfd2hpdGVsaXN0X2FkZHJlc3MJAAIBCQCsAgIJAKwCAgIlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkApQgBBRRscF93aGl0ZWxpc3RfYWRkcmVzcwIiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAGYCBQ5XaXRoZHJhd0Ftb3VudAUZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQkAAgECPlBsYWNlZCBXaXRoZHJhdyBBbW91bnQgU2l6ZSBpcyBtb3JlIHRoYW4gVG90YWwgUG9vbCBMaXF1aWRpdHkuCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhRUb3RhbF9Qb29sX0xpcXVpZGl0eQUUdXBkYXRlZF9wb29sX2JhbGFuY2UJAMwIAgkBDEludGVnZXJFbnRyeQICE0xQX1dpdGhkcmF3X0NvdW50ZXIFFlRvdGFsTFBXaXRoZHJhd0NvdW50ZXIJAMwIAgkBDEludGVnZXJFbnRyeQICEVRvdGFsX0xQX1dpdGhkcmF3BQ9Ub3RhbExQV2l0aGRyYXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkApAMBBRZUb3RhbExQV2l0aGRyYXdDb3VudGVyAgxfTFBfV2l0aGRyYXcFDldpdGhkcmF3QW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFFGxwX3doaXRlbGlzdF9hZGRyZXNzBQ5XaXRoZHJhd0Ftb3VudAUEdW5pdAUDbmlsAQJ0eAEGdmVyaWZ5AAQHJG1hdGNoMAUCdHgDAwkAAQIFByRtYXRjaDACBU9yZGVyBgMJAAECBQckbWF0Y2gwAhNFeGNoYW5nZVRyYW5zYWN0aW9uBgkAAQIFByRtYXRjaDACE1RyYW5zZmVyVHJhbnNhY3Rpb24EAXQFByRtYXRjaDAHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5Z3D1hg==", "height": 2807154, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5ifMDAaSpBkaEB5z2xrDyqzA2DZHH8G1Fgk4znhHsoo9 Next: none Diff:
Old | New | Differences | |
---|---|---|---|
107 | 107 | then throw("Only Waves is allowed to Attach as payment.") | |
108 | 108 | else if (!(validateMassTransferArguments(recipients, amounts, paymentIdx, i.payments))) | |
109 | 109 | then throw("Invalid arguments") | |
110 | - | else if ((Amount > | |
110 | + | else if ((Amount > masspayoutlimits)) | |
111 | 111 | then throw((("Attached Payment Amount is exceeding more than Maximum Eligible Limit of " + toString(masspayoutlimits)) + " Wavelets.")) | |
112 | 112 | else { | |
113 | 113 | let recipientsSize = size(recipients) | |
114 | 114 | func scriptTransfersGenerator (accum,next) = { | |
115 | - | let $ | |
116 | - | let scriptTransfers = $ | |
117 | - | let j = $ | |
115 | + | let $t036473679 = accum | |
116 | + | let scriptTransfers = $t036473679._1 | |
117 | + | let j = $t036473679._2 | |
118 | 118 | if ((j >= recipientsSize)) | |
119 | 119 | then $Tuple2(scriptTransfers, (j + 1)) | |
120 | 120 | else $Tuple2((scriptTransfers :+ ScriptTransfer(addressFromStringValue(recipients[j]), next, i.payments[paymentIdx[j]].assetId)), (j + 1)) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let user_balance_address = "3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2" | |
5 | 5 | ||
6 | 6 | let lp_address_pubkey = base58'EXLfxKmqhQPiProBaoPatTentUSZX5Dd8A8bYDcmfNwt' | |
7 | 7 | ||
8 | 8 | let masstransfer_whitelisted_address = addressFromPublicKey(lp_address_pubkey) | |
9 | 9 | ||
10 | 10 | let lp_depositor_address = base58'BY8Zzs9J1T1DuiWMW4QKgbVAC99HYARVSxV4gd8fN7A' | |
11 | 11 | ||
12 | 12 | let lp_whitelist_address = addressFromPublicKey(lp_depositor_address) | |
13 | 13 | ||
14 | 14 | let network_fee = 500000 | |
15 | 15 | ||
16 | 16 | func validateMassTransferArguments (recipients,amounts,paymentIdx,payments) = { | |
17 | 17 | let recipientsSize = size(recipients) | |
18 | 18 | let amountsSize = size(amounts) | |
19 | 19 | let paymentIdxSize = size(paymentIdx) | |
20 | 20 | let paymentsSize = size(payments) | |
21 | 21 | let minAmount = min(amounts) | |
22 | 22 | let minPaymentIdx = min(paymentIdx) | |
23 | 23 | let maxPaymentIdx = max(paymentIdx) | |
24 | 24 | func paymentsValidator (paymentAccum,nextPayment) = { | |
25 | 25 | let $t014901527 = paymentAccum | |
26 | 26 | let validPayments = $t014901527._1 | |
27 | 27 | let j = $t014901527._2 | |
28 | 28 | if ((j >= paymentsSize)) | |
29 | 29 | then $Tuple2(validPayments, (j + 1)) | |
30 | 30 | else { | |
31 | 31 | func amountsAggregator (amountAccum,nextAmount) = { | |
32 | 32 | let $t016821711 = amountAccum | |
33 | 33 | let amount = $t016821711._1 | |
34 | 34 | let k = $t016821711._2 | |
35 | 35 | if (if ((k >= recipientsSize)) | |
36 | 36 | then true | |
37 | 37 | else (paymentIdx[k] != j)) | |
38 | 38 | then $Tuple2(amount, (k + 1)) | |
39 | 39 | else $Tuple2((amount + nextAmount), (k + 1)) | |
40 | 40 | } | |
41 | 41 | ||
42 | 42 | let aggregatedAmount = { | |
43 | 43 | let $l = amounts | |
44 | 44 | let $s = size($l) | |
45 | 45 | let $acc0 = $Tuple2(0, 0) | |
46 | 46 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
47 | 47 | then $a | |
48 | 48 | else amountsAggregator($a, $l[$i]) | |
49 | 49 | ||
50 | 50 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
51 | 51 | then $a | |
52 | 52 | else throw("List size exceeds 100") | |
53 | 53 | ||
54 | 54 | $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($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($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($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($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($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($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), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
55 | 55 | } | |
56 | 56 | if ((aggregatedAmount._1 == nextPayment.amount)) | |
57 | 57 | then $Tuple2((validPayments + 1), (j + 1)) | |
58 | 58 | else $Tuple2(validPayments, (j + 1)) | |
59 | 59 | } | |
60 | 60 | } | |
61 | 61 | ||
62 | 62 | let paymentsValidation = { | |
63 | 63 | let $l = payments | |
64 | 64 | let $s = size($l) | |
65 | 65 | let $acc0 = $Tuple2(0, 0) | |
66 | 66 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
67 | 67 | then $a | |
68 | 68 | else paymentsValidator($a, $l[$i]) | |
69 | 69 | ||
70 | 70 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
71 | 71 | then $a | |
72 | 72 | else throw("List size exceeds 10") | |
73 | 73 | ||
74 | 74 | $f0_2($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) | |
75 | 75 | } | |
76 | 76 | if (if (if (if (if (if (if (if ((recipientsSize == amountsSize)) | |
77 | 77 | then (recipientsSize == paymentIdxSize) | |
78 | 78 | else false) | |
79 | 79 | then (recipientsSize > 0) | |
80 | 80 | else false) | |
81 | 81 | then (100 >= recipientsSize) | |
82 | 82 | else false) | |
83 | 83 | then (paymentsSize > 0) | |
84 | 84 | else false) | |
85 | 85 | then (minAmount > 0) | |
86 | 86 | else false) | |
87 | 87 | then (minPaymentIdx == 0) | |
88 | 88 | else false) | |
89 | 89 | then (maxPaymentIdx == (paymentsSize - 1)) | |
90 | 90 | else false) | |
91 | 91 | then (paymentsValidation._1 == paymentsSize) | |
92 | 92 | else false | |
93 | 93 | } | |
94 | 94 | ||
95 | 95 | ||
96 | 96 | @Callable(i) | |
97 | 97 | func massTransfer (recipients,amounts,paymentIdx,attachment) = { | |
98 | 98 | let pmt = value(i.payments[0]) | |
99 | 99 | let Amount = pmt.amount | |
100 | 100 | let maximum_payout_factor = 18 | |
101 | 101 | let Counter = split(attachment, "_")[0] | |
102 | 102 | let CheckTotalFundsAddedInCounter = valueOrErrorMessage(getInteger(addressFromStringValue(user_balance_address), ("Total_Funds_Added_In_Option_Order_" + Counter)), (("Counter ID: " + Counter) + " Not Found.")) | |
103 | 103 | let masspayoutlimits = fraction(CheckTotalFundsAddedInCounter, maximum_payout_factor, 10) | |
104 | 104 | if ((i.caller != masstransfer_whitelisted_address)) | |
105 | 105 | then throw((("Not an Admin only " + toString(masstransfer_whitelisted_address)) + " can sign it.")) | |
106 | 106 | else if (isDefined(pmt.assetId)) | |
107 | 107 | then throw("Only Waves is allowed to Attach as payment.") | |
108 | 108 | else if (!(validateMassTransferArguments(recipients, amounts, paymentIdx, i.payments))) | |
109 | 109 | then throw("Invalid arguments") | |
110 | - | else if ((Amount > | |
110 | + | else if ((Amount > masspayoutlimits)) | |
111 | 111 | then throw((("Attached Payment Amount is exceeding more than Maximum Eligible Limit of " + toString(masspayoutlimits)) + " Wavelets.")) | |
112 | 112 | else { | |
113 | 113 | let recipientsSize = size(recipients) | |
114 | 114 | func scriptTransfersGenerator (accum,next) = { | |
115 | - | let $ | |
116 | - | let scriptTransfers = $ | |
117 | - | let j = $ | |
115 | + | let $t036473679 = accum | |
116 | + | let scriptTransfers = $t036473679._1 | |
117 | + | let j = $t036473679._2 | |
118 | 118 | if ((j >= recipientsSize)) | |
119 | 119 | then $Tuple2(scriptTransfers, (j + 1)) | |
120 | 120 | else $Tuple2((scriptTransfers :+ ScriptTransfer(addressFromStringValue(recipients[j]), next, i.payments[paymentIdx[j]].assetId)), (j + 1)) | |
121 | 121 | } | |
122 | 122 | ||
123 | 123 | let result = { | |
124 | 124 | let $l = amounts | |
125 | 125 | let $s = size($l) | |
126 | 126 | let $acc0 = $Tuple2(nil, 0) | |
127 | 127 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
128 | 128 | then $a | |
129 | 129 | else scriptTransfersGenerator($a, $l[$i]) | |
130 | 130 | ||
131 | 131 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
132 | 132 | then $a | |
133 | 133 | else throw("List size exceeds 100") | |
134 | 134 | ||
135 | 135 | $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($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($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($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($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($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($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), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100) | |
136 | 136 | } | |
137 | 137 | $Tuple2((result._1 ++ [IntegerEntry((Counter + "_Total_Winners"), recipientsSize)]), unit) | |
138 | 138 | } | |
139 | 139 | } | |
140 | 140 | ||
141 | 141 | ||
142 | 142 | ||
143 | 143 | @Callable(i) | |
144 | 144 | func AddPoolLiquidity () = { | |
145 | 145 | let calleraddress = toBase58String(i.caller.bytes) | |
146 | 146 | let pmt = if ((size(i.payments) == 1)) | |
147 | 147 | then i.payments[0] | |
148 | 148 | else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].") | |
149 | 149 | let PreviousFundsAddedToPoolbyCompany = match getInteger(this, "Total_LP_Added") { | |
150 | 150 | case a: Int => | |
151 | 151 | a | |
152 | 152 | case _ => | |
153 | 153 | 0 | |
154 | 154 | } | |
155 | 155 | let TotalFundsAddedToPoolbyCompany = (PreviousFundsAddedToPoolbyCompany + pmt.amount) | |
156 | 156 | let PreviousPoolLiquidity = match getInteger(this, "Total_Pool_Liquidity") { | |
157 | 157 | case a: Int => | |
158 | 158 | a | |
159 | 159 | case _ => | |
160 | 160 | 0 | |
161 | 161 | } | |
162 | 162 | let TotalPoolLiquidity = (PreviousPoolLiquidity + pmt.amount) | |
163 | 163 | let PreviousLPDepositCounter = match getInteger(this, "LP_Deposit_Counter") { | |
164 | 164 | case a: Int => | |
165 | 165 | a | |
166 | 166 | case _ => | |
167 | 167 | 0 | |
168 | 168 | } | |
169 | 169 | let TotalLPDepositCounter = (PreviousLPDepositCounter + 1) | |
170 | 170 | if ((i.caller != lp_whitelist_address)) | |
171 | 171 | then throw((("This Address is not Authorized. Only " + toString(lp_whitelist_address)) + " is Authorized Address to Sign it.")) | |
172 | 172 | else if (isDefined(pmt.assetId)) | |
173 | 173 | then throw("Only WAVES is allowed to deposit at the moment") | |
174 | 174 | else [IntegerEntry("Total_Pool_Liquidity", TotalPoolLiquidity), IntegerEntry("LP_Deposit_Counter", TotalLPDepositCounter), IntegerEntry("Total_LP_Added", TotalFundsAddedToPoolbyCompany)] | |
175 | 175 | } | |
176 | 176 | ||
177 | 177 | ||
178 | 178 | ||
179 | 179 | @Callable(i) | |
180 | 180 | func UpdateLPBalance (PaidMassTransferAmount) = { | |
181 | 181 | let read_account_balance = wavesBalance(this).regular | |
182 | 182 | let read_total_pool_liquidity = valueOrErrorMessage(getInteger(this, "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.") | |
183 | 183 | let received_order_amount = ((read_account_balance - read_total_pool_liquidity) - network_fee) | |
184 | 184 | let updated_pool_balance = ((read_total_pool_liquidity - PaidMassTransferAmount) + received_order_amount) | |
185 | 185 | let PreviousMassTransferCounter = match getInteger(this, "Mass_Transfer_Counter") { | |
186 | 186 | case a: Int => | |
187 | 187 | a | |
188 | 188 | case _ => | |
189 | 189 | 0 | |
190 | 190 | } | |
191 | 191 | let TotalMassTransferCounter = (PreviousMassTransferCounter + 1) | |
192 | 192 | let PreviousMassTransferSend = match getInteger(this, "Total_Mass_Transfer_Send") { | |
193 | 193 | case a: Int => | |
194 | 194 | a | |
195 | 195 | case _ => | |
196 | 196 | 0 | |
197 | 197 | } | |
198 | 198 | let TotalMassTransferSend = (PreviousMassTransferSend + PaidMassTransferAmount) | |
199 | 199 | if ((i.caller != masstransfer_whitelisted_address)) | |
200 | 200 | then throw((("This Address is not Authorized. Only " + toString(masstransfer_whitelisted_address)) + " is Authorized Address to Sign it.")) | |
201 | 201 | else if ((PaidMassTransferAmount > read_total_pool_liquidity)) | |
202 | 202 | then throw("Placed Mass Transfer Amount Size is more than Total Pool Liquidity.") | |
203 | 203 | else [IntegerEntry("Total_Pool_Liquidity", updated_pool_balance), IntegerEntry("Mass_Transfer_Counter", TotalMassTransferCounter), IntegerEntry("Total_Mass_Transfer_Send", TotalMassTransferSend), IntegerEntry((toString(TotalMassTransferCounter) + "_Mass_Transfer_Send"), PaidMassTransferAmount), ScriptTransfer(masstransfer_whitelisted_address, PaidMassTransferAmount, unit), ScriptTransfer(masstransfer_whitelisted_address, network_fee, unit)] | |
204 | 204 | } | |
205 | 205 | ||
206 | 206 | ||
207 | 207 | ||
208 | 208 | @Callable(i) | |
209 | 209 | func WithdrawLPBalance (WithdrawAmount) = { | |
210 | 210 | let read_total_pool_liquidity = valueOrErrorMessage(getInteger(this, "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.") | |
211 | 211 | let updated_pool_balance = (read_total_pool_liquidity - WithdrawAmount) | |
212 | 212 | let PreviousLPWithdrawCounter = match getInteger(this, "LP_Withdraw_Counter") { | |
213 | 213 | case a: Int => | |
214 | 214 | a | |
215 | 215 | case _ => | |
216 | 216 | 0 | |
217 | 217 | } | |
218 | 218 | let TotalLPWithdrawCounter = (PreviousLPWithdrawCounter + 1) | |
219 | 219 | let PreviousLPWithdraw = match getInteger(this, "Total_LP_Withdraw") { | |
220 | 220 | case a: Int => | |
221 | 221 | a | |
222 | 222 | case _ => | |
223 | 223 | 0 | |
224 | 224 | } | |
225 | 225 | let TotalLPWithdraw = (PreviousLPWithdraw + WithdrawAmount) | |
226 | 226 | if ((i.caller != lp_whitelist_address)) | |
227 | 227 | then throw((("This Address is not Authorized. Only " + toString(lp_whitelist_address)) + " is Authorized Address to Sign it.")) | |
228 | 228 | else if ((WithdrawAmount > read_total_pool_liquidity)) | |
229 | 229 | then throw("Placed Withdraw Amount Size is more than Total Pool Liquidity.") | |
230 | 230 | else [IntegerEntry("Total_Pool_Liquidity", updated_pool_balance), IntegerEntry("LP_Withdraw_Counter", TotalLPWithdrawCounter), IntegerEntry("Total_LP_Withdraw", TotalLPWithdraw), IntegerEntry((toString(TotalLPWithdrawCounter) + "_LP_Withdraw"), WithdrawAmount), ScriptTransfer(lp_whitelist_address, WithdrawAmount, unit)] | |
231 | 231 | } | |
232 | 232 | ||
233 | 233 | ||
234 | 234 | @Verifier(tx) | |
235 | 235 | func verify () = match tx { | |
236 | 236 | case t: Order|ExchangeTransaction|TransferTransaction => | |
237 | 237 | false | |
238 | 238 | case _ => | |
239 | 239 | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
240 | 240 | } | |
241 | 241 |
github/deemru/w8io/169f3d6 86.69 ms ◑