tx · E8cyLf5hSUj4vgUWwBaQTwf8uYrAjgq9XdZSP7TTY4ZQ 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU: -0.05000000 Waves 2024.01.21 03:51 [4006327] smart account 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > SELF 0.00000000 Waves
{ "type": 13, "id": "E8cyLf5hSUj4vgUWwBaQTwf8uYrAjgq9XdZSP7TTY4ZQ", "fee": 5000000, "feeAssetId": null, "timestamp": 1705798311899, "version": 2, "chainId": 87, "sender": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "senderPublicKey": "Dmn1fWHxpwN789LPfoMHFj7uSYKSsb5VFfyNQyQ629f9", "proofs": [ "4Bz6mFYi3BTSkynMuLYbdUpZ4bdwZsoWBHU4PWkCnrcZCC6EZdVaSm6MwQDEp6idrrxx1mmA5TvCjrbKpyEjv9pu" ], "script": "base64:BgIgCAISBAoCCAESBQoDCAEIEgQKAggIEgQKAggIEgMKAQQQAAl1c2RuSWRTdHICLERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwAAZ1c2RuSWQBILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAA1saW1pdENvbnRyYWN0AiMzUEZCNkxKeVNoc0NLRUExQVUxVTFXTGJEYXpxeWo2Wkw5YgALdHNuQ29udHJhY3QCIzNQS3o1am5KTG9oRjJHalNoUTdiRzVINEJlYmRvQTk4eloyABFsZW5kUHJveHlDb250cmFjdAIjM1BHeE1adE1uTlQ5cEpDdlh4WFY0THpLcVhzanZROVhwZlIAEHB6UG9vbHNMMldyYXBwZXICIzNQUW9CZlVLSGtKQWVHV2hvb0xQN1dTOG92YjU0YXY5SnAyAQx0cnlHZXRTdHJpbmcBA2tleQQHJG1hdGNoMAkAnQgCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgABEXRyeUdldFN0cmluZ090aGVyAgNrZXkHYWRkcmVzcwQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgABDmdldEFzc2V0U3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgIFV0FWRVMBDWdldEFzc2V0Qnl0ZXMBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFBHVuaXQJANkEAQUKYXNzZXRJZFN0cgEKZ2V0QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgRVbml0BAF4BQckbWF0Y2gwCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQEFdmFsdWUBBQdhc3NldElkAQZzd2FwV1gDBmFzc2V0MAZhc3NldDEHYW1vdW50MAQTYXNzZXQxQmFsYW5jZUJlZm9yZQkBCmdldEJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEFBmFzc2V0MQMJAAACBRNhc3NldDFCYWxhbmNlQmVmb3JlBRNhc3NldDFCYWxhbmNlQmVmb3JlBARpbnYxCQD8BwQJAQdBZGRyZXNzAQEaAVcuKjU1sQ238Xk+4bdG0J50Uk17MdCDrgYCBHN3YXAJAMwIAgABCQDMCAIFBmFzc2V0MQkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQZhc3NldDAFB2Ftb3VudDAFA25pbAMJAAACBQRpbnYxBQRpbnYxBAdhbW91bnQxCQBlAgkBCmdldEJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEFBmFzc2V0MQUTYXNzZXQxQmFsYW5jZUJlZm9yZQMJAAACBQdhbW91bnQxBQdhbW91bnQxBQdhbW91bnQxCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQlzd2FwTGltaXQDBnBhcmFtcwV0MFN0cgV0MVN0cgoBB2RvTGltaXQCBWFzc2V0C29yZGVyUGFyYW1zBANvcmQJALUJAgULb3JkZXJQYXJhbXMCAT4ECyR0MDE3MDQxNzQ5CQCUCgIJAJEDAgUDb3JkAAAJAJEDAgUDb3JkAAEEB29yZGVySWQIBQskdDAxNzA0MTc0OQJfMQQLb3JkZXJBbW91bnQIBQskdDAxNzA0MTc0OQJfMgQDaW52CQD8BwQJAQdBZGRyZXNzAQkA2QQBBQ1saW1pdENvbnRyYWN0AgxmdWxmaWxsT3JkZXIJAMwIAgUHb3JkZXJJZAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQVhc3NldAkBDXBhcnNlSW50VmFsdWUBBQtvcmRlckFtb3VudAUDbmlsAwkAAAIFA2ludgUDaW52BQVhc3NldAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQIb3JkZXJzTGkJALUJAgUGcGFyYW1zAgE6BAJ0MAkBDWdldEFzc2V0Qnl0ZXMBBQV0MFN0cgQGcmVzdWx0CgACJGwFCG9yZGVyc0xpCgACJHMJAJADAQUCJGwKAAUkYWNjMAUCdDAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB2RvTGltaXQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoDCQAAAgUGcmVzdWx0BQZyZXN1bHQAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEIc3dhcExlbmQEBnBhcmFtcwV0MFN0cgV0MVN0cgZhbW91bnQEA2FycgkAtQkCBQZwYXJhbXMCAS0ECyR0MDIxNjYyMjIzCQCVCgMJAJEDAgUDYXJyAAAJAJEDAgUDYXJyAAEJAJEDAgUDYXJyAAIEDHBvb2xfYWRkcmVzcwgFCyR0MDIxNjYyMjIzAl8xBAVhc3NldAgFCyR0MDIxNjYyMjIzAl8yBANkaXIIBQskdDAyMTY2MjIyMwJfMwQIcHJveHlBZHIJAQdBZGRyZXNzAQkA2QQBBRFsZW5kUHJveHlDb250cmFjdAQMZnVuY3Rpb25OYW1lAwkAAAIFA2RpcgIBMAIGbWludFBMAghyZWRlZW1QTAkA/AcEBQhwcm94eUFkcgUMZnVuY3Rpb25OYW1lCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFBXQwU3RyBQZhbW91bnQFA25pbAEIc3dhcFBlcGUEBnBhcmFtcwV0MFN0cgV0MVN0cgZhbW91bnQEA2FycgkAtQkCBQZwYXJhbXMCAS0ECyR0MDI1OTEyNjQxCQCUCgIJAJEDAgUDYXJyAAAJAJEDAgUDYXJyAAEEDHBvb2xfYWRkcmVzcwgFCyR0MDI1OTEyNjQxAl8xBAtmdW5jdGlvblRhZwgFCyR0MDI1OTEyNjQxAl8yBAtzd2FwQWRkcmVzcwkBB0FkZHJlc3MBCQDZBAEFDHBvb2xfYWRkcmVzcwMJAAACBQtmdW5jdGlvblRhZwIBZAkA/AcEBQtzd2FwQWRkcmVzcwIHZGVwb3NpdAkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQV0MFN0cgUGYW1vdW50BQNuaWwDCQAAAgULZnVuY3Rpb25UYWcCAXcJAPwHBAULc3dhcEFkZHJlc3MCCHdpdGhkcmF3CQDMCAIFBXQxU3RyCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFBXQwU3RyBQZhbW91bnQFA25pbAMJAAACBQtmdW5jdGlvblRhZwIBcwkA/AcEBQtzd2FwQWRkcmVzcwIEc3dhcAkAzAgCBQV0MVN0cgkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQV0MFN0cgUGYW1vdW50BQNuaWwJAAIBAiJVbmtub3duIGZ1bmN0aW9uIHRhZyBmb3IgcGVwZSBzd2FwAQxzd2FwSW50ZXJuYWwEAWkJcm91dGVzU3RyDG1pblRvUmVjZWl2ZQZyZWZLZXkECHNodXRkb3duCQELdmFsdWVPckVsc2UCCQCgCAECCHNodXRkb3duBwMFCHNodXRkb3duCQACAQIIc2h1dGRvd24KAQZkb1N3YXACBmFtb3VudARzd2FwBAZzd2FwTGkJALUJAgUEc3dhcAIBLAQLJHQwMzQ0NTM1MjYJAJYKBAkAkQMCBQZzd2FwTGkAAAkAkQMCBQZzd2FwTGkAAQkAkQMCBQZzd2FwTGkAAgkAkQMCBQZzd2FwTGkAAwQEZEFwcAgFCyR0MDM0NDUzNTI2Al8xBAhkQXBwVHlwZQgFCyR0MDM0NDUzNTI2Al8yBAV0MFN0cggFCyR0MDM0NDUzNTI2Al8zBAV0MVN0cggFCyR0MDM0NDUzNTI2Al80BAJ0MAkBDWdldEFzc2V0Qnl0ZXMBBQV0MFN0cgQHYW1vdW50MAMJAQIhPQIFBmFtb3VudAAABQZhbW91bnQJAQpnZXRCYWxhbmNlAQUCdDAEAmkxAwkAAAIFCGRBcHBUeXBlAgZzd29wZmkJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBGRBcHACCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJ0MAUHYW1vdW50MAUDbmlsAwkAAAIFCGRBcHBUeXBlAgZwdXp6bGUEBHBvb2wJAQdBZGRyZXNzAQkA2QQBBQRkQXBwBBFwb29sVG9rZW5JZEJpbmFyeQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIFBHBvb2wCE2dsb2JhbF9wb29sVG9rZW5faWQJAKwCAgIWTm8gcG9vbFRva2VuIGVudHJ5IGluIAUEZEFwcAQOcG9vbFRva2VuSWRTdHIJAQ5nZXRBc3NldFN0cmluZwEFEXBvb2xUb2tlbklkQmluYXJ5AwkAAAIFBXQwU3RyBQ5wb29sVG9rZW5JZFN0cgkA/AcECQEHQWRkcmVzcwEJANkEAQUQcHpQb29sc0wyV3JhcHBlcgIScmVkZWVtV2l0aE9uZVRva2VuCQDMCAIFBGRBcHAJAMwIAgUFdDFTdHIFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCdDAFB2Ftb3VudDAFA25pbAMJAAACBQV0MVN0cgUOcG9vbFRva2VuSWRTdHIJAPwHBAkBB0FkZHJlc3MBCQDZBAEFEHB6UG9vbHNMMldyYXBwZXICFGdlbmVyYXRlV2l0aE9uZVRva2VuCQDMCAIFBGRBcHAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCdDAFB2Ftb3VudDAFA25pbAkA/AcEBQRwb29sAgRzd2FwCQDMCAIFBXQxU3RyCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJ0MAUHYW1vdW50MAUDbmlsAwkAAAIFCGRBcHBUeXBlAgJ3eAkBBnN3YXBXWAMFBXQwU3RyBQV0MVN0cgUHYW1vdW50MAMJAAACBQhkQXBwVHlwZQIFbGltaXQJAQlzd2FwTGltaXQDBQRkQXBwBQV0MFN0cgUFdDFTdHIDCQAAAgUIZEFwcFR5cGUCB3RzdW5hbWkJAPwHBAkBB0FkZHJlc3MBCQDZBAEFC3RzbkNvbnRyYWN0AgRzd2FwCQDMCAIFBXQxU3RyCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJ0MAUHYW1vdW50MAUDbmlsAwkAAAIFCGRBcHBUeXBlAgRsZW5kCQEIc3dhcExlbmQEBQRkQXBwBQV0MFN0cgUFdDFTdHIFB2Ftb3VudDADCQAAAgUIZEFwcFR5cGUCBHBlcGUJAQhzd2FwUGVwZQQFBGRBcHAFBXQwU3RyBQV0MVN0cgUHYW1vdW50MAkAAgECK2ludGVybmFsIGFnZ3JlZ2F0b3IgaXNzdWU6IHVua25vdyBwb29sIHR5cGUDCQAAAgUCaTEFAmkxAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4KAQdkb1JvdXRlAgVhY2N1bQVyb3V0ZQQIYW1vdW50SW4JAQ1wYXJzZUludFZhbHVlAQkAkQMCCQC1CQIFBXJvdXRlAgEvAAAEBXN3YXBzCQC1CQIJAJEDAgkAtQkCBQVyb3V0ZQIBLwABAgE7BAtzd2Fwc1Jlc3VsdAoAAiRsBQVzd2FwcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFCGFtb3VudEluCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQZkb1N3YXACBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDMJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMDCQAAAgULc3dhcHNSZXN1bHQFC3N3YXBzUmVzdWx0CQBkAgUFYWNjdW0FC3N3YXBzUmVzdWx0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBA1zcGxpdHRlZFJvdXRlCQC1CQIJALICAgUJcm91dGVzU3RyADICASwECWFzc2V0MVN0cgkAkQMCBQ1zcGxpdHRlZFJvdXRlCQBlAgkAkAMBBQ1zcGxpdHRlZFJvdXRlAAEEBmFzc2V0MQkBDWdldEFzc2V0Qnl0ZXMBBQlhc3NldDFTdHIEBnJvdXRlcwkAvAkCBQlyb3V0ZXNTdHICAXwEBXN3YXBzCgACJGwFBnJvdXRlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHZG9Sb3V0ZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAwkAAAIFBXN3YXBzBQVzd2FwcwQIdG90YWxPdXQJAQpnZXRCYWxhbmNlAQUGYXNzZXQxBAlmZWVBbW91bnQJAGsDBQh0b3RhbE91dAAdAJBOBBBjbGVhblRvdGFsQW1vdW50CQBlAgUIdG90YWxPdXQFCWZlZUFtb3VudAMJAGYCBQxtaW5Ub1JlY2VpdmUFEGNsZWFuVG90YWxBbW91bnQJAAIBCQCsAgIJAKwCAgkArAICAl9hbW91bnQgdG8gcmVjZWl2ZSBpcyB0b28gbG93LiBwbGVhc2UgdHJ5IGFnYWluIHdpdGggYW5vdGhlciBhbW91bnQgb3Igd2FpdCAxIG1pbnV0ZS4gZXhwZWN0ZWQ6IAkApAMBBQxtaW5Ub1JlY2VpdmUCBywgcmVhbCAJAKQDAQUQY2xlYW5Ub3RhbEFtb3VudAQHdXNkbkZlZQMJAAACBQZhc3NldDEFBnVzZG5JZAUJZmVlQW1vdW50BA5wb29sQWRkcmVzc1N0cgkBDHRyeUdldFN0cmluZwEJAKwCAgkArAICAg1zdGF0aWNfYXNzZXRfBQlhc3NldDFTdHICC19wdXp6bGVQb29sAwkAAAIFDnBvb2xBZGRyZXNzU3RyAgAAAAQRdXNkbkJhbGFuY2VCZWZvcmUJAQpnZXRCYWxhbmNlAQUGdXNkbklkAwkAAAIFEXVzZG5CYWxhbmNlQmVmb3JlBRF1c2RuQmFsYW5jZUJlZm9yZQQMY29udmVydGVkRmVlCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDnBvb2xBZGRyZXNzU3RyAgRzd2FwCQDMCAIFCXVzZG5JZFN0cgkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGYXNzZXQxBQlmZWVBbW91bnQFA25pbAMJAAACBQxjb252ZXJ0ZWRGZWUFDGNvbnZlcnRlZEZlZQQQdXNkbkJhbGFuY2VBZnRlcgkBCmdldEJhbGFuY2UBBQZ1c2RuSWQDCQAAAgUQdXNkbkJhbGFuY2VBZnRlcgUQdXNkbkJhbGFuY2VBZnRlcgkAZQIFEHVzZG5CYWxhbmNlQWZ0ZXIFEXVzZG5CYWxhbmNlQmVmb3JlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFB3VzZG5GZWUFB3VzZG5GZWUED3JlZmVycmFsQWRkcmVzcwMJAAACBQZyZWZLZXkCBG11bmEJAQdBZGRyZXNzAQEaAVedDKrGE1GpbsuA92N9wWR44u9yTagMutMDCQAAAgUGcmVmS2V5AgZrZWVwZXIJAQdBZGRyZXNzAQEaAVfjtsoSNO5vRm/wyqiA44uvcU3xXpmsO/YDCQAAAgUGcmVmS2V5AgN0Y2kJAQdBZGRyZXNzAQEaAVdOBKn1coze5/nSUkrduGtTRYx6p5o4fZwDCQECIT0CCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAKwCAgIEcmVmXwUGcmVmS2V5AgACAAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICAgRyZWZfBQZyZWZLZXkJAQdBZGRyZXNzAQEaAVf8mgdw4W/e0ZQhIW16to1Y0kJYeywHJhIEDHJlZlVzZG5TaGFyZQMJAAACBQZyZWZLZXkCBW5vcmVmAAAJAGsDBQd1c2RuRmVlAAIACgQFdG9wVXADCQECIT0CBQd1c2RuRmVlAAAJAPwHBAkBB0FkZHJlc3MBARoBV8CKrXOUITO9sBhWDyi1uT5Bd86/b/L+1wILdG9wVXBSZXdhcmQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGdXNkbklkCQBlAgUHdXNkbkZlZQUMcmVmVXNkblNoYXJlBQNuaWwFBHVuaXQDCQAAAgUFdG9wVXAFBXRvcFVwBAZhc3NldDAICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQHYW1vdW50MAkAZQIJAQpnZXRCYWxhbmNlAQUGYXNzZXQwAwkAAAIFBmFzc2V0MAUGdXNkbklkBQxyZWZVc2RuU2hhcmUAAAQHYW1vdW50MQkAZQIFEGNsZWFuVG90YWxBbW91bnQDCQAAAgUGYXNzZXQxBQZ1c2RuSWQFDHJlZlVzZG5TaGFyZQAACQDOCAIJAM4IAgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHYW1vdW50MQUGYXNzZXQxBQNuaWwDCQECIT0CBQxyZWZVc2RuU2hhcmUAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ9yZWZlcnJhbEFkZHJlc3MFDHJlZlVzZG5TaGFyZQUGdXNkbklkBQNuaWwFA25pbAMJAQIhPQIFB2Ftb3VudDAAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB2Ftb3VudDAFBmFzc2V0MAUDbmlsBQNuaWwDCQAAAgUHdXNkbkZlZQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQEaAVce4ftAMWuB5uxLVhsFLFGhk27fCbE80sEFCWZlZUFtb3VudAUGYXNzZXQxBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUBaQEEc3dhcAIJcm91dGVzU3RyDG1pblRvUmVjZWl2ZQkBDHN3YXBJbnRlcm5hbAQFAWkFCXJvdXRlc1N0cgUMbWluVG9SZWNlaXZlAgVub3JlZgFpARBzd2FwV2l0aFJlZmVycmFsAwlyb3V0ZXNTdHIMbWluVG9SZWNlaXZlBnJlZktleQkBDHN3YXBJbnRlcm5hbAQFAWkFCXJvdXRlc1N0cgUMbWluVG9SZWNlaXZlBQZyZWZLZXkBaQESYWRkVG9rZW5QdXp6bGVQb29sAgphc3NldElkU3RyDnBvb2xBZGRyZXNzU3RyAwkBAiE9AggFAWkGY2FsbGVyCQEHQWRkcmVzcwEBGgFX1+EjUY58q4ha1dcol3XYiHXTj64jBabhCQACAQIKYWRtaW4gb25seQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgINc3RhdGljX2Fzc2V0XwUKYXNzZXRJZFN0cgILX3B1enpsZVBvb2wFDnBvb2xBZGRyZXNzU3RyBQNuaWwBaQEOYWRkUmVmZXJyYWxLZXkCBnJlZktleQphZGRyZXNzU3RyAwkBAiE9AggFAWkGY2FsbGVyCQEHQWRkcmVzcwEBGgFX1+EjUY58q4ha1dcol3XYiHXTj64jBabhCQACAQIKYWRtaW4gb25seQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICBHJlZl8FBnJlZktleQUKYWRkcmVzc1N0cgUDbmlsAWkBCHNodXRkb3duAQN2YWwDCQECIT0CCAUBaQZjYWxsZXIJAQdBZGRyZXNzAQEaAVfX4SNRjnyriFrV1yiXddiIddOPriMFpuEJAAIBAgd3bCBvbmx5CQDMCAIJAQxCb29sZWFuRW50cnkCAghzaHV0ZG93bgUDdmFsBQNuaWwBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V576TTgA==", "height": 4006327, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F6Ub6ZDdoMtUPcYvqsdNxW1MZfyqyFgy1eQjzHmJgtVo Next: none Diff:
Old | New | Differences | |
---|---|---|---|
11 | 11 | ||
12 | 12 | let e = "3PGxMZtMnNT9pJCvXxXV4LzKqXsjvQ9XpfR" | |
13 | 13 | ||
14 | - | func f (g) = { | |
15 | - | let h = getString(this, g) | |
16 | - | if ($isInstanceOf(h, "String")) | |
14 | + | let f = "3PQoBfUKHkJAeGWhooLP7WS8ovb54av9Jp2" | |
15 | + | ||
16 | + | func g (h) = { | |
17 | + | let i = getString(this, h) | |
18 | + | if ($isInstanceOf(i, "String")) | |
17 | 19 | then { | |
18 | - | let | |
19 | - | | |
20 | + | let j = i | |
21 | + | j | |
20 | 22 | } | |
21 | 23 | else "" | |
22 | 24 | } | |
23 | 25 | ||
24 | 26 | ||
25 | - | func | |
26 | - | let | |
27 | - | if ($isInstanceOf( | |
27 | + | func k (h,l) = { | |
28 | + | let i = getString(l, h) | |
29 | + | if ($isInstanceOf(i, "String")) | |
28 | 30 | then { | |
29 | - | let i = h | |
30 | - | toBase58String(i) | |
31 | + | let j = i | |
32 | + | j | |
33 | + | } | |
34 | + | else "" | |
35 | + | } | |
36 | + | ||
37 | + | ||
38 | + | func m (n) = { | |
39 | + | let i = n | |
40 | + | if ($isInstanceOf(i, "ByteVector")) | |
41 | + | then { | |
42 | + | let j = i | |
43 | + | toBase58String(j) | |
31 | 44 | } | |
32 | 45 | else "WAVES" | |
33 | 46 | } | |
34 | 47 | ||
35 | 48 | ||
36 | - | func | |
49 | + | func o (p) = if ((p == "WAVES")) | |
37 | 50 | then unit | |
38 | - | else fromBase58String( | |
51 | + | else fromBase58String(p) | |
39 | 52 | ||
40 | 53 | ||
41 | - | func | |
42 | - | let | |
43 | - | if ($isInstanceOf( | |
54 | + | func q (n) = { | |
55 | + | let i = n | |
56 | + | if ($isInstanceOf(i, "Unit")) | |
44 | 57 | then { | |
45 | - | let | |
58 | + | let r = i | |
46 | 59 | wavesBalance(this).available | |
47 | 60 | } | |
48 | - | else assetBalance(this, value( | |
61 | + | else assetBalance(this, value(n)) | |
49 | 62 | } | |
50 | 63 | ||
51 | 64 | ||
52 | - | func | |
53 | - | let | |
54 | - | if (( | |
65 | + | func s (t,u,v) = { | |
66 | + | let w = q(o(u)) | |
67 | + | if ((w == w)) | |
55 | 68 | then { | |
56 | - | let | |
57 | - | if (( | |
69 | + | let x = invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, u, toString(this)], [AttachedPayment(o(t), v)]) | |
70 | + | if ((x == x)) | |
58 | 71 | then { | |
59 | - | let | |
60 | - | if (( | |
61 | - | then | |
72 | + | let y = (q(o(u)) - w) | |
73 | + | if ((y == y)) | |
74 | + | then y | |
62 | 75 | else throw("Strict value is not equal to itself.") | |
63 | 76 | } | |
64 | 77 | else throw("Strict value is not equal to itself.") | |
67 | 80 | } | |
68 | 81 | ||
69 | 82 | ||
70 | - | func | |
71 | - | func | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | let | |
76 | - | let | |
77 | - | if (( | |
78 | - | then | |
83 | + | func z (A,B,C) = { | |
84 | + | func D (E,F) = { | |
85 | + | let G = split(F, ">") | |
86 | + | let H = $Tuple2(G[0], G[1]) | |
87 | + | let I = H._1 | |
88 | + | let J = H._2 | |
89 | + | let K = invoke(Address(fromBase58String(c)), "fulfillOrder", [I], [AttachedPayment(E, parseIntValue(J))]) | |
90 | + | if ((K == K)) | |
91 | + | then E | |
79 | 92 | else throw("Strict value is not equal to itself.") | |
80 | 93 | } | |
81 | 94 | ||
82 | - | let | |
83 | - | let | |
84 | - | let | |
85 | - | let | |
86 | - | let | |
87 | - | let | |
88 | - | func | |
89 | - | then | |
90 | - | else | |
95 | + | let L = split(A, ":") | |
96 | + | let M = o(B) | |
97 | + | let N = { | |
98 | + | let O = L | |
99 | + | let P = size(O) | |
100 | + | let Q = M | |
101 | + | func R (S,T) = if ((T >= P)) | |
102 | + | then S | |
103 | + | else D(S, O[T]) | |
91 | 104 | ||
92 | - | func | |
93 | - | then | |
105 | + | func U (S,T) = if ((T >= P)) | |
106 | + | then S | |
94 | 107 | else throw("List size exceeds 10") | |
95 | 108 | ||
96 | - | R( | |
109 | + | U(R(R(R(R(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
97 | 110 | } | |
98 | - | if (( | |
111 | + | if ((N == N)) | |
99 | 112 | then 0 | |
100 | 113 | else throw("Strict value is not equal to itself.") | |
101 | 114 | } | |
102 | 115 | ||
103 | 116 | ||
104 | - | func | |
105 | - | let | |
106 | - | let | |
107 | - | let | |
108 | - | let | |
109 | - | let | |
110 | - | let | |
111 | - | let | |
117 | + | func V (A,B,C,W) = { | |
118 | + | let X = split(A, "-") | |
119 | + | let Y = $Tuple3(X[0], X[1], X[2]) | |
120 | + | let Z = Y._1 | |
121 | + | let E = Y._2 | |
122 | + | let aa = Y._3 | |
123 | + | let ab = Address(fromBase58String(e)) | |
124 | + | let ac = if ((aa == "0")) | |
112 | 125 | then "mintPL" | |
113 | 126 | else "redeemPL" | |
114 | - | invoke( | |
127 | + | invoke(ab, ac, [0], [AttachedPayment(o(B), W)]) | |
115 | 128 | } | |
116 | 129 | ||
117 | 130 | ||
118 | - | func | |
119 | - | let | |
120 | - | let | |
121 | - | let | |
122 | - | let | |
123 | - | let | |
124 | - | if (( | |
125 | - | then invoke( | |
126 | - | else if (( | |
127 | - | then invoke( | |
128 | - | else if (( | |
129 | - | then invoke( | |
131 | + | func ad (A,B,C,W) = { | |
132 | + | let X = split(A, "-") | |
133 | + | let ae = $Tuple2(X[0], X[1]) | |
134 | + | let Z = ae._1 | |
135 | + | let af = ae._2 | |
136 | + | let ag = Address(fromBase58String(Z)) | |
137 | + | if ((af == "d")) | |
138 | + | then invoke(ag, "deposit", [0], [AttachedPayment(o(B), W)]) | |
139 | + | else if ((af == "w")) | |
140 | + | then invoke(ag, "withdraw", [C, 0], [AttachedPayment(o(B), W)]) | |
141 | + | else if ((af == "s")) | |
142 | + | then invoke(ag, "swap", [C, 0], [AttachedPayment(o(B), W)]) | |
130 | 143 | else throw("Unknown function tag for pepe swap") | |
131 | 144 | } | |
132 | 145 | ||
133 | 146 | ||
134 | - | func | |
135 | - | let | |
136 | - | if ( | |
147 | + | func ah (ai,aj,ak,al) = { | |
148 | + | let am = valueOrElse(getBoolean("shutdown"), false) | |
149 | + | if (am) | |
137 | 150 | then throw("shutdown") | |
138 | 151 | else { | |
139 | - | func ak (T,al) = { | |
140 | - | let am = split(al, ",") | |
141 | - | let an = $Tuple4(am[0], am[1], am[2], am[3]) | |
142 | - | let ao = an._1 | |
143 | - | let ap = an._2 | |
144 | - | let y = an._3 | |
145 | - | let z = an._4 | |
146 | - | let J = l(y) | |
147 | - | let s = if ((T != 0)) | |
148 | - | then T | |
149 | - | else n(J) | |
150 | - | let aq = if ((ap == "swopfi")) | |
151 | - | then invoke(Address(fromBase58String(ao)), "exchange", [1], [AttachedPayment(J, s)]) | |
152 | - | else if ((ap == "puzzle")) | |
153 | - | then invoke(Address(fromBase58String(ao)), "swap", [z, 0], [AttachedPayment(J, s)]) | |
154 | - | else if ((ap == "wx")) | |
155 | - | then p(y, z, s) | |
156 | - | else if ((ap == "limit")) | |
157 | - | then w(ao, y, z) | |
158 | - | else if ((ap == "tsunami")) | |
159 | - | then invoke(Address(fromBase58String(d)), "swap", [z, 0], [AttachedPayment(J, s)]) | |
160 | - | else if ((ap == "lend")) | |
161 | - | then S(ao, y, z, s) | |
162 | - | else if ((ap == "pepe")) | |
163 | - | then aa(ao, y, z, s) | |
152 | + | func an (W,ao) = { | |
153 | + | let ap = split(ao, ",") | |
154 | + | let aq = $Tuple4(ap[0], ap[1], ap[2], ap[3]) | |
155 | + | let ar = aq._1 | |
156 | + | let as = aq._2 | |
157 | + | let B = aq._3 | |
158 | + | let C = aq._4 | |
159 | + | let M = o(B) | |
160 | + | let v = if ((W != 0)) | |
161 | + | then W | |
162 | + | else q(M) | |
163 | + | let at = if ((as == "swopfi")) | |
164 | + | then invoke(Address(fromBase58String(ar)), "exchange", [1], [AttachedPayment(M, v)]) | |
165 | + | else if ((as == "puzzle")) | |
166 | + | then { | |
167 | + | let au = Address(fromBase58String(ar)) | |
168 | + | let av = valueOrErrorMessage(getBinary(au, "global_poolToken_id"), ("No poolToken entry in " + ar)) | |
169 | + | let aw = m(av) | |
170 | + | if ((B == aw)) | |
171 | + | then invoke(Address(fromBase58String(f)), "redeemWithOneToken", [ar, C], [AttachedPayment(M, v)]) | |
172 | + | else if ((C == aw)) | |
173 | + | then invoke(Address(fromBase58String(f)), "generateWithOneToken", [ar], [AttachedPayment(M, v)]) | |
174 | + | else invoke(au, "swap", [C, 0], [AttachedPayment(M, v)]) | |
175 | + | } | |
176 | + | else if ((as == "wx")) | |
177 | + | then s(B, C, v) | |
178 | + | else if ((as == "limit")) | |
179 | + | then z(ar, B, C) | |
180 | + | else if ((as == "tsunami")) | |
181 | + | then invoke(Address(fromBase58String(d)), "swap", [C, 0], [AttachedPayment(M, v)]) | |
182 | + | else if ((as == "lend")) | |
183 | + | then V(ar, B, C, v) | |
184 | + | else if ((as == "pepe")) | |
185 | + | then ad(ar, B, C, v) | |
164 | 186 | else throw("internal aggregator issue: unknow pool type") | |
165 | - | if (( | |
187 | + | if ((at == at)) | |
166 | 188 | then 0 | |
167 | 189 | else throw("Strict value is not equal to itself.") | |
168 | 190 | } | |
169 | 191 | ||
170 | - | func | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | let | |
175 | - | let | |
176 | - | let | |
177 | - | func | |
178 | - | then | |
179 | - | else | |
192 | + | func ax (ay,az) = { | |
193 | + | let aA = parseIntValue(split(az, "/")[0]) | |
194 | + | let aB = split(split(az, "/")[1], ";") | |
195 | + | let aC = { | |
196 | + | let O = aB | |
197 | + | let P = size(O) | |
198 | + | let Q = aA | |
199 | + | func R (S,T) = if ((T >= P)) | |
200 | + | then S | |
201 | + | else an(S, O[T]) | |
180 | 202 | ||
181 | - | func | |
182 | - | then | |
203 | + | func U (S,T) = if ((T >= P)) | |
204 | + | then S | |
183 | 205 | else throw("List size exceeds 3") | |
184 | 206 | ||
185 | - | R( | |
207 | + | U(R(R(R(Q, 0), 1), 2), 3) | |
186 | 208 | } | |
187 | - | if (( | |
188 | - | then ( | |
209 | + | if ((aC == aC)) | |
210 | + | then (ay + aC) | |
189 | 211 | else throw("Strict value is not equal to itself.") | |
190 | 212 | } | |
191 | 213 | ||
192 | - | let | |
193 | - | let | |
194 | - | let | |
195 | - | let | |
196 | - | let | |
197 | - | let | |
198 | - | let | |
199 | - | let | |
200 | - | func | |
201 | - | then | |
202 | - | else | |
214 | + | let aD = split(takeRight(aj, 50), ",") | |
215 | + | let aE = aD[(size(aD) - 1)] | |
216 | + | let u = o(aE) | |
217 | + | let aF = split_4C(aj, "|") | |
218 | + | let aB = { | |
219 | + | let O = aF | |
220 | + | let P = size(O) | |
221 | + | let Q = 0 | |
222 | + | func R (S,T) = if ((T >= P)) | |
223 | + | then S | |
224 | + | else ax(S, O[T]) | |
203 | 225 | ||
204 | - | func | |
205 | - | then | |
226 | + | func U (S,T) = if ((T >= P)) | |
227 | + | then S | |
206 | 228 | else throw("List size exceeds 4") | |
207 | 229 | ||
208 | - | R( | |
230 | + | U(R(R(R(R(Q, 0), 1), 2), 3), 4) | |
209 | 231 | } | |
210 | - | if (( | |
232 | + | if ((aB == aB)) | |
211 | 233 | then { | |
212 | - | let | |
213 | - | let | |
214 | - | let | |
215 | - | if (( | |
216 | - | then throw(((("amount to receive is too low. please try again with another amount or wait 1 minute. expected: " + toString( | |
234 | + | let aG = q(u) | |
235 | + | let aH = fraction(aG, 29, 10000) | |
236 | + | let aI = (aG - aH) | |
237 | + | if ((ak > aI)) | |
238 | + | then throw(((("amount to receive is too low. please try again with another amount or wait 1 minute. expected: " + toString(ak)) + ", real ") + toString(aI))) | |
217 | 239 | else { | |
218 | - | let | |
219 | - | then | |
240 | + | let aJ = if ((u == b)) | |
241 | + | then aH | |
220 | 242 | else { | |
221 | - | let | |
222 | - | if (( | |
243 | + | let aK = g((("static_asset_" + aE) + "_puzzlePool")) | |
244 | + | if ((aK == "")) | |
223 | 245 | then 0 | |
224 | 246 | else { | |
225 | - | let | |
226 | - | if (( | |
247 | + | let aL = q(b) | |
248 | + | if ((aL == aL)) | |
227 | 249 | then { | |
228 | - | let | |
229 | - | if (( | |
250 | + | let aM = invoke(addressFromStringValue(aK), "swap", [a, 0], [AttachedPayment(u, aH)]) | |
251 | + | if ((aM == aM)) | |
230 | 252 | then { | |
231 | - | let | |
232 | - | if (( | |
233 | - | then ( | |
253 | + | let aN = q(b) | |
254 | + | if ((aN == aN)) | |
255 | + | then (aN - aL) | |
234 | 256 | else throw("Strict value is not equal to itself.") | |
235 | 257 | } | |
236 | 258 | else throw("Strict value is not equal to itself.") | |
238 | 260 | else throw("Strict value is not equal to itself.") | |
239 | 261 | } | |
240 | 262 | } | |
241 | - | if (( | |
263 | + | if ((aJ == aJ)) | |
242 | 264 | then { | |
243 | - | let | |
265 | + | let aO = if ((al == "muna")) | |
244 | 266 | then Address(base58'3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU') | |
245 | - | else if (( | |
267 | + | else if ((al == "keeper")) | |
246 | 268 | then Address(base58'3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM') | |
247 | - | else if (( | |
269 | + | else if ((al == "tci")) | |
248 | 270 | then Address(base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm') | |
249 | - | else if ((valueOrElse(getString(this, ("ref_" + | |
250 | - | then addressFromStringValue(getStringValue(this, ("ref_" + | |
271 | + | else if ((valueOrElse(getString(this, ("ref_" + al)), "") != "")) | |
272 | + | then addressFromStringValue(getStringValue(this, ("ref_" + al))) | |
251 | 273 | else Address(base58'3PQxXXiQXpWsjDwQLYxyuoPiaLnVHjJguFo') | |
252 | - | let | |
274 | + | let aP = if ((al == "noref")) | |
253 | 275 | then 0 | |
254 | - | else fraction( | |
255 | - | let | |
256 | - | then invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(b, ( | |
276 | + | else fraction(aJ, 2, 10) | |
277 | + | let aQ = if ((aJ != 0)) | |
278 | + | then invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(b, (aJ - aP))]) | |
257 | 279 | else unit | |
258 | - | if (( | |
280 | + | if ((aQ == aQ)) | |
259 | 281 | then { | |
260 | - | let | |
261 | - | let | |
262 | - | then | |
282 | + | let t = ai.payments[0].assetId | |
283 | + | let v = (q(t) - (if ((t == b)) | |
284 | + | then aP | |
263 | 285 | else 0)) | |
264 | - | let | |
265 | - | then | |
286 | + | let y = (aI - (if ((u == b)) | |
287 | + | then aP | |
266 | 288 | else 0)) | |
267 | - | ((([ScriptTransfer( | |
268 | - | then [ScriptTransfer( | |
269 | - | else nil)) ++ (if (( | |
270 | - | then [ScriptTransfer( | |
271 | - | else nil)) ++ (if (( | |
272 | - | then [ScriptTransfer(Address(base58'3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe'), | |
289 | + | ((([ScriptTransfer(ai.caller, y, u)] ++ (if ((aP != 0)) | |
290 | + | then [ScriptTransfer(aO, aP, b)] | |
291 | + | else nil)) ++ (if ((v != 0)) | |
292 | + | then [ScriptTransfer(ai.caller, v, t)] | |
293 | + | else nil)) ++ (if ((aJ == 0)) | |
294 | + | then [ScriptTransfer(Address(base58'3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe'), aH, u)] | |
273 | 295 | else nil)) | |
274 | 296 | } | |
275 | 297 | else throw("Strict value is not equal to itself.") | |
282 | 304 | } | |
283 | 305 | ||
284 | 306 | ||
285 | - | @Callable( | |
286 | - | func swap ( | |
307 | + | @Callable(ai) | |
308 | + | func swap (aj,ak) = ah(ai, aj, ak, "noref") | |
287 | 309 | ||
288 | 310 | ||
289 | 311 | ||
290 | - | @Callable( | |
291 | - | func swapWithReferral ( | |
312 | + | @Callable(ai) | |
313 | + | func swapWithReferral (aj,ak,al) = ah(ai, aj, ak, al) | |
292 | 314 | ||
293 | 315 | ||
294 | 316 | ||
295 | - | @Callable( | |
296 | - | func addTokenPuzzlePool ( | |
317 | + | @Callable(ai) | |
318 | + | func addTokenPuzzlePool (p,aK) = if ((ai.caller != Address(base58'3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL'))) | |
297 | 319 | then throw("admin only") | |
298 | - | else [StringEntry((("static_asset_" + | |
320 | + | else [StringEntry((("static_asset_" + p) + "_puzzlePool"), aK)] | |
299 | 321 | ||
300 | 322 | ||
301 | 323 | ||
302 | - | @Callable( | |
303 | - | func addReferralKey ( | |
324 | + | @Callable(ai) | |
325 | + | func addReferralKey (al,aR) = if ((ai.caller != Address(base58'3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL'))) | |
304 | 326 | then throw("admin only") | |
305 | - | else [StringEntry(("ref_" + | |
327 | + | else [StringEntry(("ref_" + al), aR)] | |
306 | 328 | ||
307 | 329 | ||
308 | 330 | ||
309 | - | @Callable( | |
310 | - | func shutdown ( | |
331 | + | @Callable(ai) | |
332 | + | func shutdown (aS) = if ((ai.caller != Address(base58'3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL'))) | |
311 | 333 | then throw("wl only") | |
312 | - | else [BooleanEntry("shutdown", | |
334 | + | else [BooleanEntry("shutdown", aS)] | |
313 | 335 | ||
314 | 336 | ||
315 | - | @Verifier( | |
316 | - | func | |
337 | + | @Verifier(aT) | |
338 | + | func aU () = sigVerify(aT.bodyBytes, aT.proofs[0], aT.senderPublicKey) | |
317 | 339 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" | |
5 | 5 | ||
6 | 6 | let b = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
7 | 7 | ||
8 | 8 | let c = "3PFB6LJyShsCKEA1AU1U1WLbDazqyj6ZL9b" | |
9 | 9 | ||
10 | 10 | let d = "3PKz5jnJLohF2GjShQ7bG5H4BebdoA98zZ2" | |
11 | 11 | ||
12 | 12 | let e = "3PGxMZtMnNT9pJCvXxXV4LzKqXsjvQ9XpfR" | |
13 | 13 | ||
14 | - | func f (g) = { | |
15 | - | let h = getString(this, g) | |
16 | - | if ($isInstanceOf(h, "String")) | |
14 | + | let f = "3PQoBfUKHkJAeGWhooLP7WS8ovb54av9Jp2" | |
15 | + | ||
16 | + | func g (h) = { | |
17 | + | let i = getString(this, h) | |
18 | + | if ($isInstanceOf(i, "String")) | |
17 | 19 | then { | |
18 | - | let | |
19 | - | | |
20 | + | let j = i | |
21 | + | j | |
20 | 22 | } | |
21 | 23 | else "" | |
22 | 24 | } | |
23 | 25 | ||
24 | 26 | ||
25 | - | func | |
26 | - | let | |
27 | - | if ($isInstanceOf( | |
27 | + | func k (h,l) = { | |
28 | + | let i = getString(l, h) | |
29 | + | if ($isInstanceOf(i, "String")) | |
28 | 30 | then { | |
29 | - | let i = h | |
30 | - | toBase58String(i) | |
31 | + | let j = i | |
32 | + | j | |
33 | + | } | |
34 | + | else "" | |
35 | + | } | |
36 | + | ||
37 | + | ||
38 | + | func m (n) = { | |
39 | + | let i = n | |
40 | + | if ($isInstanceOf(i, "ByteVector")) | |
41 | + | then { | |
42 | + | let j = i | |
43 | + | toBase58String(j) | |
31 | 44 | } | |
32 | 45 | else "WAVES" | |
33 | 46 | } | |
34 | 47 | ||
35 | 48 | ||
36 | - | func | |
49 | + | func o (p) = if ((p == "WAVES")) | |
37 | 50 | then unit | |
38 | - | else fromBase58String( | |
51 | + | else fromBase58String(p) | |
39 | 52 | ||
40 | 53 | ||
41 | - | func | |
42 | - | let | |
43 | - | if ($isInstanceOf( | |
54 | + | func q (n) = { | |
55 | + | let i = n | |
56 | + | if ($isInstanceOf(i, "Unit")) | |
44 | 57 | then { | |
45 | - | let | |
58 | + | let r = i | |
46 | 59 | wavesBalance(this).available | |
47 | 60 | } | |
48 | - | else assetBalance(this, value( | |
61 | + | else assetBalance(this, value(n)) | |
49 | 62 | } | |
50 | 63 | ||
51 | 64 | ||
52 | - | func | |
53 | - | let | |
54 | - | if (( | |
65 | + | func s (t,u,v) = { | |
66 | + | let w = q(o(u)) | |
67 | + | if ((w == w)) | |
55 | 68 | then { | |
56 | - | let | |
57 | - | if (( | |
69 | + | let x = invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, u, toString(this)], [AttachedPayment(o(t), v)]) | |
70 | + | if ((x == x)) | |
58 | 71 | then { | |
59 | - | let | |
60 | - | if (( | |
61 | - | then | |
72 | + | let y = (q(o(u)) - w) | |
73 | + | if ((y == y)) | |
74 | + | then y | |
62 | 75 | else throw("Strict value is not equal to itself.") | |
63 | 76 | } | |
64 | 77 | else throw("Strict value is not equal to itself.") | |
65 | 78 | } | |
66 | 79 | else throw("Strict value is not equal to itself.") | |
67 | 80 | } | |
68 | 81 | ||
69 | 82 | ||
70 | - | func | |
71 | - | func | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | let | |
76 | - | let | |
77 | - | if (( | |
78 | - | then | |
83 | + | func z (A,B,C) = { | |
84 | + | func D (E,F) = { | |
85 | + | let G = split(F, ">") | |
86 | + | let H = $Tuple2(G[0], G[1]) | |
87 | + | let I = H._1 | |
88 | + | let J = H._2 | |
89 | + | let K = invoke(Address(fromBase58String(c)), "fulfillOrder", [I], [AttachedPayment(E, parseIntValue(J))]) | |
90 | + | if ((K == K)) | |
91 | + | then E | |
79 | 92 | else throw("Strict value is not equal to itself.") | |
80 | 93 | } | |
81 | 94 | ||
82 | - | let | |
83 | - | let | |
84 | - | let | |
85 | - | let | |
86 | - | let | |
87 | - | let | |
88 | - | func | |
89 | - | then | |
90 | - | else | |
95 | + | let L = split(A, ":") | |
96 | + | let M = o(B) | |
97 | + | let N = { | |
98 | + | let O = L | |
99 | + | let P = size(O) | |
100 | + | let Q = M | |
101 | + | func R (S,T) = if ((T >= P)) | |
102 | + | then S | |
103 | + | else D(S, O[T]) | |
91 | 104 | ||
92 | - | func | |
93 | - | then | |
105 | + | func U (S,T) = if ((T >= P)) | |
106 | + | then S | |
94 | 107 | else throw("List size exceeds 10") | |
95 | 108 | ||
96 | - | R( | |
109 | + | U(R(R(R(R(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
97 | 110 | } | |
98 | - | if (( | |
111 | + | if ((N == N)) | |
99 | 112 | then 0 | |
100 | 113 | else throw("Strict value is not equal to itself.") | |
101 | 114 | } | |
102 | 115 | ||
103 | 116 | ||
104 | - | func | |
105 | - | let | |
106 | - | let | |
107 | - | let | |
108 | - | let | |
109 | - | let | |
110 | - | let | |
111 | - | let | |
117 | + | func V (A,B,C,W) = { | |
118 | + | let X = split(A, "-") | |
119 | + | let Y = $Tuple3(X[0], X[1], X[2]) | |
120 | + | let Z = Y._1 | |
121 | + | let E = Y._2 | |
122 | + | let aa = Y._3 | |
123 | + | let ab = Address(fromBase58String(e)) | |
124 | + | let ac = if ((aa == "0")) | |
112 | 125 | then "mintPL" | |
113 | 126 | else "redeemPL" | |
114 | - | invoke( | |
127 | + | invoke(ab, ac, [0], [AttachedPayment(o(B), W)]) | |
115 | 128 | } | |
116 | 129 | ||
117 | 130 | ||
118 | - | func | |
119 | - | let | |
120 | - | let | |
121 | - | let | |
122 | - | let | |
123 | - | let | |
124 | - | if (( | |
125 | - | then invoke( | |
126 | - | else if (( | |
127 | - | then invoke( | |
128 | - | else if (( | |
129 | - | then invoke( | |
131 | + | func ad (A,B,C,W) = { | |
132 | + | let X = split(A, "-") | |
133 | + | let ae = $Tuple2(X[0], X[1]) | |
134 | + | let Z = ae._1 | |
135 | + | let af = ae._2 | |
136 | + | let ag = Address(fromBase58String(Z)) | |
137 | + | if ((af == "d")) | |
138 | + | then invoke(ag, "deposit", [0], [AttachedPayment(o(B), W)]) | |
139 | + | else if ((af == "w")) | |
140 | + | then invoke(ag, "withdraw", [C, 0], [AttachedPayment(o(B), W)]) | |
141 | + | else if ((af == "s")) | |
142 | + | then invoke(ag, "swap", [C, 0], [AttachedPayment(o(B), W)]) | |
130 | 143 | else throw("Unknown function tag for pepe swap") | |
131 | 144 | } | |
132 | 145 | ||
133 | 146 | ||
134 | - | func | |
135 | - | let | |
136 | - | if ( | |
147 | + | func ah (ai,aj,ak,al) = { | |
148 | + | let am = valueOrElse(getBoolean("shutdown"), false) | |
149 | + | if (am) | |
137 | 150 | then throw("shutdown") | |
138 | 151 | else { | |
139 | - | func ak (T,al) = { | |
140 | - | let am = split(al, ",") | |
141 | - | let an = $Tuple4(am[0], am[1], am[2], am[3]) | |
142 | - | let ao = an._1 | |
143 | - | let ap = an._2 | |
144 | - | let y = an._3 | |
145 | - | let z = an._4 | |
146 | - | let J = l(y) | |
147 | - | let s = if ((T != 0)) | |
148 | - | then T | |
149 | - | else n(J) | |
150 | - | let aq = if ((ap == "swopfi")) | |
151 | - | then invoke(Address(fromBase58String(ao)), "exchange", [1], [AttachedPayment(J, s)]) | |
152 | - | else if ((ap == "puzzle")) | |
153 | - | then invoke(Address(fromBase58String(ao)), "swap", [z, 0], [AttachedPayment(J, s)]) | |
154 | - | else if ((ap == "wx")) | |
155 | - | then p(y, z, s) | |
156 | - | else if ((ap == "limit")) | |
157 | - | then w(ao, y, z) | |
158 | - | else if ((ap == "tsunami")) | |
159 | - | then invoke(Address(fromBase58String(d)), "swap", [z, 0], [AttachedPayment(J, s)]) | |
160 | - | else if ((ap == "lend")) | |
161 | - | then S(ao, y, z, s) | |
162 | - | else if ((ap == "pepe")) | |
163 | - | then aa(ao, y, z, s) | |
152 | + | func an (W,ao) = { | |
153 | + | let ap = split(ao, ",") | |
154 | + | let aq = $Tuple4(ap[0], ap[1], ap[2], ap[3]) | |
155 | + | let ar = aq._1 | |
156 | + | let as = aq._2 | |
157 | + | let B = aq._3 | |
158 | + | let C = aq._4 | |
159 | + | let M = o(B) | |
160 | + | let v = if ((W != 0)) | |
161 | + | then W | |
162 | + | else q(M) | |
163 | + | let at = if ((as == "swopfi")) | |
164 | + | then invoke(Address(fromBase58String(ar)), "exchange", [1], [AttachedPayment(M, v)]) | |
165 | + | else if ((as == "puzzle")) | |
166 | + | then { | |
167 | + | let au = Address(fromBase58String(ar)) | |
168 | + | let av = valueOrErrorMessage(getBinary(au, "global_poolToken_id"), ("No poolToken entry in " + ar)) | |
169 | + | let aw = m(av) | |
170 | + | if ((B == aw)) | |
171 | + | then invoke(Address(fromBase58String(f)), "redeemWithOneToken", [ar, C], [AttachedPayment(M, v)]) | |
172 | + | else if ((C == aw)) | |
173 | + | then invoke(Address(fromBase58String(f)), "generateWithOneToken", [ar], [AttachedPayment(M, v)]) | |
174 | + | else invoke(au, "swap", [C, 0], [AttachedPayment(M, v)]) | |
175 | + | } | |
176 | + | else if ((as == "wx")) | |
177 | + | then s(B, C, v) | |
178 | + | else if ((as == "limit")) | |
179 | + | then z(ar, B, C) | |
180 | + | else if ((as == "tsunami")) | |
181 | + | then invoke(Address(fromBase58String(d)), "swap", [C, 0], [AttachedPayment(M, v)]) | |
182 | + | else if ((as == "lend")) | |
183 | + | then V(ar, B, C, v) | |
184 | + | else if ((as == "pepe")) | |
185 | + | then ad(ar, B, C, v) | |
164 | 186 | else throw("internal aggregator issue: unknow pool type") | |
165 | - | if (( | |
187 | + | if ((at == at)) | |
166 | 188 | then 0 | |
167 | 189 | else throw("Strict value is not equal to itself.") | |
168 | 190 | } | |
169 | 191 | ||
170 | - | func | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | let | |
175 | - | let | |
176 | - | let | |
177 | - | func | |
178 | - | then | |
179 | - | else | |
192 | + | func ax (ay,az) = { | |
193 | + | let aA = parseIntValue(split(az, "/")[0]) | |
194 | + | let aB = split(split(az, "/")[1], ";") | |
195 | + | let aC = { | |
196 | + | let O = aB | |
197 | + | let P = size(O) | |
198 | + | let Q = aA | |
199 | + | func R (S,T) = if ((T >= P)) | |
200 | + | then S | |
201 | + | else an(S, O[T]) | |
180 | 202 | ||
181 | - | func | |
182 | - | then | |
203 | + | func U (S,T) = if ((T >= P)) | |
204 | + | then S | |
183 | 205 | else throw("List size exceeds 3") | |
184 | 206 | ||
185 | - | R( | |
207 | + | U(R(R(R(Q, 0), 1), 2), 3) | |
186 | 208 | } | |
187 | - | if (( | |
188 | - | then ( | |
209 | + | if ((aC == aC)) | |
210 | + | then (ay + aC) | |
189 | 211 | else throw("Strict value is not equal to itself.") | |
190 | 212 | } | |
191 | 213 | ||
192 | - | let | |
193 | - | let | |
194 | - | let | |
195 | - | let | |
196 | - | let | |
197 | - | let | |
198 | - | let | |
199 | - | let | |
200 | - | func | |
201 | - | then | |
202 | - | else | |
214 | + | let aD = split(takeRight(aj, 50), ",") | |
215 | + | let aE = aD[(size(aD) - 1)] | |
216 | + | let u = o(aE) | |
217 | + | let aF = split_4C(aj, "|") | |
218 | + | let aB = { | |
219 | + | let O = aF | |
220 | + | let P = size(O) | |
221 | + | let Q = 0 | |
222 | + | func R (S,T) = if ((T >= P)) | |
223 | + | then S | |
224 | + | else ax(S, O[T]) | |
203 | 225 | ||
204 | - | func | |
205 | - | then | |
226 | + | func U (S,T) = if ((T >= P)) | |
227 | + | then S | |
206 | 228 | else throw("List size exceeds 4") | |
207 | 229 | ||
208 | - | R( | |
230 | + | U(R(R(R(R(Q, 0), 1), 2), 3), 4) | |
209 | 231 | } | |
210 | - | if (( | |
232 | + | if ((aB == aB)) | |
211 | 233 | then { | |
212 | - | let | |
213 | - | let | |
214 | - | let | |
215 | - | if (( | |
216 | - | then throw(((("amount to receive is too low. please try again with another amount or wait 1 minute. expected: " + toString( | |
234 | + | let aG = q(u) | |
235 | + | let aH = fraction(aG, 29, 10000) | |
236 | + | let aI = (aG - aH) | |
237 | + | if ((ak > aI)) | |
238 | + | then throw(((("amount to receive is too low. please try again with another amount or wait 1 minute. expected: " + toString(ak)) + ", real ") + toString(aI))) | |
217 | 239 | else { | |
218 | - | let | |
219 | - | then | |
240 | + | let aJ = if ((u == b)) | |
241 | + | then aH | |
220 | 242 | else { | |
221 | - | let | |
222 | - | if (( | |
243 | + | let aK = g((("static_asset_" + aE) + "_puzzlePool")) | |
244 | + | if ((aK == "")) | |
223 | 245 | then 0 | |
224 | 246 | else { | |
225 | - | let | |
226 | - | if (( | |
247 | + | let aL = q(b) | |
248 | + | if ((aL == aL)) | |
227 | 249 | then { | |
228 | - | let | |
229 | - | if (( | |
250 | + | let aM = invoke(addressFromStringValue(aK), "swap", [a, 0], [AttachedPayment(u, aH)]) | |
251 | + | if ((aM == aM)) | |
230 | 252 | then { | |
231 | - | let | |
232 | - | if (( | |
233 | - | then ( | |
253 | + | let aN = q(b) | |
254 | + | if ((aN == aN)) | |
255 | + | then (aN - aL) | |
234 | 256 | else throw("Strict value is not equal to itself.") | |
235 | 257 | } | |
236 | 258 | else throw("Strict value is not equal to itself.") | |
237 | 259 | } | |
238 | 260 | else throw("Strict value is not equal to itself.") | |
239 | 261 | } | |
240 | 262 | } | |
241 | - | if (( | |
263 | + | if ((aJ == aJ)) | |
242 | 264 | then { | |
243 | - | let | |
265 | + | let aO = if ((al == "muna")) | |
244 | 266 | then Address(base58'3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU') | |
245 | - | else if (( | |
267 | + | else if ((al == "keeper")) | |
246 | 268 | then Address(base58'3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM') | |
247 | - | else if (( | |
269 | + | else if ((al == "tci")) | |
248 | 270 | then Address(base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm') | |
249 | - | else if ((valueOrElse(getString(this, ("ref_" + | |
250 | - | then addressFromStringValue(getStringValue(this, ("ref_" + | |
271 | + | else if ((valueOrElse(getString(this, ("ref_" + al)), "") != "")) | |
272 | + | then addressFromStringValue(getStringValue(this, ("ref_" + al))) | |
251 | 273 | else Address(base58'3PQxXXiQXpWsjDwQLYxyuoPiaLnVHjJguFo') | |
252 | - | let | |
274 | + | let aP = if ((al == "noref")) | |
253 | 275 | then 0 | |
254 | - | else fraction( | |
255 | - | let | |
256 | - | then invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(b, ( | |
276 | + | else fraction(aJ, 2, 10) | |
277 | + | let aQ = if ((aJ != 0)) | |
278 | + | then invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(b, (aJ - aP))]) | |
257 | 279 | else unit | |
258 | - | if (( | |
280 | + | if ((aQ == aQ)) | |
259 | 281 | then { | |
260 | - | let | |
261 | - | let | |
262 | - | then | |
282 | + | let t = ai.payments[0].assetId | |
283 | + | let v = (q(t) - (if ((t == b)) | |
284 | + | then aP | |
263 | 285 | else 0)) | |
264 | - | let | |
265 | - | then | |
286 | + | let y = (aI - (if ((u == b)) | |
287 | + | then aP | |
266 | 288 | else 0)) | |
267 | - | ((([ScriptTransfer( | |
268 | - | then [ScriptTransfer( | |
269 | - | else nil)) ++ (if (( | |
270 | - | then [ScriptTransfer( | |
271 | - | else nil)) ++ (if (( | |
272 | - | then [ScriptTransfer(Address(base58'3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe'), | |
289 | + | ((([ScriptTransfer(ai.caller, y, u)] ++ (if ((aP != 0)) | |
290 | + | then [ScriptTransfer(aO, aP, b)] | |
291 | + | else nil)) ++ (if ((v != 0)) | |
292 | + | then [ScriptTransfer(ai.caller, v, t)] | |
293 | + | else nil)) ++ (if ((aJ == 0)) | |
294 | + | then [ScriptTransfer(Address(base58'3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe'), aH, u)] | |
273 | 295 | else nil)) | |
274 | 296 | } | |
275 | 297 | else throw("Strict value is not equal to itself.") | |
276 | 298 | } | |
277 | 299 | else throw("Strict value is not equal to itself.") | |
278 | 300 | } | |
279 | 301 | } | |
280 | 302 | else throw("Strict value is not equal to itself.") | |
281 | 303 | } | |
282 | 304 | } | |
283 | 305 | ||
284 | 306 | ||
285 | - | @Callable( | |
286 | - | func swap ( | |
307 | + | @Callable(ai) | |
308 | + | func swap (aj,ak) = ah(ai, aj, ak, "noref") | |
287 | 309 | ||
288 | 310 | ||
289 | 311 | ||
290 | - | @Callable( | |
291 | - | func swapWithReferral ( | |
312 | + | @Callable(ai) | |
313 | + | func swapWithReferral (aj,ak,al) = ah(ai, aj, ak, al) | |
292 | 314 | ||
293 | 315 | ||
294 | 316 | ||
295 | - | @Callable( | |
296 | - | func addTokenPuzzlePool ( | |
317 | + | @Callable(ai) | |
318 | + | func addTokenPuzzlePool (p,aK) = if ((ai.caller != Address(base58'3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL'))) | |
297 | 319 | then throw("admin only") | |
298 | - | else [StringEntry((("static_asset_" + | |
320 | + | else [StringEntry((("static_asset_" + p) + "_puzzlePool"), aK)] | |
299 | 321 | ||
300 | 322 | ||
301 | 323 | ||
302 | - | @Callable( | |
303 | - | func addReferralKey ( | |
324 | + | @Callable(ai) | |
325 | + | func addReferralKey (al,aR) = if ((ai.caller != Address(base58'3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL'))) | |
304 | 326 | then throw("admin only") | |
305 | - | else [StringEntry(("ref_" + | |
327 | + | else [StringEntry(("ref_" + al), aR)] | |
306 | 328 | ||
307 | 329 | ||
308 | 330 | ||
309 | - | @Callable( | |
310 | - | func shutdown ( | |
331 | + | @Callable(ai) | |
332 | + | func shutdown (aS) = if ((ai.caller != Address(base58'3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL'))) | |
311 | 333 | then throw("wl only") | |
312 | - | else [BooleanEntry("shutdown", | |
334 | + | else [BooleanEntry("shutdown", aS)] | |
313 | 335 | ||
314 | 336 | ||
315 | - | @Verifier( | |
316 | - | func | |
337 | + | @Verifier(aT) | |
338 | + | func aU () = sigVerify(aT.bodyBytes, aT.proofs[0], aT.senderPublicKey) | |
317 | 339 |
github/deemru/w8io/6500d08 161.24 ms ◑