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:
OldNewDifferences
107107 then throw("Only Waves is allowed to Attach as payment.")
108108 else if (!(validateMassTransferArguments(recipients, amounts, paymentIdx, i.payments)))
109109 then throw("Invalid arguments")
110- else if ((Amount > CheckTotalFundsAddedInCounter))
110+ else if ((Amount > masspayoutlimits))
111111 then throw((("Attached Payment Amount is exceeding more than Maximum Eligible Limit of " + toString(masspayoutlimits)) + " Wavelets."))
112112 else {
113113 let recipientsSize = size(recipients)
114114 func scriptTransfersGenerator (accum,next) = {
115- let $t036603692 = accum
116- let scriptTransfers = $t036603692._1
117- let j = $t036603692._2
115+ let $t036473679 = accum
116+ let scriptTransfers = $t036473679._1
117+ let j = $t036473679._2
118118 if ((j >= recipientsSize))
119119 then $Tuple2(scriptTransfers, (j + 1))
120120 else $Tuple2((scriptTransfers :+ ScriptTransfer(addressFromStringValue(recipients[j]), next, i.payments[paymentIdx[j]].assetId)), (j + 1))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let user_balance_address = "3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2"
55
66 let lp_address_pubkey = base58'EXLfxKmqhQPiProBaoPatTentUSZX5Dd8A8bYDcmfNwt'
77
88 let masstransfer_whitelisted_address = addressFromPublicKey(lp_address_pubkey)
99
1010 let lp_depositor_address = base58'BY8Zzs9J1T1DuiWMW4QKgbVAC99HYARVSxV4gd8fN7A'
1111
1212 let lp_whitelist_address = addressFromPublicKey(lp_depositor_address)
1313
1414 let network_fee = 500000
1515
1616 func validateMassTransferArguments (recipients,amounts,paymentIdx,payments) = {
1717 let recipientsSize = size(recipients)
1818 let amountsSize = size(amounts)
1919 let paymentIdxSize = size(paymentIdx)
2020 let paymentsSize = size(payments)
2121 let minAmount = min(amounts)
2222 let minPaymentIdx = min(paymentIdx)
2323 let maxPaymentIdx = max(paymentIdx)
2424 func paymentsValidator (paymentAccum,nextPayment) = {
2525 let $t014901527 = paymentAccum
2626 let validPayments = $t014901527._1
2727 let j = $t014901527._2
2828 if ((j >= paymentsSize))
2929 then $Tuple2(validPayments, (j + 1))
3030 else {
3131 func amountsAggregator (amountAccum,nextAmount) = {
3232 let $t016821711 = amountAccum
3333 let amount = $t016821711._1
3434 let k = $t016821711._2
3535 if (if ((k >= recipientsSize))
3636 then true
3737 else (paymentIdx[k] != j))
3838 then $Tuple2(amount, (k + 1))
3939 else $Tuple2((amount + nextAmount), (k + 1))
4040 }
4141
4242 let aggregatedAmount = {
4343 let $l = amounts
4444 let $s = size($l)
4545 let $acc0 = $Tuple2(0, 0)
4646 func $f0_1 ($a,$i) = if (($i >= $s))
4747 then $a
4848 else amountsAggregator($a, $l[$i])
4949
5050 func $f0_2 ($a,$i) = if (($i >= $s))
5151 then $a
5252 else throw("List size exceeds 100")
5353
5454 $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)
5555 }
5656 if ((aggregatedAmount._1 == nextPayment.amount))
5757 then $Tuple2((validPayments + 1), (j + 1))
5858 else $Tuple2(validPayments, (j + 1))
5959 }
6060 }
6161
6262 let paymentsValidation = {
6363 let $l = payments
6464 let $s = size($l)
6565 let $acc0 = $Tuple2(0, 0)
6666 func $f0_1 ($a,$i) = if (($i >= $s))
6767 then $a
6868 else paymentsValidator($a, $l[$i])
6969
7070 func $f0_2 ($a,$i) = if (($i >= $s))
7171 then $a
7272 else throw("List size exceeds 10")
7373
7474 $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)
7575 }
7676 if (if (if (if (if (if (if (if ((recipientsSize == amountsSize))
7777 then (recipientsSize == paymentIdxSize)
7878 else false)
7979 then (recipientsSize > 0)
8080 else false)
8181 then (100 >= recipientsSize)
8282 else false)
8383 then (paymentsSize > 0)
8484 else false)
8585 then (minAmount > 0)
8686 else false)
8787 then (minPaymentIdx == 0)
8888 else false)
8989 then (maxPaymentIdx == (paymentsSize - 1))
9090 else false)
9191 then (paymentsValidation._1 == paymentsSize)
9292 else false
9393 }
9494
9595
9696 @Callable(i)
9797 func massTransfer (recipients,amounts,paymentIdx,attachment) = {
9898 let pmt = value(i.payments[0])
9999 let Amount = pmt.amount
100100 let maximum_payout_factor = 18
101101 let Counter = split(attachment, "_")[0]
102102 let CheckTotalFundsAddedInCounter = valueOrErrorMessage(getInteger(addressFromStringValue(user_balance_address), ("Total_Funds_Added_In_Option_Order_" + Counter)), (("Counter ID: " + Counter) + " Not Found."))
103103 let masspayoutlimits = fraction(CheckTotalFundsAddedInCounter, maximum_payout_factor, 10)
104104 if ((i.caller != masstransfer_whitelisted_address))
105105 then throw((("Not an Admin only " + toString(masstransfer_whitelisted_address)) + " can sign it."))
106106 else if (isDefined(pmt.assetId))
107107 then throw("Only Waves is allowed to Attach as payment.")
108108 else if (!(validateMassTransferArguments(recipients, amounts, paymentIdx, i.payments)))
109109 then throw("Invalid arguments")
110- else if ((Amount > CheckTotalFundsAddedInCounter))
110+ else if ((Amount > masspayoutlimits))
111111 then throw((("Attached Payment Amount is exceeding more than Maximum Eligible Limit of " + toString(masspayoutlimits)) + " Wavelets."))
112112 else {
113113 let recipientsSize = size(recipients)
114114 func scriptTransfersGenerator (accum,next) = {
115- let $t036603692 = accum
116- let scriptTransfers = $t036603692._1
117- let j = $t036603692._2
115+ let $t036473679 = accum
116+ let scriptTransfers = $t036473679._1
117+ let j = $t036473679._2
118118 if ((j >= recipientsSize))
119119 then $Tuple2(scriptTransfers, (j + 1))
120120 else $Tuple2((scriptTransfers :+ ScriptTransfer(addressFromStringValue(recipients[j]), next, i.payments[paymentIdx[j]].assetId)), (j + 1))
121121 }
122122
123123 let result = {
124124 let $l = amounts
125125 let $s = size($l)
126126 let $acc0 = $Tuple2(nil, 0)
127127 func $f0_1 ($a,$i) = if (($i >= $s))
128128 then $a
129129 else scriptTransfersGenerator($a, $l[$i])
130130
131131 func $f0_2 ($a,$i) = if (($i >= $s))
132132 then $a
133133 else throw("List size exceeds 100")
134134
135135 $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)
136136 }
137137 $Tuple2((result._1 ++ [IntegerEntry((Counter + "_Total_Winners"), recipientsSize)]), unit)
138138 }
139139 }
140140
141141
142142
143143 @Callable(i)
144144 func AddPoolLiquidity () = {
145145 let calleraddress = toBase58String(i.caller.bytes)
146146 let pmt = if ((size(i.payments) == 1))
147147 then i.payments[0]
148148 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
149149 let PreviousFundsAddedToPoolbyCompany = match getInteger(this, "Total_LP_Added") {
150150 case a: Int =>
151151 a
152152 case _ =>
153153 0
154154 }
155155 let TotalFundsAddedToPoolbyCompany = (PreviousFundsAddedToPoolbyCompany + pmt.amount)
156156 let PreviousPoolLiquidity = match getInteger(this, "Total_Pool_Liquidity") {
157157 case a: Int =>
158158 a
159159 case _ =>
160160 0
161161 }
162162 let TotalPoolLiquidity = (PreviousPoolLiquidity + pmt.amount)
163163 let PreviousLPDepositCounter = match getInteger(this, "LP_Deposit_Counter") {
164164 case a: Int =>
165165 a
166166 case _ =>
167167 0
168168 }
169169 let TotalLPDepositCounter = (PreviousLPDepositCounter + 1)
170170 if ((i.caller != lp_whitelist_address))
171171 then throw((("This Address is not Authorized. Only " + toString(lp_whitelist_address)) + " is Authorized Address to Sign it."))
172172 else if (isDefined(pmt.assetId))
173173 then throw("Only WAVES is allowed to deposit at the moment")
174174 else [IntegerEntry("Total_Pool_Liquidity", TotalPoolLiquidity), IntegerEntry("LP_Deposit_Counter", TotalLPDepositCounter), IntegerEntry("Total_LP_Added", TotalFundsAddedToPoolbyCompany)]
175175 }
176176
177177
178178
179179 @Callable(i)
180180 func UpdateLPBalance (PaidMassTransferAmount) = {
181181 let read_account_balance = wavesBalance(this).regular
182182 let read_total_pool_liquidity = valueOrErrorMessage(getInteger(this, "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
183183 let received_order_amount = ((read_account_balance - read_total_pool_liquidity) - network_fee)
184184 let updated_pool_balance = ((read_total_pool_liquidity - PaidMassTransferAmount) + received_order_amount)
185185 let PreviousMassTransferCounter = match getInteger(this, "Mass_Transfer_Counter") {
186186 case a: Int =>
187187 a
188188 case _ =>
189189 0
190190 }
191191 let TotalMassTransferCounter = (PreviousMassTransferCounter + 1)
192192 let PreviousMassTransferSend = match getInteger(this, "Total_Mass_Transfer_Send") {
193193 case a: Int =>
194194 a
195195 case _ =>
196196 0
197197 }
198198 let TotalMassTransferSend = (PreviousMassTransferSend + PaidMassTransferAmount)
199199 if ((i.caller != masstransfer_whitelisted_address))
200200 then throw((("This Address is not Authorized. Only " + toString(masstransfer_whitelisted_address)) + " is Authorized Address to Sign it."))
201201 else if ((PaidMassTransferAmount > read_total_pool_liquidity))
202202 then throw("Placed Mass Transfer Amount Size is more than Total Pool Liquidity.")
203203 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)]
204204 }
205205
206206
207207
208208 @Callable(i)
209209 func WithdrawLPBalance (WithdrawAmount) = {
210210 let read_total_pool_liquidity = valueOrErrorMessage(getInteger(this, "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
211211 let updated_pool_balance = (read_total_pool_liquidity - WithdrawAmount)
212212 let PreviousLPWithdrawCounter = match getInteger(this, "LP_Withdraw_Counter") {
213213 case a: Int =>
214214 a
215215 case _ =>
216216 0
217217 }
218218 let TotalLPWithdrawCounter = (PreviousLPWithdrawCounter + 1)
219219 let PreviousLPWithdraw = match getInteger(this, "Total_LP_Withdraw") {
220220 case a: Int =>
221221 a
222222 case _ =>
223223 0
224224 }
225225 let TotalLPWithdraw = (PreviousLPWithdraw + WithdrawAmount)
226226 if ((i.caller != lp_whitelist_address))
227227 then throw((("This Address is not Authorized. Only " + toString(lp_whitelist_address)) + " is Authorized Address to Sign it."))
228228 else if ((WithdrawAmount > read_total_pool_liquidity))
229229 then throw("Placed Withdraw Amount Size is more than Total Pool Liquidity.")
230230 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)]
231231 }
232232
233233
234234 @Verifier(tx)
235235 func verify () = match tx {
236236 case t: Order|ExchangeTransaction|TransferTransaction =>
237237 false
238238 case _ =>
239239 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
240240 }
241241

github/deemru/w8io/169f3d6 
86.69 ms