2023.10.10 13:36 [3858293] smart account 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > SELF 0.00000000 Waves

{ "type": 13, "id": "Gd7qzpRVHbLGtyKCtSN1QGngkAxbgjKL2B2op3zofogh", "fee": 2000000, "feeAssetId": null, "timestamp": 1696934262367, "version": 2, "chainId": 87, "sender": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "senderPublicKey": "Dmn1fWHxpwN789LPfoMHFj7uSYKSsb5VFfyNQyQ629f9", "proofs": [ "3Y7mxFgdLAsh1LeuyNgbCDq9ePYgK4tLurgtSZCVXPgoNF5g4uhaD7s5HZzdYEbAFJmG9tMVQBzUY3kiiYRpMMiW" ], "script": "base64:BgIaCAISBAoCCAESBQoDCAEIEgQKAggIEgMKAQQNAAl1c2RuSWRTdHICLERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwAAZ1c2RuSWQBILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAA1saW1pdENvbnRyYWN0AiMzUEZCNkxKeVNoc0NLRUExQVUxVTFXTGJEYXpxeWo2Wkw5YgALdHNuQ29udHJhY3QCIzNQS3o1am5KTG9oRjJHalNoUTdiRzVINEJlYmRvQTk4eloyABFsZW5kUHJveHlDb250cmFjdAIjM1BHeE1adE1uTlQ5cEpDdlh4WFY0THpLcVhzanZROVhwZlIBDHRyeUdldFN0cmluZwEDa2V5BAckbWF0Y2gwCQCdCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWIFByRtYXRjaDAFAWICAAEOZ2V0QXNzZXRTdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBBQFiAgVXQVZFUwENZ2V0QXNzZXRCeXRlcwEKYXNzZXRJZFN0cgMJAAACBQphc3NldElkU3RyAgVXQVZFUwUEdW5pdAkA2QQBBQphc3NldElkU3RyAQpnZXRCYWxhbmNlAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACBFVuaXQEAXgFByRtYXRjaDAICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJAQV2YWx1ZQEFB2Fzc2V0SWQBBnN3YXBXWAMGYXNzZXQwBmFzc2V0MQdhbW91bnQwBBNhc3NldDFCYWxhbmNlQmVmb3JlCQEKZ2V0QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUGYXNzZXQxAwkAAAIFE2Fzc2V0MUJhbGFuY2VCZWZvcmUFE2Fzc2V0MUJhbGFuY2VCZWZvcmUEBGludjEJAPwHBAkBB0FkZHJlc3MBARoBVy4qNTWxDbfxeT7ht0bQnnRSTXsx0IOuBgIEc3dhcAkAzAgCAAEJAMwIAgUGYXNzZXQxCQDMCAIJAKUIAQUEdGhpcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFBmFzc2V0MAUHYW1vdW50MAUDbmlsAwkAAAIFBGludjEFBGludjEEB2Ftb3VudDEJAGUCCQEKZ2V0QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUGYXNzZXQxBRNhc3NldDFCYWxhbmNlQmVmb3JlAwkAAAIFB2Ftb3VudDEFB2Ftb3VudDEFB2Ftb3VudDEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BCXN3YXBMaW1pdAMGcGFyYW1zBXQwU3RyBXQxU3RyCgEHZG9MaW1pdAIFYXNzZXQLb3JkZXJQYXJhbXMEA29yZAkAtQkCBQtvcmRlclBhcmFtcwIBPgQLJHQwMzMwMzMzNDgJAJQKAgkAkQMCBQNvcmQAAAkAkQMCBQNvcmQAAQQHb3JkZXJJZAgFCyR0MDMzMDMzMzQ4Al8xBAtvcmRlckFtb3VudAgFCyR0MDMzMDMzMzQ4Al8yBANpbnYJAPwHBAkBB0FkZHJlc3MBCQDZBAEFDWxpbWl0Q29udHJhY3QCDGZ1bGZpbGxPcmRlcgkAzAgCBQdvcmRlcklkBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBWFzc2V0CQENcGFyc2VJbnRWYWx1ZQEFC29yZGVyQW1vdW50BQNuaWwDCQAAAgUDaW52BQNpbnYFBWFzc2V0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAhvcmRlcnNMaQkAtQkCBQZwYXJhbXMCAToEAnQwCQENZ2V0QXNzZXRCeXRlcwEFBXQwU3RyBAZyZXN1bHQKAAIkbAUIb3JkZXJzTGkKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQJ0MAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHZG9MaW1pdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACBQZyZXN1bHQFBnJlc3VsdAAACQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQhzd2FwTGVuZAQGcGFyYW1zBXQwU3RyBXQxU3RyBmFtb3VudAQDYXJyCQC1CQIFBnBhcmFtcwIBLQQLJHQwMzc2NTM4MjIJAJUKAwkAkQMCBQNhcnIAAAkAkQMCBQNhcnIAAQkAkQMCBQNhcnIAAgQMcG9vbF9hZGRyZXNzCAULJHQwMzc2NTM4MjICXzEEBWFzc2V0CAULJHQwMzc2NTM4MjICXzIEA2RpcggFCyR0MDM3NjUzODIyAl8zBAhwcm94eUFkcgkBB0FkZHJlc3MBCQDZBAEFEWxlbmRQcm94eUNvbnRyYWN0BAxmdW5jdGlvbk5hbWUDCQAAAgUDZGlyAgEwAgZtaW50UEwCCHJlZGVlbVBMCQD8BwQFCHByb3h5QWRyBQxmdW5jdGlvbk5hbWUJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUFdDBTdHIFBmFtb3VudAUDbmlsAQxzd2FwSW50ZXJuYWwEAWkJcm91dGVzU3RyDG1pblRvUmVjZWl2ZQZyZWZLZXkECHNodXRkb3duCQELdmFsdWVPckVsc2UCCQCgCAECCHNodXRkb3duBwMFCHNodXRkb3duCQACAQIIc2h1dGRvd24KAQZkb1N3YXACBmFtb3VudARzd2FwBAZzd2FwTGkJALUJAgUEc3dhcAIBLAQLJHQwNDM2NTQ0NDYJAJYKBAkAkQMCBQZzd2FwTGkAAAkAkQMCBQZzd2FwTGkAAQkAkQMCBQZzd2FwTGkAAgkAkQMCBQZzd2FwTGkAAwQEZEFwcAgFCyR0MDQzNjU0NDQ2Al8xBAhkQXBwVHlwZQgFCyR0MDQzNjU0NDQ2Al8yBAV0MFN0cggFCyR0MDQzNjU0NDQ2Al8zBAV0MVN0cggFCyR0MDQzNjU0NDQ2Al80BAJ0MAkBDWdldEFzc2V0Qnl0ZXMBBQV0MFN0cgQHYW1vdW50MAMJAQIhPQIFBmFtb3VudAAABQZhbW91bnQJAQpnZXRCYWxhbmNlAQUCdDAEAmkxAwkAAAIFCGRBcHBUeXBlAgZzd29wZmkJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBGRBcHACCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJ0MAUHYW1vdW50MAUDbmlsAwkAAAIFCGRBcHBUeXBlAgZwdXp6bGUJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBGRBcHACBHN3YXAJAMwIAgUFdDFTdHIJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAnQwBQdhbW91bnQwBQNuaWwDCQAAAgUIZEFwcFR5cGUCAnd4CQEGc3dhcFdYAwUFdDBTdHIFBXQxU3RyBQdhbW91bnQwAwkAAAIFCGRBcHBUeXBlAgVsaW1pdAkBCXN3YXBMaW1pdAMFBGRBcHAFBXQwU3RyBQV0MVN0cgMJAAACBQhkQXBwVHlwZQIHdHN1bmFtaQkA/AcECQEHQWRkcmVzcwEJANkEAQULdHNuQ29udHJhY3QCBHN3YXAJAMwIAgUFdDFTdHIJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAnQwBQdhbW91bnQwBQNuaWwDCQAAAgUIZEFwcFR5cGUCBGxlbmQJAQhzd2FwTGVuZAQFBGRBcHAFBXQwU3RyBQV0MVN0cgUHYW1vdW50MAkAAgECK2ludGVybmFsIGFnZ3JlZ2F0b3IgaXNzdWU6IHVua25vdyBwb29sIHR5cGUDCQAAAgUCaTEFAmkxAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4KAQdkb1JvdXRlAgVhY2N1bQVyb3V0ZQQIYW1vdW50SW4JAQ1wYXJzZUludFZhbHVlAQkAkQMCCQC1CQIFBXJvdXRlAgEvAAAEBXN3YXBzCQC1CQIJAJEDAgkAtQkCBQVyb3V0ZQIBLwABAgE7BAtzd2Fwc1Jlc3VsdAoAAiRsBQVzd2FwcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFCGFtb3VudEluCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQZkb1N3YXACBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDMJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMDCQAAAgULc3dhcHNSZXN1bHQFC3N3YXBzUmVzdWx0CQBkAgUFYWNjdW0FC3N3YXBzUmVzdWx0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBA1zcGxpdHRlZFJvdXRlCQC1CQIJALICAgUJcm91dGVzU3RyADICASwECWFzc2V0MVN0cgkAkQMCBQ1zcGxpdHRlZFJvdXRlCQBlAgkAkAMBBQ1zcGxpdHRlZFJvdXRlAAEEBmFzc2V0MQkBDWdldEFzc2V0Qnl0ZXMBBQlhc3NldDFTdHIEBnJvdXRlcwkAvAkCBQlyb3V0ZXNTdHICAXwEBXN3YXBzCgACJGwFBnJvdXRlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHZG9Sb3V0ZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAwkAAAIFBXN3YXBzBQVzd2FwcwQIdG90YWxPdXQJAQpnZXRCYWxhbmNlAQUGYXNzZXQxBAlmZWVBbW91bnQJAGsDBQh0b3RhbE91dAAdAJBOBBBjbGVhblRvdGFsQW1vdW50CQBlAgUIdG90YWxPdXQFCWZlZUFtb3VudAMJAGYCBQxtaW5Ub1JlY2VpdmUFEGNsZWFuVG90YWxBbW91bnQJAAIBCQCsAgIJAKwCAgkArAICAl9hbW91bnQgdG8gcmVjZWl2ZSBpcyB0b28gbG93LiBwbGVhc2UgdHJ5IGFnYWluIHdpdGggYW5vdGhlciBhbW91bnQgb3Igd2FpdCAxIG1pbnV0ZS4gZXhwZWN0ZWQ6IAkApAMBBQxtaW5Ub1JlY2VpdmUCBywgcmVhbCAJAKQDAQUQY2xlYW5Ub3RhbEFtb3VudAQHdXNkbkZlZQMJAAACBQZhc3NldDEFBnVzZG5JZAUJZmVlQW1vdW50BA5wb29sQWRkcmVzc1N0cgkBDHRyeUdldFN0cmluZwEJAKwCAgkArAICAg1zdGF0aWNfYXNzZXRfBQlhc3NldDFTdHICC19wdXp6bGVQb29sAwkAAAIFDnBvb2xBZGRyZXNzU3RyAgAAAAQRdXNkbkJhbGFuY2VCZWZvcmUJAQpnZXRCYWxhbmNlAQUGdXNkbklkAwkAAAIFEXVzZG5CYWxhbmNlQmVmb3JlBRF1c2RuQmFsYW5jZUJlZm9yZQQMY29udmVydGVkRmVlCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDnBvb2xBZGRyZXNzU3RyAgRzd2FwCQDMCAIFCXVzZG5JZFN0cgkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGYXNzZXQxBQlmZWVBbW91bnQFA25pbAMJAAACBQxjb252ZXJ0ZWRGZWUFDGNvbnZlcnRlZEZlZQQQdXNkbkJhbGFuY2VBZnRlcgkBCmdldEJhbGFuY2UBBQZ1c2RuSWQDCQAAAgUQdXNkbkJhbGFuY2VBZnRlcgUQdXNkbkJhbGFuY2VBZnRlcgkAZQIFEHVzZG5CYWxhbmNlQWZ0ZXIFEXVzZG5CYWxhbmNlQmVmb3JlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFB3VzZG5GZWUFB3VzZG5GZWUED3JlZmVycmFsQWRkcmVzcwMJAAACBQZyZWZLZXkCBG11bmEJAQdBZGRyZXNzAQEaAVedDKrGE1GpbsuA92N9wWR44u9yTagMutMDCQAAAgUGcmVmS2V5AgZrZWVwZXIJAQdBZGRyZXNzAQEaAVfjtsoSNO5vRm/wyqiA44uvcU3xXpmsO/YDCQAAAgUGcmVmS2V5AgN0Y2kJAQdBZGRyZXNzAQEaAVdOBKn1coze5/nSUkrduGtTRYx6p5o4fZwJAQdBZGRyZXNzAQEaAVf8mgdw4W/e0ZQhIW16to1Y0kJYeywHJhIEDHJlZlVzZG5TaGFyZQMJAAACBQZyZWZLZXkCBW5vcmVmAAAJAGsDBQd1c2RuRmVlAAIACgQFdG9wVXADCQECIT0CBQd1c2RuRmVlAAAJAPwHBAkBB0FkZHJlc3MBARoBV8CKrXOUITO9sBhWDyi1uT5Bd86/b/L+1wILdG9wVXBSZXdhcmQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGdXNkbklkCQBlAgUHdXNkbkZlZQUMcmVmVXNkblNoYXJlBQNuaWwFBHVuaXQDCQAAAgUFdG9wVXAFBXRvcFVwBAZhc3NldDAICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQHYW1vdW50MAkAZQIJAQpnZXRCYWxhbmNlAQUGYXNzZXQwAwkAAAIFBmFzc2V0MAUGdXNkbklkBQxyZWZVc2RuU2hhcmUAAAQHYW1vdW50MQkAZQIFEGNsZWFuVG90YWxBbW91bnQDCQAAAgUGYXNzZXQxBQZ1c2RuSWQFDHJlZlVzZG5TaGFyZQAACQDOCAIJAM4IAgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHYW1vdW50MQUGYXNzZXQxBQNuaWwDCQECIT0CBQxyZWZVc2RuU2hhcmUAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ9yZWZlcnJhbEFkZHJlc3MFDHJlZlVzZG5TaGFyZQUGdXNkbklkBQNuaWwFA25pbAMJAQIhPQIFB2Ftb3VudDAAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB2Ftb3VudDAFBmFzc2V0MAUDbmlsBQNuaWwDCQAAAgUHdXNkbkZlZQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQEaAVce4ftAMWuB5uxLVhsFLFGhk27fCbE80sEFCWZlZUFtb3VudAUGYXNzZXQxBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQBaQEEc3dhcAIJcm91dGVzU3RyDG1pblRvUmVjZWl2ZQkBDHN3YXBJbnRlcm5hbAQFAWkFCXJvdXRlc1N0cgUMbWluVG9SZWNlaXZlAgVub3JlZgFpARBzd2FwV2l0aFJlZmVycmFsAwlyb3V0ZXNTdHIMbWluVG9SZWNlaXZlBnJlZktleQkBDHN3YXBJbnRlcm5hbAQFAWkFCXJvdXRlc1N0cgUMbWluVG9SZWNlaXZlBQZyZWZLZXkBaQESYWRkVG9rZW5QdXp6bGVQb29sAgphc3NldElkU3RyDnBvb2xBZGRyZXNzU3RyAwkBAiE9AggFAWkGY2FsbGVyCQEHQWRkcmVzcwEBGgFX1+EjUY58q4ha1dcol3XYiHXTj64jBabhCQACAQIKYWRtaW4gb25seQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgINc3RhdGljX2Fzc2V0XwUKYXNzZXRJZFN0cgILX3B1enpsZVBvb2wFDnBvb2xBZGRyZXNzU3RyBQNuaWwBaQEIc2h1dGRvd24BA3ZhbAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBARoBV9fhI1GOfKuIWtXXKJd12Ih104+uIwWm4QkAAgECB3dsIG9ubHkJAMwIAgkBDEJvb2xlYW5FbnRyeQICCHNodXRkb3duBQN2YWwFA25pbAECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkvxts0", "height": 3858293, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AY2vwMdQqi5qqhZMeV6nFoNmmG2hxDHkg1y7SLaXE163 Next: FfVPhQKrN9W3igyvDDFLwgHwbJab5yK8cqNwBsrmWSxs Diff:
OldNewDifferences
88 let limitContract = "3PFB6LJyShsCKEA1AU1U1WLbDazqyj6ZL9b"
99
1010 let tsnContract = "3PKz5jnJLohF2GjShQ7bG5H4BebdoA98zZ2"
11+
12+let lendProxyContract = "3PGxMZtMnNT9pJCvXxXV4LzKqXsjvQ9XpfR"
1113
1214 func tryGetString (key) = match getString(this, key) {
1315 case b: String =>
5961 func swapLimit (params,t0Str,t1Str) = {
6062 func doLimit (asset,orderParams) = {
6163 let ord = split(orderParams, ">")
62- let $t032413286 = $Tuple2(ord[0], ord[1])
63- let orderId = $t032413286._1
64- let orderAmount = $t032413286._2
64+ let $t033033348 = $Tuple2(ord[0], ord[1])
65+ let orderId = $t033033348._1
66+ let orderAmount = $t033033348._2
6567 let inv = invoke(Address(fromBase58String(limitContract)), "fulfillOrder", [orderId], [AttachedPayment(asset, parseIntValue(orderAmount))])
6668 if ((inv == inv))
6769 then asset
9092 }
9193
9294
95+func swapLend (params,t0Str,t1Str,amount) = {
96+ let arr = split(params, "-")
97+ let $t037653822 = $Tuple3(arr[0], arr[1], arr[2])
98+ let pool_address = $t037653822._1
99+ let asset = $t037653822._2
100+ let dir = $t037653822._3
101+ let proxyAdr = Address(fromBase58String(lendProxyContract))
102+ let functionName = if ((dir == "0"))
103+ then "mintPL"
104+ else "redeemPL"
105+ invoke(proxyAdr, functionName, [0], [AttachedPayment(getAssetBytes(t0Str), amount)])
106+ }
107+
108+
93109 func swapInternal (i,routesStr,minToReceive,refKey) = {
94110 let shutdown = valueOrElse(getBoolean("shutdown"), false)
95111 if (shutdown)
97113 else {
98114 func doSwap (amount,swap) = {
99115 let swapLi = split(swap, ",")
100- let $t038743955 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
101- let dApp = $t038743955._1
102- let dAppType = $t038743955._2
103- let t0Str = $t038743955._3
104- let t1Str = $t038743955._4
116+ let $t043654446 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
117+ let dApp = $t043654446._1
118+ let dAppType = $t043654446._2
119+ let t0Str = $t043654446._3
120+ let t1Str = $t043654446._4
105121 let t0 = getAssetBytes(t0Str)
106122 let amount0 = if ((amount != 0))
107123 then amount
116132 then swapLimit(dApp, t0Str, t1Str)
117133 else if ((dAppType == "tsunami"))
118134 then invoke(Address(fromBase58String(tsnContract)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
119- else throw("internal aggregator issue: unknow pool type")
135+ else if ((dAppType == "lend"))
136+ then swapLend(dApp, t0Str, t1Str, amount0)
137+ else throw("internal aggregator issue: unknow pool type")
120138 if ((i1 == i1))
121139 then 0
122140 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let usdnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
55
66 let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
77
88 let limitContract = "3PFB6LJyShsCKEA1AU1U1WLbDazqyj6ZL9b"
99
1010 let tsnContract = "3PKz5jnJLohF2GjShQ7bG5H4BebdoA98zZ2"
11+
12+let lendProxyContract = "3PGxMZtMnNT9pJCvXxXV4LzKqXsjvQ9XpfR"
1113
1214 func tryGetString (key) = match getString(this, key) {
1315 case b: String =>
1416 b
1517 case _ =>
1618 ""
1719 }
1820
1921
2022 func getAssetString (assetId) = match assetId {
2123 case b: ByteVector =>
2224 toBase58String(b)
2325 case _ =>
2426 "WAVES"
2527 }
2628
2729
2830 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
2931 then unit
3032 else fromBase58String(assetIdStr)
3133
3234
3335 func getBalance (assetId) = match assetId {
3436 case x: Unit =>
3537 wavesBalance(this).available
3638 case _ =>
3739 assetBalance(this, value(assetId))
3840 }
3941
4042
4143 func swapWX (asset0,asset1,amount0) = {
4244 let asset1BalanceBefore = getBalance(getAssetBytes(asset1))
4345 if ((asset1BalanceBefore == asset1BalanceBefore))
4446 then {
4547 let inv1 = invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, asset1, toString(this)], [AttachedPayment(getAssetBytes(asset0), amount0)])
4648 if ((inv1 == inv1))
4749 then {
4850 let amount1 = (getBalance(getAssetBytes(asset1)) - asset1BalanceBefore)
4951 if ((amount1 == amount1))
5052 then amount1
5153 else throw("Strict value is not equal to itself.")
5254 }
5355 else throw("Strict value is not equal to itself.")
5456 }
5557 else throw("Strict value is not equal to itself.")
5658 }
5759
5860
5961 func swapLimit (params,t0Str,t1Str) = {
6062 func doLimit (asset,orderParams) = {
6163 let ord = split(orderParams, ">")
62- let $t032413286 = $Tuple2(ord[0], ord[1])
63- let orderId = $t032413286._1
64- let orderAmount = $t032413286._2
64+ let $t033033348 = $Tuple2(ord[0], ord[1])
65+ let orderId = $t033033348._1
66+ let orderAmount = $t033033348._2
6567 let inv = invoke(Address(fromBase58String(limitContract)), "fulfillOrder", [orderId], [AttachedPayment(asset, parseIntValue(orderAmount))])
6668 if ((inv == inv))
6769 then asset
6870 else throw("Strict value is not equal to itself.")
6971 }
7072
7173 let ordersLi = split(params, ":")
7274 let t0 = getAssetBytes(t0Str)
7375 let result = {
7476 let $l = ordersLi
7577 let $s = size($l)
7678 let $acc0 = t0
7779 func $f0_1 ($a,$i) = if (($i >= $s))
7880 then $a
7981 else doLimit($a, $l[$i])
8082
8183 func $f0_2 ($a,$i) = if (($i >= $s))
8284 then $a
8385 else throw("List size exceeds 10")
8486
8587 $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)
8688 }
8789 if ((result == result))
8890 then 0
8991 else throw("Strict value is not equal to itself.")
9092 }
9193
9294
95+func swapLend (params,t0Str,t1Str,amount) = {
96+ let arr = split(params, "-")
97+ let $t037653822 = $Tuple3(arr[0], arr[1], arr[2])
98+ let pool_address = $t037653822._1
99+ let asset = $t037653822._2
100+ let dir = $t037653822._3
101+ let proxyAdr = Address(fromBase58String(lendProxyContract))
102+ let functionName = if ((dir == "0"))
103+ then "mintPL"
104+ else "redeemPL"
105+ invoke(proxyAdr, functionName, [0], [AttachedPayment(getAssetBytes(t0Str), amount)])
106+ }
107+
108+
93109 func swapInternal (i,routesStr,minToReceive,refKey) = {
94110 let shutdown = valueOrElse(getBoolean("shutdown"), false)
95111 if (shutdown)
96112 then throw("shutdown")
97113 else {
98114 func doSwap (amount,swap) = {
99115 let swapLi = split(swap, ",")
100- let $t038743955 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
101- let dApp = $t038743955._1
102- let dAppType = $t038743955._2
103- let t0Str = $t038743955._3
104- let t1Str = $t038743955._4
116+ let $t043654446 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
117+ let dApp = $t043654446._1
118+ let dAppType = $t043654446._2
119+ let t0Str = $t043654446._3
120+ let t1Str = $t043654446._4
105121 let t0 = getAssetBytes(t0Str)
106122 let amount0 = if ((amount != 0))
107123 then amount
108124 else getBalance(t0)
109125 let i1 = if ((dAppType == "swopfi"))
110126 then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
111127 else if ((dAppType == "puzzle"))
112128 then invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
113129 else if ((dAppType == "wx"))
114130 then swapWX(t0Str, t1Str, amount0)
115131 else if ((dAppType == "limit"))
116132 then swapLimit(dApp, t0Str, t1Str)
117133 else if ((dAppType == "tsunami"))
118134 then invoke(Address(fromBase58String(tsnContract)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
119- else throw("internal aggregator issue: unknow pool type")
135+ else if ((dAppType == "lend"))
136+ then swapLend(dApp, t0Str, t1Str, amount0)
137+ else throw("internal aggregator issue: unknow pool type")
120138 if ((i1 == i1))
121139 then 0
122140 else throw("Strict value is not equal to itself.")
123141 }
124142
125143 func doRoute (accum,route) = {
126144 let amountIn = parseIntValue(split(route, "/")[0])
127145 let swaps = split(split(route, "/")[1], ";")
128146 let swapsResult = {
129147 let $l = swaps
130148 let $s = size($l)
131149 let $acc0 = amountIn
132150 func $f0_1 ($a,$i) = if (($i >= $s))
133151 then $a
134152 else doSwap($a, $l[$i])
135153
136154 func $f0_2 ($a,$i) = if (($i >= $s))
137155 then $a
138156 else throw("List size exceeds 3")
139157
140158 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
141159 }
142160 if ((swapsResult == swapsResult))
143161 then (accum + swapsResult)
144162 else throw("Strict value is not equal to itself.")
145163 }
146164
147165 let splittedRoute = split(takeRight(routesStr, 50), ",")
148166 let asset1Str = splittedRoute[(size(splittedRoute) - 1)]
149167 let asset1 = getAssetBytes(asset1Str)
150168 let routes = split_4C(routesStr, "|")
151169 let swaps = {
152170 let $l = routes
153171 let $s = size($l)
154172 let $acc0 = 0
155173 func $f0_1 ($a,$i) = if (($i >= $s))
156174 then $a
157175 else doRoute($a, $l[$i])
158176
159177 func $f0_2 ($a,$i) = if (($i >= $s))
160178 then $a
161179 else throw("List size exceeds 4")
162180
163181 $f0_2($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4)
164182 }
165183 if ((swaps == swaps))
166184 then {
167185 let totalOut = getBalance(asset1)
168186 let feeAmount = fraction(totalOut, 29, 10000)
169187 let cleanTotalAmount = (totalOut - feeAmount)
170188 if ((minToReceive > cleanTotalAmount))
171189 then throw(((("amount to receive is too low. please try again with another amount or wait 1 minute. expected: " + toString(minToReceive)) + ", real ") + toString(cleanTotalAmount)))
172190 else {
173191 let usdnFee = if ((asset1 == usdnId))
174192 then feeAmount
175193 else {
176194 let poolAddressStr = tryGetString((("static_asset_" + asset1Str) + "_puzzlePool"))
177195 if ((poolAddressStr == ""))
178196 then 0
179197 else {
180198 let usdnBalanceBefore = getBalance(usdnId)
181199 if ((usdnBalanceBefore == usdnBalanceBefore))
182200 then {
183201 let convertedFee = invoke(addressFromStringValue(poolAddressStr), "swap", [usdnIdStr, 0], [AttachedPayment(asset1, feeAmount)])
184202 if ((convertedFee == convertedFee))
185203 then {
186204 let usdnBalanceAfter = getBalance(usdnId)
187205 if ((usdnBalanceAfter == usdnBalanceAfter))
188206 then (usdnBalanceAfter - usdnBalanceBefore)
189207 else throw("Strict value is not equal to itself.")
190208 }
191209 else throw("Strict value is not equal to itself.")
192210 }
193211 else throw("Strict value is not equal to itself.")
194212 }
195213 }
196214 if ((usdnFee == usdnFee))
197215 then {
198216 let referralAddress = if ((refKey == "muna"))
199217 then Address(base58'3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU')
200218 else if ((refKey == "keeper"))
201219 then Address(base58'3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM')
202220 else if ((refKey == "tci"))
203221 then Address(base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm')
204222 else Address(base58'3PQxXXiQXpWsjDwQLYxyuoPiaLnVHjJguFo')
205223 let refUsdnShare = if ((refKey == "noref"))
206224 then 0
207225 else fraction(usdnFee, 2, 10)
208226 let topUp = if ((usdnFee != 0))
209227 then invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(usdnId, (usdnFee - refUsdnShare))])
210228 else unit
211229 if ((topUp == topUp))
212230 then {
213231 let asset0 = i.payments[0].assetId
214232 let amount0 = (getBalance(asset0) - (if ((asset0 == usdnId))
215233 then refUsdnShare
216234 else 0))
217235 let amount1 = (cleanTotalAmount - (if ((asset1 == usdnId))
218236 then refUsdnShare
219237 else 0))
220238 ((([ScriptTransfer(i.caller, amount1, asset1)] ++ (if ((refUsdnShare != 0))
221239 then [ScriptTransfer(referralAddress, refUsdnShare, usdnId)]
222240 else nil)) ++ (if ((amount0 != 0))
223241 then [ScriptTransfer(i.caller, amount0, asset0)]
224242 else nil)) ++ (if ((usdnFee == 0))
225243 then [ScriptTransfer(Address(base58'3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe'), feeAmount, asset1)]
226244 else nil))
227245 }
228246 else throw("Strict value is not equal to itself.")
229247 }
230248 else throw("Strict value is not equal to itself.")
231249 }
232250 }
233251 else throw("Strict value is not equal to itself.")
234252 }
235253 }
236254
237255
238256 @Callable(i)
239257 func swap (routesStr,minToReceive) = swapInternal(i, routesStr, minToReceive, "noref")
240258
241259
242260
243261 @Callable(i)
244262 func swapWithReferral (routesStr,minToReceive,refKey) = swapInternal(i, routesStr, minToReceive, refKey)
245263
246264
247265
248266 @Callable(i)
249267 func addTokenPuzzlePool (assetIdStr,poolAddressStr) = if ((i.caller != Address(base58'3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL')))
250268 then throw("admin only")
251269 else [StringEntry((("static_asset_" + assetIdStr) + "_puzzlePool"), poolAddressStr)]
252270
253271
254272
255273 @Callable(i)
256274 func shutdown (val) = if ((i.caller != Address(base58'3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL')))
257275 then throw("wl only")
258276 else [BooleanEntry("shutdown", val)]
259277
260278
261279 @Verifier(tx)
262280 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
263281

github/deemru/w8io/786bc32 
60.60 ms