2023.05.25 21:54 [3659394] smart account 3PBeerh759eA1eGFuw77RowaZfZNohzJzvz > SELF 0.00000000 Waves

{ "type": 13, "id": "713CN5W5YUxtWKLZ7G54ymdZytcwxSvXuUjDrVwJn1fW", "fee": 2000000, "feeAssetId": null, "timestamp": 1685040967558, "version": 2, "chainId": 87, "sender": "3PBeerh759eA1eGFuw77RowaZfZNohzJzvz", "senderPublicKey": "Fw5NUe1f5xvDWNgCRm1CuYRnJGm2JqeSjqEBioaPvwaR", "proofs": [ "5yCqnbNWbtvV35Go2pkJE1dydr8eFtetbwq1MDsxGVBoEeE7izZesL1GJ2YnBoCkd7tgFUWCPx3FSDHMLqLjCZiA" ], "script": "base64:BgJACAISABIJCgcIAQgICAgEEg0KCwgICAgIBAgIAQgEEhEKDwgICAgIBAgICAQICAEIBBIDCgEIEgMKAQgSAwoBCBAACnJ1bGVyX3Rlc3QCLEJneHBDbTR3eGJXOFNLTFBLWm5mNEtVMkQ2WlUyOW92OE1nWnJrYVNBcXBZAAVydWxlcgIsN3pOVUpCVm9QTUJDUnN0UDNSMUF2eGh4ck41MVNRa241Qk1pMmlKOWNpQWQABnJ1bGVyMgIsOWZlNjdld3p4dGFMb3plUFoyVTNTRzcxWlFGeUdMQVhXbW1tSFJFcEZlTUMABnJ1bGVyMwIsQW8ycWlqUVZ2dlpaU2dSektvWXlKOWtCeFlqc1BRMzdDZFVwcGRKdFQ2VjEABnJ1bGVyNAIsM1BTSzdiNmJNZjFnQkR2akhSYkdROXpHYzY4VWlyZXFCajJldWJWaTFxNXIABnJ1bGVyNQIsNjZyQ3Y5ZGZkb3VxUTNTUkc5WHJLblJpRm1NYndrWlFnbWhTMWZ0bkN0cW0ABnJ1bGVyNgIsRmVNWDZoUWFSS3NMc2tpNzd4VkhIREdSa2o5VnVKem1QMk1BQ2JBV0RqREsABnJ1bGVyNwIsN3hERVE3SlpOTDFaTExxY3lTVWIxV1dpakcxWDNHRFdHMzVReHlOcWJ4eGkABnJ1bGVyOAIsR1g1azFDcHVobnY5b1A5Vm5XTVNYQnJKdXNha1U1UDNLenFRVzVlN1BqZ2QACmFicmFjYWRicmEBIITDhEyr4nwCCd6iwXNoCSzra2gXEkldulYQmi+2iXMBAQN2aXABA2trawMDAwMDAwMDCQAAAgUDa2trBQVydWxlcgYJAAACBQNra2sFBnJ1bGVyMgYJAAACBQNra2sFBnJ1bGVyMwYJAAACBQNra2sFBnJ1bGVyNAYJAAACBQNra2sFBnJ1bGVyNQYJAAACBQNra2sFBnJ1bGVyNgYJAAACBQNra2sFBnJ1bGVyNwYJAAACBQNra2sFBnJ1bGVyOAYHAQpnZXRBc3NldElkAQNwbXQEByRtYXRjaDAFA3BtdAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFwBQckbWF0Y2gwBQNwbXQFBHVuaXQBDmdldEFzc2V0U3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgIFV0FWRVMBDWdldEFjY0JhbGFuY2UBB2Fzc2V0SWQDCQAAAgUHYXNzZXRJZAIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUHYXNzZXRJZAENZ2V0QXNzZXRCeXRlcwEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwUEdW5pdAkA2QQBBQdhc3NldElkAQlteUJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA8AcCBQR0aGlzBQFiCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQcBaQEEdGVzdAAJAJQKAgUDbmlsAgABaQEEZmFrZQcEYV9pbgZhbW91bnQFYV9vdXQCcG8FcG9fdHkOd3hfbHBfYXNzZXRfaWQJaXNfc3RhYmxlBAdhc3NldEluCQENZ2V0QXNzZXRCeXRlcwEFBGFfaW4ECGFtb3VudEluBQZhbW91bnQEBXB1dE9wAwUJaXNfc3RhYmxlAgtwdXRPbmVUa25WMgIJcHV0T25lVGtuBAVnZXRPcAMFCWlzX3N0YWJsZQILZ2V0T25lVGtuVjICCWdldE9uZVRrbgQUYW1vdW50X2JlZl9hc3NldF9vdXQJAQlteUJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEFBWFfb3V0AwkAAAIFFGFtb3VudF9iZWZfYXNzZXRfb3V0BRRhbW91bnRfYmVmX2Fzc2V0X291dAQGZW50cnkxAwkAAAIFBXBvX3R5AgFwCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQJwbwIEc3dhcAkAzAgCBQVhX291dAkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJbgUIYW1vdW50SW4FA25pbAMJAAACBQVwb190eQIBcwkA/AcECQEHQWRkcmVzcwEJANkEAQUCcG8CCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldEluBQhhbW91bnRJbgUDbmlsBANwdXQJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnBvBQVwdXRPcAkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJbgUIYW1vdW50SW4FA25pbAMJAAACBQNwdXQFA3B1dAQLd3hfbHBfYXNzZXQJAQ1nZXRBc3NldEJ5dGVzAQUOd3hfbHBfYXNzZXRfaWQECWxwQmFsYW5jZQkBCW15QmFsYW5jZQEFC3d4X2xwX2Fzc2V0AwkAAAIFCWxwQmFsYW5jZQUJbHBCYWxhbmNlCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQJwbwUFZ2V0T3AJAMwIAgUFYV9vdXQJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3d4X2xwX2Fzc2V0BQlscEJhbGFuY2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQZlbnRyeTEFBmVudHJ5MQQWYW1vdW50X2FmdGVyX2Fzc2V0X291dAkBCW15QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUFYV9vdXQDCQAAAgUWYW1vdW50X2FmdGVyX2Fzc2V0X291dAUWYW1vdW50X2FmdGVyX2Fzc2V0X291dAQEcmVzdQkAZQIFFmFtb3VudF9hZnRlcl9hc3NldF9vdXQFFGFtb3VudF9iZWZfYXNzZXRfb3V0CQACAQkApAMBBQRyZXN1CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB3RyYWRlX3cLAWECYW8CcDEDcDF0EHd4X2xwX2Fzc2V0X2lkXzELaXNfc3RhYmxlXzECcDIDcDJ0A21pbhB3eF9scF9hc3NldF9pZF8yC2lzX3N0YWJsZV8yBAljYWxsZXJQYmsJANgEAQgFAWkPY2FsbGVyUHVibGljS2V5AwkBASEBCQEDdmlwAQUJY2FsbGVyUGJrCQACAQIITm8tbm8tbm8EA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABAdhc3NldEluCQEKZ2V0QXNzZXRJZAEIBQNwbXQHYXNzZXRJZAQIYW1vdW50SW4JAQV2YWx1ZQEIBQNwbXQGYW1vdW50BBFhbW91bnRfYmVmX2Fzc2V0MQkBCW15QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUBYQMJAAACBRFhbW91bnRfYmVmX2Fzc2V0MQURYW1vdW50X2JlZl9hc3NldDEEBnB1dE9wMQMFC2lzX3N0YWJsZV8xAgtwdXRPbmVUa25WMgIJcHV0T25lVGtuBAZnZXRPcDEDBQtpc19zdGFibGVfMQILZ2V0T25lVGtuVjICCWdldE9uZVRrbgQGcHV0T3AyAwULaXNfc3RhYmxlXzICC3B1dE9uZVRrblYyAglwdXRPbmVUa24EBmdldE9wMgMFC2lzX3N0YWJsZV8yAgtnZXRPbmVUa25WMgIJZ2V0T25lVGtuBAZlbnRyeTEDCQAAAgUDcDF0AgFwCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQJwMQIEc3dhcAkAzAgCBQFhCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldEluBQhhbW91bnRJbgUDbmlsAwkAAAIFA3AxdAIBcwkA/AcECQEHQWRkcmVzcwEJANkEAQUCcDECCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldEluBQhhbW91bnRJbgUDbmlsBANwdXQJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnAxBQZwdXRPcDEJAMwIAgABCQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SW4FCGFtb3VudEluBQNuaWwDCQAAAgUDcHV0BQNwdXQEDXd4X2xwX2Fzc2V0XzEJAQ1nZXRBc3NldEJ5dGVzAQUQd3hfbHBfYXNzZXRfaWRfMQQLbHBCYWxhbmNlXzEJAQlteUJhbGFuY2UBBQ13eF9scF9hc3NldF8xAwkAAAIFC2xwQmFsYW5jZV8xBQtscEJhbGFuY2VfMQkA/AcECQEHQWRkcmVzcwEJANkEAQUCcDEFBmdldE9wMQkAzAgCBQFhCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQ13eF9scF9hc3NldF8xBQtscEJhbGFuY2VfMQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBmVudHJ5MQUGZW50cnkxBAJuYgkAZQIJAQlteUJhbGFuY2UBCQENZ2V0QXNzZXRCeXRlcwEFAWEFEWFtb3VudF9iZWZfYXNzZXQxAwkAAAIFAm5iBQJuYgQVYW1vdW50X2JlZl9iYXNlX2Fzc2V0CQEJbXlCYWxhbmNlAQkBDWdldEFzc2V0Qnl0ZXMBBQJhbwMJAAACBRVhbW91bnRfYmVmX2Jhc2VfYXNzZXQFFWFtb3VudF9iZWZfYmFzZV9hc3NldAQGZW50cnkyAwkAAAIFA3AydAIBcAkA/AcECQEHQWRkcmVzcwEJANkEAQUCcDICBHN3YXAJAMwIAgUCYW8JAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUBYQUCbmIFA25pbAMJAAACBQNwMnQCAXMJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnAyAghleGNoYW5nZQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQFhBQJuYgUDbmlsBANwdXQJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnAyBQZwdXRPcDIJAMwIAgABCQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUBYQUCbmIFA25pbAMJAAACBQNwdXQFA3B1dAQNd3hfbHBfYXNzZXRfMgkBDWdldEFzc2V0Qnl0ZXMBBRB3eF9scF9hc3NldF9pZF8yBAtscEJhbGFuY2VfMgkBCW15QmFsYW5jZQEFDXd4X2xwX2Fzc2V0XzIDCQAAAgULbHBCYWxhbmNlXzIFC2xwQmFsYW5jZV8yCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQJwMgUGZ2V0T3AyCQDMCAIFAmFvCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQ13eF9scF9hc3NldF8yBQtscEJhbGFuY2VfMgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBmVudHJ5MgUGZW50cnkyBANuYjIJAGUCCQEJbXlCYWxhbmNlAQkBDWdldEFzc2V0Qnl0ZXMBBQJhbwUVYW1vdW50X2JlZl9iYXNlX2Fzc2V0AwkAAAIFA25iMgUDbmIyAwkAZgIFA25iMgUDbWluBAdodWphYnJhCQBlAgUDbmIyBQhhbW91bnRJbgQEcmV0dQUIYW1vdW50SW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQRyZXR1BQdhc3NldEluCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAKcIAQUKYWJyYWNhZGJyYQUHaHVqYWJyYQUHYXNzZXRJbgUDbmlsCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgtPb29wcywgaW46IAkApAMBBQhhbW91bnRJbgIFLCAxOiAJAKQDAQUCbmICBywgb3V0OiAJAKQDAQUDbmIyAgcsIG1pbjogCQCkAwEFA21pbgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQt0cmlwdHJhZGVfdw8BYQJhMgJwMQNwMXQQd3hfbHBfYXNzZXRfaWRfMQtpc19zdGFibGVfMQJwMgNwMnQQd3hfbHBfYXNzZXRfaWRfMgtpc19zdGFibGVfMgJwMwNwM3QDbWluEHd4X2xwX2Fzc2V0X2lkXzMLaXNfc3RhYmxlXzMECWNhbGxlclBiawkA2AQBCAUBaQ9jYWxsZXJQdWJsaWNLZXkDCQEBIQEJAQN2aXABBQljYWxsZXJQYmsJAAIBAghOby1uby1ubwQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAEB2Fzc2V0SW4JAQpnZXRBc3NldElkAQgFA3BtdAdhc3NldElkBAhhbW91bnRJbgkBBXZhbHVlAQgFA3BtdAZhbW91bnQEEWFtb3VudF9iZWZfYXNzZXQxCQEJbXlCYWxhbmNlAQkBDWdldEFzc2V0Qnl0ZXMBBQFhAwkAAAIFEWFtb3VudF9iZWZfYXNzZXQxBRFhbW91bnRfYmVmX2Fzc2V0MQQGcHV0T3AxAwULaXNfc3RhYmxlXzECC3B1dE9uZVRrblYyAglwdXRPbmVUa24EBmdldE9wMQMFC2lzX3N0YWJsZV8xAgtnZXRPbmVUa25WMgIJZ2V0T25lVGtuBAZwdXRPcDIDBQtpc19zdGFibGVfMgILcHV0T25lVGtuVjICCXB1dE9uZVRrbgQGZ2V0T3AyAwULaXNfc3RhYmxlXzICC2dldE9uZVRrblYyAglnZXRPbmVUa24EBnB1dE9wMwMFC2lzX3N0YWJsZV8zAgtwdXRPbmVUa25WMgIJcHV0T25lVGtuBAZnZXRPcDMDBQtpc19zdGFibGVfMwILZ2V0T25lVGtuVjICCWdldE9uZVRrbgQGZW50cnkxAwkAAAIFA3AxdAIBcAkA/AcECQEHQWRkcmVzcwEJANkEAQUCcDECBHN3YXAJAMwIAgUBYQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJbgUIYW1vdW50SW4FA25pbAMJAAACBQNwMXQCAXMJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnAxAghleGNoYW5nZQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJbgUIYW1vdW50SW4FA25pbAQEcHV0MQkA/AcECQEHQWRkcmVzcwEJANkEAQUCcDEFBnB1dE9wMQkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJbgUIYW1vdW50SW4FA25pbAMJAAACBQRwdXQxBQRwdXQxBA13eF9scF9hc3NldF8xCQENZ2V0QXNzZXRCeXRlcwEFEHd4X2xwX2Fzc2V0X2lkXzEEC2xwQmFsYW5jZV8xCQEJbXlCYWxhbmNlAQUNd3hfbHBfYXNzZXRfMQMJAAACBQtscEJhbGFuY2VfMQULbHBCYWxhbmNlXzEJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnAxBQZnZXRPcDEJAMwIAgUBYQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUNd3hfbHBfYXNzZXRfMQULbHBCYWxhbmNlXzEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQZlbnRyeTEFBmVudHJ5MQQCbmIJAGUCCQEJbXlCYWxhbmNlAQkBDWdldEFzc2V0Qnl0ZXMBBQFhBRFhbW91bnRfYmVmX2Fzc2V0MQMJAAACBQJuYgUCbmIEEWFtb3VudF9iZWZfYXNzZXQyCQEJbXlCYWxhbmNlAQkBDWdldEFzc2V0Qnl0ZXMBBQJhMgMJAAACBRFhbW91bnRfYmVmX2Fzc2V0MgURYW1vdW50X2JlZl9hc3NldDIEBmVudHJ5MgMJAAACBQNwMnQCAXAJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnAyAgRzd2FwCQDMCAIFAmEyCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFAWEFAm5iBQNuaWwDCQAAAgUDcDJ0AgFzCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQJwMgIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUBYQUCbmIFA25pbAQEcHV0MgkA/AcECQEHQWRkcmVzcwEJANkEAQUCcDIFBnB1dE9wMgkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQFhBQJuYgUDbmlsAwkAAAIFBHB1dDIFBHB1dDIEDXd4X2xwX2Fzc2V0XzIJAQ1nZXRBc3NldEJ5dGVzAQUQd3hfbHBfYXNzZXRfaWRfMgQLbHBCYWxhbmNlXzIJAQlteUJhbGFuY2UBBQ13eF9scF9hc3NldF8yAwkAAAIFC2xwQmFsYW5jZV8yBQtscEJhbGFuY2VfMgkA/AcECQEHQWRkcmVzcwEJANkEAQUCcDIFBmdldE9wMgkAzAgCBQJhMgkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUNd3hfbHBfYXNzZXRfMgULbHBCYWxhbmNlXzIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQZlbnRyeTIFBmVudHJ5MgQVYW1vdW50X2JlZl9iYXNlX2Fzc2V0CQEJbXlCYWxhbmNlAQUHYXNzZXRJbgMJAAACBRVhbW91bnRfYmVmX2Jhc2VfYXNzZXQFFWFtb3VudF9iZWZfYmFzZV9hc3NldAQDbmIyCQBlAgkBCW15QmFsYW5jZQEJAQ1nZXRBc3NldEJ5dGVzAQUCYTIFEWFtb3VudF9iZWZfYXNzZXQyAwkAAAIFA25iMgUDbmIyBAZlbnRyeTMDCQAAAgUDcDN0AgFwCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQJwMwIEc3dhcAkAzAgCCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldEluCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFAmEyBQNuYjIFA25pbAMJAAACBQNwM3QCAXMJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnAzAghleGNoYW5nZQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQJhMgUDbmIyBQNuaWwEBHB1dDMJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAnAzBQZwdXRPcDMJAMwIAgABCQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUCYTIFA25iMgUDbmlsAwkAAAIFBHB1dDMFBHB1dDMEDXd4X2xwX2Fzc2V0XzMJAQ1nZXRBc3NldEJ5dGVzAQUQd3hfbHBfYXNzZXRfaWRfMwQLbHBCYWxhbmNlXzMJAQlteUJhbGFuY2UBBQ13eF9scF9hc3NldF8zAwkAAAIFC2xwQmFsYW5jZV8zBQtscEJhbGFuY2VfMwkA/AcECQEHQWRkcmVzcwEJANkEAQUCcDMFBmdldE9wMwkAzAgCCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldEluCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQ13eF9scF9hc3NldF8zBQtscEJhbGFuY2VfMwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBmVudHJ5MwUGZW50cnkzBANuYjMJAGUCCQEJbXlCYWxhbmNlAQUHYXNzZXRJbgUVYW1vdW50X2JlZl9iYXNlX2Fzc2V0AwkAAAIFA25iMwUDbmIzAwkAZgIFA25iMwUDbWluBAdodWphYnJhCQBlAgUDbmIzBQhhbW91bnRJbgQEcmV0dQUIYW1vdW50SW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQRyZXR1BQdhc3NldEluCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAKcIAQUKYWJyYWNhZGJyYQUHaHVqYWJyYQUHYXNzZXRJbgUDbmlsCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgILT29vcHMsIGluOiAJAKQDAQUIYW1vdW50SW4CBSwgMTogCQCkAwEFAm5iAgUsIDI6IAkApAMBBQNuYjICBywgb3V0OiAJAKQDAQUDbmIzAgcsIG1pbjogCQCkAwEFA21pbgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3Qg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dAkAZQIJAQlteUJhbGFuY2UBBQdhc3NldEluBQphX2Jhc2VfYmVmAwkAAAIFBnJlc3VsdAUGcmVzdWx0AwkAZgIFBnJlc3VsdAUFbWluaW0EB2h1amFicmEJAGUCBQZyZXN1bHQFCGFtb3VudEluBARyZXR1BQhhbW91bnRJbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBHJldHUFB2Fzc2V0SW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkApwgBBQphYnJhY2FkYnJhBQdodWphYnJhBQdhc3NldEluBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICC09vb3BzLCBpbjogCQCkAwEFCGFtb3VudEluAgUsIDE6IAkApAMBBQNuYjECBywgb3V0OiAJAKQDAQUGcmVzdWx0AgcsIG1pbjogCQCkAwEFBW1pbmltCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhNPb29wcywgUkVKRUNUMV9pbjogCQCkAwEFCGFtb3VudEluAgUsIDE6IAkApAMBBQNuYjECCCwgbWluMTogCQCkAwEFBm1pbmltMQIHLCBtaW46IAkApAMBBQVtaW5pbQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQFiAQFkBAljYWxsZXJQYmsJANgEAQgFAWkPY2FsbGVyUHVibGljS2V5AwkBASEBCQEDdmlwAQUJY2FsbGVyUGJrCQACAQIITm8tbm8tbm8EA3BtdAkAkQMCCAUBaQhwYXltZW50cwAABAdhc3NldEluCQEKZ2V0QXNzZXRJZAEIBQNwbXQHYXNzZXRJZAQI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U3RyaW5nAQUHYXNzZXRJbgkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQJhMgUDbmIyBQNuaWwDCQAAAgUDcDN0AgFzCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQJwMwIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRBc3NldEJ5dGVzAQUCYTIFA25iMgUDbmlsAwkAAAIFA3AzdAIBdwkA/AcECQEHQWRkcmVzcwEBGgFXLio1NbENt/F5PuG3RtCedFJNezHQg64GAgRzd2FwCQDMCAIAAQkAzAgCCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldEluCQDMCAIJAKUIAQUEdGhpcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0QXNzZXRCeXRlcwEFAmEyBQNuYjIFA25pbAkAAgECEVVua25vd24gcG9vbCB0eXBlAwkAAAIFAnMzBQJzMwQGcmVzdWx0CQBlAgkBCW15QmFsYW5jZQEFB2Fzc2V0SW4FCmFfYmFzZV9iZWYDCQAAAgUGcmVzdWx0BQZyZXN1bHQDCQBmAgUGcmVzdWx0BQVtaW5pbQQHaHVqYWJyYQkAZQIFBnJlc3VsdAUIYW1vdW50SW4EBHJldHUFCGFtb3VudEluCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUEcmV0dQUHYXNzZXRJbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQCnCAEFCmFicmFjYWRicmEFB2h1amFicmEFB2Fzc2V0SW4FA25pbAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICC09vb3BzLCBpbjogCQCkAwEFCGFtb3VudEluAgUsIDE6IAkApAMBBQNuYjECBSwgMjogCQCkAwEFA25iMgIHLCBvdXQ6IAkApAMBBQZyZXN1bHQCBywgbWluOiAJAKQDAQUFbWluaW0JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIB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bAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQJhMwUDbmIzBQNuaWwJAAIBAhFVbmtub3duIHBvb2wgdHlwZQMJAAACBQJzNAUCczQEBnJlc3VsdAkAZQIJAQlteUJhbGFuY2UBBQdhc3NldEluBQphX2Jhc2VfYmVmAwkAAAIFBnJlc3VsdAUGcmVzdWx0AwkAZgIFBnJlc3VsdAUFbWluaW0EB2h1amFicmEJAGUCBQZyZXN1bHQFCGFtb3VudEluBARyZXR1BQhhbW91bnRJbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBHJldHUFB2Fzc2V0SW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkApwgBBQphYnJhY2FkYnJhBQdodWphYnJhBQdhc3NldEluBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgILT29vcHMsIGluOiAJAKQDAQUIYW1vdW50SW4CBSwgMTogCQCkAwEFA25iMQIFLCAyOiAJAKQDAQUDbmIyAgUsIDM6IAkApAMBBQNuYjMCBywgb3V0OiAJAKQDAQUGcmVzdWx0AgcsIG1pbjogCQCkAwEFBW1pbmltCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgITT29vcHMsIFJFSkVDVDJfaW46IAkApAMBBQhhbW91bnRJbgIFLCAxOiAJAKQDAQUDbmIxAggsIG1pbjE6IAkApAMBBQZtaW5pbTECBSwgMjogCQCkAwEFA25iMgIILCBtaW4yOiAJAKQDAQUGbWluaW0yAgUsIDM6IAIBMAIHLCBvdXQ6IAIBMAIHLCBtaW46IAkApAMBBQVtaW5pbQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgITT29vcHMsIFJFSkVDVDFfaW46IAkApAMBBQhhbW91bnRJbgIFLCAxOiAJAKQDAQUDbmIxAggsIG1pbjE6IAkApAMBBQZtaW5pbTECBSwgMjogAgEwAgUsIDM6IAIBMAIHLCBvdXQ6IAIBMAIHLCBtaW46IAkApAMBBQVtaW5pbQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXl+FUQ+", "height": 3659394, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DG1SLy777fVgtjRycHxjVwT7J6SNcULruj6HZf4KD9ih Next: 5Ry4Q2HDnYZKsT2HH7P8RvTrwxXNq2CMCL31QQA4Audk Diff:
OldNewDifferences
353353 let assetIn = getAssetId(pmt.assetId)
354354 let amountIn = value(pmt.amount)
355355 let arr = split(d, "|")
356- let $t01174311823 = $Tuple6(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5])
357- let a1 = $t01174311823._1
358- let p1 = $t01174311823._2
359- let p1t = $t01174311823._3
360- let p2 = $t01174311823._4
361- let p2t = $t01174311823._5
362- let m = $t01174311823._6
356+ let $t01201812110 = $Tuple7(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6])
357+ let a1 = $t01201812110._1
358+ let p1 = $t01201812110._2
359+ let p1t = $t01201812110._3
360+ let p2 = $t01201812110._4
361+ let p2t = $t01201812110._5
362+ let m = $t01201812110._6
363+ let m1 = $t01201812110._7
363364 let minim = parseIntValue(m)
365+ let minim1 = parseIntValue(m1)
364366 let a1_bef = myBalance(getAssetBytes(a1))
365367 if ((a1_bef == a1_bef))
366368 then {
378380 then {
379381 let a_base_bef = myBalance(assetIn)
380382 if ((a_base_bef == a_base_bef))
381- then {
382- let s2 = if ((p2t == "p"))
383- then invoke(Address(fromBase58String(p2)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a1), nb1)])
384- else if ((p2t == "s"))
385- then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
386- else if ((p2t == "w"))
387- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
388- else throw("Unknown pool type")
389- if ((s2 == s2))
390- then {
391- let result = (myBalance(assetIn) - a_base_bef)
392- if ((result == result))
393- then if ((result > minim))
394- then {
395- let hujabra = (result - amountIn)
396- let retu = amountIn
383+ then if ((nb1 >= minim1))
384+ then {
385+ let s2 = if ((p2t == "p"))
386+ then invoke(Address(fromBase58String(p2)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a1), nb1)])
387+ else if ((p2t == "s"))
388+ then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
389+ else if ((p2t == "w"))
390+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
391+ else throw("Unknown pool type")
392+ if ((s2 == s2))
393+ then {
394+ let result = (myBalance(assetIn) - a_base_bef)
395+ if ((result == result))
396+ then if ((result > minim))
397+ then {
398+ let hujabra = (result - amountIn)
399+ let retu = amountIn
397400 [ScriptTransfer(i.caller, retu, assetIn), ScriptTransfer(addressFromPublicKey(abracadbra), hujabra, assetIn)]
398- }
399- else throw(((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
400- else throw("Strict value is not equal to itself.")
401- }
402- else throw("Strict value is not equal to itself.")
403- }
401+ }
402+ else throw(((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
403+ else throw("Strict value is not equal to itself.")
404+ }
405+ else throw("Strict value is not equal to itself.")
406+ }
407+ else throw(((((((("Ooops, REJECT1_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", min: ") + toString(minim)))
404408 else throw("Strict value is not equal to itself.")
405409 }
406410 else throw("Strict value is not equal to itself.")
423427 let assetIn = getAssetId(pmt.assetId)
424428 let amountIn = value(pmt.amount)
425429 let arr = split(d, "|")
426- let $t01392814045 = $Tuple9(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8])
427- let a1 = $t01392814045._1
428- let p1 = $t01392814045._2
429- let p1t = $t01392814045._3
430- let a2 = $t01392814045._4
431- let p2 = $t01392814045._5
432- let p2t = $t01392814045._6
433- let p3 = $t01392814045._7
434- let p3t = $t01392814045._8
435- let m = $t01392814045._9
430+ let $t01457114713 = $Tuple11(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9], arr[10])
431+ let a1 = $t01457114713._1
432+ let p1 = $t01457114713._2
433+ let p1t = $t01457114713._3
434+ let a2 = $t01457114713._4
435+ let p2 = $t01457114713._5
436+ let p2t = $t01457114713._6
437+ let p3 = $t01457114713._7
438+ let p3t = $t01457114713._8
439+ let m = $t01457114713._9
440+ let m1 = $t01457114713._10
441+ let m2 = $t01457114713._11
436442 let minim = parseIntValue(m)
443+ let minim1 = parseIntValue(m1)
444+ let minim2 = parseIntValue(m2)
437445 let a1_bef = myBalance(getAssetBytes(a1))
438446 if ((a1_bef == a1_bef))
439447 then {
451459 then {
452460 let a2_bef = myBalance(getAssetBytes(a2))
453461 if ((a2_bef == a2_bef))
454- then {
455- let s2 = if ((p2t == "p"))
456- then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a1), nb1)])
457- else if ((p2t == "s"))
458- then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
459- else if ((p2t == "w"))
460- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a2, toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
461- else throw("Unknown pool type")
462- if ((s2 == s2))
463- then {
464- let nb2 = (myBalance(getAssetBytes(a2)) - a2_bef)
465- if ((nb2 == nb2))
466- then {
467- let a_base_bef = myBalance(assetIn)
468- if ((a_base_bef == a_base_bef))
469- then {
470- let s3 = if ((p3t == "p"))
471- then invoke(Address(fromBase58String(p3)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a2), nb2)])
472- else if ((p3t == "s"))
473- then invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
474- else if ((p3t == "w"))
475- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a2), nb2)])
476- else throw("Unknown pool type")
477- if ((s3 == s3))
462+ then if ((nb1 >= minim1))
463+ then {
464+ let s2 = if ((p2t == "p"))
465+ then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a1), nb1)])
466+ else if ((p2t == "s"))
467+ then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
468+ else if ((p2t == "w"))
469+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a2, toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
470+ else throw("Unknown pool type")
471+ if ((s2 == s2))
472+ then {
473+ let nb2 = (myBalance(getAssetBytes(a2)) - a2_bef)
474+ if ((nb2 == nb2))
475+ then {
476+ let a_base_bef = myBalance(assetIn)
477+ if ((a_base_bef == a_base_bef))
478+ then if ((nb2 >= minim2))
478479 then {
479- let result = (myBalance(assetIn) - a_base_bef)
480- if ((result == result))
481- then if ((result > minim))
482- then {
483- let hujabra = (result - amountIn)
484- let retu = amountIn
480+ let s3 = if ((p3t == "p"))
481+ then invoke(Address(fromBase58String(p3)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a2), nb2)])
482+ else if ((p3t == "s"))
483+ then invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
484+ else if ((p3t == "w"))
485+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a2), nb2)])
486+ else throw("Unknown pool type")
487+ if ((s3 == s3))
488+ then {
489+ let result = (myBalance(assetIn) - a_base_bef)
490+ if ((result == result))
491+ then if ((result > minim))
492+ then {
493+ let hujabra = (result - amountIn)
494+ let retu = amountIn
485495 [ScriptTransfer(i.caller, retu, assetIn), ScriptTransfer(addressFromPublicKey(abracadbra), hujabra, assetIn)]
486- }
487- else throw(((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", 2: ") + toString(nb2)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
496+ }
497+ else throw(((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", 2: ") + toString(nb2)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
498+ else throw("Strict value is not equal to itself.")
499+ }
488500 else throw("Strict value is not equal to itself.")
489501 }
490- else throw("Strict value is not equal to itself.")
491- }
492- else throw("Strict value is not equal to itself.")
493- }
494- else throw("Strict value is not equal to itself.")
495- }
496- else throw("Strict value is not equal to itself.")
497- }
502+ else throw(((((((((((((("Ooops, REJECT2_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", 2: ") + toString(nb2)) + ", min2: ") + toString(minim2)) + ", out: ") + "0") + ", min: ") + toString(minim)))
503+ else throw("Strict value is not equal to itself.")
504+ }
505+ else throw("Strict value is not equal to itself.")
506+ }
507+ else throw("Strict value is not equal to itself.")
508+ }
509+ else throw(((((((((("Ooops, REJECT1_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", out: ") + "0") + ", min: ") + toString(minim)))
498510 else throw("Strict value is not equal to itself.")
499511 }
500512 else throw("Strict value is not equal to itself.")
517529 let assetIn = getAssetId(pmt.assetId)
518530 let amountIn = value(pmt.amount)
519531 let arr = split(d, "|")
520- let $t01687117027 = $Tuple12(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9], arr[10], arr[11])
521- let a1 = $t01687117027._1
522- let p1 = $t01687117027._2
523- let p1t = $t01687117027._3
524- let a2 = $t01687117027._4
525- let p2 = $t01687117027._5
526- let p2t = $t01687117027._6
527- let a3 = $t01687117027._7
528- let p3 = $t01687117027._8
529- let p3t = $t01687117027._9
530- let p4 = $t01687117027._10
531- let p4t = $t01687117027._11
532- let m = $t01687117027._12
532+ let $t01838118563 = $Tuple14(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9], arr[10], arr[11], arr[12], arr[13])
533+ let a1 = $t01838118563._1
534+ let p1 = $t01838118563._2
535+ let p1t = $t01838118563._3
536+ let a2 = $t01838118563._4
537+ let p2 = $t01838118563._5
538+ let p2t = $t01838118563._6
539+ let a3 = $t01838118563._7
540+ let p3 = $t01838118563._8
541+ let p3t = $t01838118563._9
542+ let p4 = $t01838118563._10
543+ let p4t = $t01838118563._11
544+ let m = $t01838118563._12
545+ let m1 = $t01838118563._13
546+ let m2 = $t01838118563._14
533547 let minim = parseIntValue(m)
548+ let minim1 = parseIntValue(m1)
549+ let minim2 = parseIntValue(m2)
534550 let a1_bef = myBalance(getAssetBytes(a1))
535551 if ((a1_bef == a1_bef))
536552 then {
548564 then {
549565 let a2_bef = myBalance(getAssetBytes(a2))
550566 if ((a2_bef == a2_bef))
551- then {
552- let s2 = if ((p2t == "p"))
553- then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a1), nb1)])
554- else if ((p2t == "s"))
555- then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
556- else if ((p2t == "w"))
557- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a2, toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
558- else throw("Unknown pool type")
559- if ((s2 == s2))
560- then {
561- let nb2 = (myBalance(getAssetBytes(a2)) - a2_bef)
562- if ((nb2 == nb2))
563- then {
564- let a3_bef = myBalance(getAssetBytes(a3))
565- if ((a3_bef == a3_bef))
566- then {
567- let s3 = if ((p3t == "p"))
568- then invoke(Address(fromBase58String(p3)), "swap", [a3, 1], [AttachedPayment(getAssetBytes(a2), nb2)])
569- else if ((p3t == "s"))
570- then invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
571- else if ((p3t == "w"))
572- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a3, toString(this)], [AttachedPayment(getAssetBytes(a2), nb2)])
573- else throw("Unknown pool type")
574- if ((s3 == s3))
567+ then if ((nb1 >= minim1))
568+ then {
569+ let s2 = if ((p2t == "p"))
570+ then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a1), nb1)])
571+ else if ((p2t == "s"))
572+ then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
573+ else if ((p2t == "w"))
574+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a2, toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
575+ else throw("Unknown pool type")
576+ if ((s2 == s2))
577+ then {
578+ let nb2 = (myBalance(getAssetBytes(a2)) - a2_bef)
579+ if ((nb2 == nb2))
580+ then {
581+ let a3_bef = myBalance(getAssetBytes(a3))
582+ if ((a3_bef == a3_bef))
583+ then if ((nb2 >= minim2))
575584 then {
576- let nb3 = (myBalance(getAssetBytes(a3)) - a3_bef)
577- if ((nb3 == nb3))
585+ let s3 = if ((p3t == "p"))
586+ then invoke(Address(fromBase58String(p3)), "swap", [a3, 1], [AttachedPayment(getAssetBytes(a2), nb2)])
587+ else if ((p3t == "s"))
588+ then invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
589+ else if ((p3t == "w"))
590+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a3, toString(this)], [AttachedPayment(getAssetBytes(a2), nb2)])
591+ else throw("Unknown pool type")
592+ if ((s3 == s3))
578593 then {
579- let a_base_bef = myBalance(assetIn)
580- if ((a_base_bef == a_base_bef))
594+ let nb3 = (myBalance(getAssetBytes(a3)) - a3_bef)
595+ if ((nb3 == nb3))
581596 then {
582- let s4 = if ((p4t == "p"))
583- then invoke(Address(fromBase58String(p4)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a3), nb3)])
584- else if ((p4t == "s"))
585- then invoke(Address(fromBase58String(p4)), "exchange", [1], [AttachedPayment(getAssetBytes(a3), nb3)])
586- else if ((p4t == "w"))
587- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a3), nb3)])
588- else throw("Unknown pool type")
589- if ((s4 == s4))
597+ let a_base_bef = myBalance(assetIn)
598+ if ((a_base_bef == a_base_bef))
590599 then {
591- let result = (myBalance(assetIn) - a_base_bef)
592- if ((result == result))
593- then if ((result > minim))
594- then {
595- let hujabra = (result - amountIn)
596- let retu = amountIn
600+ let s4 = if ((p4t == "p"))
601+ then invoke(Address(fromBase58String(p4)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a3), nb3)])
602+ else if ((p4t == "s"))
603+ then invoke(Address(fromBase58String(p4)), "exchange", [1], [AttachedPayment(getAssetBytes(a3), nb3)])
604+ else if ((p4t == "w"))
605+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a3), nb3)])
606+ else throw("Unknown pool type")
607+ if ((s4 == s4))
608+ then {
609+ let result = (myBalance(assetIn) - a_base_bef)
610+ if ((result == result))
611+ then if ((result > minim))
612+ then {
613+ let hujabra = (result - amountIn)
614+ let retu = amountIn
597615 [ScriptTransfer(i.caller, retu, assetIn), ScriptTransfer(addressFromPublicKey(abracadbra), hujabra, assetIn)]
598- }
599- else throw(((((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", 2: ") + toString(nb2)) + ", 3: ") + toString(nb3)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
616+ }
617+ else throw(((((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", 2: ") + toString(nb2)) + ", 3: ") + toString(nb3)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
618+ else throw("Strict value is not equal to itself.")
619+ }
600620 else throw("Strict value is not equal to itself.")
601621 }
602622 else throw("Strict value is not equal to itself.")
605625 }
606626 else throw("Strict value is not equal to itself.")
607627 }
608- else throw("Strict value is not equal to itself.")
609- }
610- else throw("Strict value is not equal to itself.")
611- }
612- else throw("Strict value is not equal to itself.")
613- }
614- else throw("Strict value is not equal to itself.")
615- }
628+ else throw(((((((((((((((("Ooops, REJECT2_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", 2: ") + toString(nb2)) + ", min2: ") + toString(minim2)) + ", 3: ") + "0") + ", out: ") + "0") + ", min: ") + toString(minim)))
629+ else throw("Strict value is not equal to itself.")
630+ }
631+ else throw("Strict value is not equal to itself.")
632+ }
633+ else throw("Strict value is not equal to itself.")
634+ }
635+ else throw(((((((((((((("Ooops, REJECT1_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", 2: ") + "0") + ", 3: ") + "0") + ", out: ") + "0") + ", min: ") + toString(minim)))
616636 else throw("Strict value is not equal to itself.")
617637 }
618638 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 ruler_test = "BgxpCm4wxbW8SKLPKZnf4KU2D6ZU29ov8MgZrkaSAqpY"
55
66 let ruler = "7zNUJBVoPMBCRstP3R1AvxhxrN51SQkn5BMi2iJ9ciAd"
77
88 let ruler2 = "9fe67ewzxtaLozePZ2U3SG71ZQFyGLAXWmmmHREpFeMC"
99
1010 let ruler3 = "Ao2qijQVvvZZSgRzKoYyJ9kBxYjsPQ37CdUppdJtT6V1"
1111
1212 let ruler4 = "3PSK7b6bMf1gBDvjHRbGQ9zGc68UireqBj2eubVi1q5r"
1313
1414 let ruler5 = "66rCv9dfdouqQ3SRG9XrKnRiFmMbwkZQgmhS1ftnCtqm"
1515
1616 let ruler6 = "FeMX6hQaRKsLski77xVHHDGRkj9VuJzmP2MACbAWDjDK"
1717
1818 let ruler7 = "7xDEQ7JZNL1ZLLqcySUb1WWijG1X3GDWG35QxyNqbxxi"
1919
2020 let ruler8 = "GX5k1Cpuhnv9oP9VnWMSXBrJusakU5P3KzqQW5e7Pjgd"
2121
2222 let abracadbra = base58'9wFjTx4rK6ZxfHa3z65BHhP6A7gkZLioxVrD4p2Frjjn'
2323
2424 func vip (kkk) = if (if (if (if (if (if (if (if ((kkk == ruler))
2525 then true
2626 else (kkk == ruler2))
2727 then true
2828 else (kkk == ruler3))
2929 then true
3030 else (kkk == ruler4))
3131 then true
3232 else (kkk == ruler5))
3333 then true
3434 else (kkk == ruler6))
3535 then true
3636 else (kkk == ruler7))
3737 then true
3838 else (kkk == ruler8))
3939 then true
4040 else false
4141
4242
4343 func getAssetId (pmt) = match pmt {
4444 case p: ByteVector =>
4545 pmt
4646 case _ =>
4747 unit
4848 }
4949
5050
5151 func getAssetString (assetId) = match assetId {
5252 case b: ByteVector =>
5353 toBase58String(b)
5454 case _ =>
5555 "WAVES"
5656 }
5757
5858
5959 func getAccBalance (assetId) = if ((assetId == "WAVES"))
6060 then wavesBalance(this).available
6161 else assetBalance(this, fromBase58String(assetId))
6262
6363
6464 func getAssetBytes (assetId) = if ((assetId == "WAVES"))
6565 then unit
6666 else fromBase58String(assetId)
6767
6868
6969 func myBalance (assetId) = match assetId {
7070 case b: ByteVector =>
7171 assetBalance(this, b)
7272 case _ =>
7373 wavesBalance(this).available
7474 }
7575
7676
7777 @Callable(i)
7878 func test () = $Tuple2(nil, "")
7979
8080
8181
8282 @Callable(i)
8383 func fake (a_in,amount,a_out,po,po_ty,wx_lp_asset_id,is_stable) = {
8484 let assetIn = getAssetBytes(a_in)
8585 let amountIn = amount
8686 let putOp = if (is_stable)
8787 then "putOneTknV2"
8888 else "putOneTkn"
8989 let getOp = if (is_stable)
9090 then "getOneTknV2"
9191 else "getOneTkn"
9292 let amount_bef_asset_out = myBalance(getAssetBytes(a_out))
9393 if ((amount_bef_asset_out == amount_bef_asset_out))
9494 then {
9595 let entry1 = if ((po_ty == "p"))
9696 then invoke(Address(fromBase58String(po)), "swap", [a_out, 1], [AttachedPayment(assetIn, amountIn)])
9797 else if ((po_ty == "s"))
9898 then invoke(Address(fromBase58String(po)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
9999 else {
100100 let put = invoke(Address(fromBase58String(po)), putOp, [1, false], [AttachedPayment(assetIn, amountIn)])
101101 if ((put == put))
102102 then {
103103 let wx_lp_asset = getAssetBytes(wx_lp_asset_id)
104104 let lpBalance = myBalance(wx_lp_asset)
105105 if ((lpBalance == lpBalance))
106106 then invoke(Address(fromBase58String(po)), getOp, [a_out, 1], [AttachedPayment(wx_lp_asset, lpBalance)])
107107 else throw("Strict value is not equal to itself.")
108108 }
109109 else throw("Strict value is not equal to itself.")
110110 }
111111 if ((entry1 == entry1))
112112 then {
113113 let amount_after_asset_out = myBalance(getAssetBytes(a_out))
114114 if ((amount_after_asset_out == amount_after_asset_out))
115115 then {
116116 let resu = (amount_after_asset_out - amount_bef_asset_out)
117117 throw(toString(resu))
118118 }
119119 else throw("Strict value is not equal to itself.")
120120 }
121121 else throw("Strict value is not equal to itself.")
122122 }
123123 else throw("Strict value is not equal to itself.")
124124 }
125125
126126
127127
128128 @Callable(i)
129129 func trade_w (a,ao,p1,p1t,wx_lp_asset_id_1,is_stable_1,p2,p2t,min,wx_lp_asset_id_2,is_stable_2) = {
130130 let callerPbk = toBase58String(i.callerPublicKey)
131131 if (!(vip(callerPbk)))
132132 then throw("No-no-no")
133133 else {
134134 let pmt = i.payments[0]
135135 let assetIn = getAssetId(pmt.assetId)
136136 let amountIn = value(pmt.amount)
137137 let amount_bef_asset1 = myBalance(getAssetBytes(a))
138138 if ((amount_bef_asset1 == amount_bef_asset1))
139139 then {
140140 let putOp1 = if (is_stable_1)
141141 then "putOneTknV2"
142142 else "putOneTkn"
143143 let getOp1 = if (is_stable_1)
144144 then "getOneTknV2"
145145 else "getOneTkn"
146146 let putOp2 = if (is_stable_2)
147147 then "putOneTknV2"
148148 else "putOneTkn"
149149 let getOp2 = if (is_stable_2)
150150 then "getOneTknV2"
151151 else "getOneTkn"
152152 let entry1 = if ((p1t == "p"))
153153 then invoke(Address(fromBase58String(p1)), "swap", [a, 1], [AttachedPayment(assetIn, amountIn)])
154154 else if ((p1t == "s"))
155155 then invoke(Address(fromBase58String(p1)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
156156 else {
157157 let put = invoke(Address(fromBase58String(p1)), putOp1, [1, false], [AttachedPayment(assetIn, amountIn)])
158158 if ((put == put))
159159 then {
160160 let wx_lp_asset_1 = getAssetBytes(wx_lp_asset_id_1)
161161 let lpBalance_1 = myBalance(wx_lp_asset_1)
162162 if ((lpBalance_1 == lpBalance_1))
163163 then invoke(Address(fromBase58String(p1)), getOp1, [a, 1], [AttachedPayment(wx_lp_asset_1, lpBalance_1)])
164164 else throw("Strict value is not equal to itself.")
165165 }
166166 else throw("Strict value is not equal to itself.")
167167 }
168168 if ((entry1 == entry1))
169169 then {
170170 let nb = (myBalance(getAssetBytes(a)) - amount_bef_asset1)
171171 if ((nb == nb))
172172 then {
173173 let amount_bef_base_asset = myBalance(getAssetBytes(ao))
174174 if ((amount_bef_base_asset == amount_bef_base_asset))
175175 then {
176176 let entry2 = if ((p2t == "p"))
177177 then invoke(Address(fromBase58String(p2)), "swap", [ao, 1], [AttachedPayment(getAssetBytes(a), nb)])
178178 else if ((p2t == "s"))
179179 then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a), nb)])
180180 else {
181181 let put = invoke(Address(fromBase58String(p2)), putOp2, [1, false], [AttachedPayment(getAssetBytes(a), nb)])
182182 if ((put == put))
183183 then {
184184 let wx_lp_asset_2 = getAssetBytes(wx_lp_asset_id_2)
185185 let lpBalance_2 = myBalance(wx_lp_asset_2)
186186 if ((lpBalance_2 == lpBalance_2))
187187 then invoke(Address(fromBase58String(p2)), getOp2, [ao, 1], [AttachedPayment(wx_lp_asset_2, lpBalance_2)])
188188 else throw("Strict value is not equal to itself.")
189189 }
190190 else throw("Strict value is not equal to itself.")
191191 }
192192 if ((entry2 == entry2))
193193 then {
194194 let nb2 = (myBalance(getAssetBytes(ao)) - amount_bef_base_asset)
195195 if ((nb2 == nb2))
196196 then if ((nb2 > min))
197197 then {
198198 let hujabra = (nb2 - amountIn)
199199 let retu = amountIn
200200 [ScriptTransfer(i.caller, retu, assetIn), ScriptTransfer(addressFromPublicKey(abracadbra), hujabra, assetIn)]
201201 }
202202 else throw(((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb)) + ", out: ") + toString(nb2)) + ", min: ") + toString(min)))
203203 else throw("Strict value is not equal to itself.")
204204 }
205205 else throw("Strict value is not equal to itself.")
206206 }
207207 else throw("Strict value is not equal to itself.")
208208 }
209209 else throw("Strict value is not equal to itself.")
210210 }
211211 else throw("Strict value is not equal to itself.")
212212 }
213213 else throw("Strict value is not equal to itself.")
214214 }
215215 }
216216
217217
218218
219219 @Callable(i)
220220 func triptrade_w (a,a2,p1,p1t,wx_lp_asset_id_1,is_stable_1,p2,p2t,wx_lp_asset_id_2,is_stable_2,p3,p3t,min,wx_lp_asset_id_3,is_stable_3) = {
221221 let callerPbk = toBase58String(i.callerPublicKey)
222222 if (!(vip(callerPbk)))
223223 then throw("No-no-no")
224224 else {
225225 let pmt = i.payments[0]
226226 let assetIn = getAssetId(pmt.assetId)
227227 let amountIn = value(pmt.amount)
228228 let amount_bef_asset1 = myBalance(getAssetBytes(a))
229229 if ((amount_bef_asset1 == amount_bef_asset1))
230230 then {
231231 let putOp1 = if (is_stable_1)
232232 then "putOneTknV2"
233233 else "putOneTkn"
234234 let getOp1 = if (is_stable_1)
235235 then "getOneTknV2"
236236 else "getOneTkn"
237237 let putOp2 = if (is_stable_2)
238238 then "putOneTknV2"
239239 else "putOneTkn"
240240 let getOp2 = if (is_stable_2)
241241 then "getOneTknV2"
242242 else "getOneTkn"
243243 let putOp3 = if (is_stable_3)
244244 then "putOneTknV2"
245245 else "putOneTkn"
246246 let getOp3 = if (is_stable_3)
247247 then "getOneTknV2"
248248 else "getOneTkn"
249249 let entry1 = if ((p1t == "p"))
250250 then invoke(Address(fromBase58String(p1)), "swap", [a, 1], [AttachedPayment(assetIn, amountIn)])
251251 else if ((p1t == "s"))
252252 then invoke(Address(fromBase58String(p1)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
253253 else {
254254 let put1 = invoke(Address(fromBase58String(p1)), putOp1, [1, false], [AttachedPayment(assetIn, amountIn)])
255255 if ((put1 == put1))
256256 then {
257257 let wx_lp_asset_1 = getAssetBytes(wx_lp_asset_id_1)
258258 let lpBalance_1 = myBalance(wx_lp_asset_1)
259259 if ((lpBalance_1 == lpBalance_1))
260260 then invoke(Address(fromBase58String(p1)), getOp1, [a, 1], [AttachedPayment(wx_lp_asset_1, lpBalance_1)])
261261 else throw("Strict value is not equal to itself.")
262262 }
263263 else throw("Strict value is not equal to itself.")
264264 }
265265 if ((entry1 == entry1))
266266 then {
267267 let nb = (myBalance(getAssetBytes(a)) - amount_bef_asset1)
268268 if ((nb == nb))
269269 then {
270270 let amount_bef_asset2 = myBalance(getAssetBytes(a2))
271271 if ((amount_bef_asset2 == amount_bef_asset2))
272272 then {
273273 let entry2 = if ((p2t == "p"))
274274 then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a), nb)])
275275 else if ((p2t == "s"))
276276 then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a), nb)])
277277 else {
278278 let put2 = invoke(Address(fromBase58String(p2)), putOp2, [1, false], [AttachedPayment(getAssetBytes(a), nb)])
279279 if ((put2 == put2))
280280 then {
281281 let wx_lp_asset_2 = getAssetBytes(wx_lp_asset_id_2)
282282 let lpBalance_2 = myBalance(wx_lp_asset_2)
283283 if ((lpBalance_2 == lpBalance_2))
284284 then invoke(Address(fromBase58String(p2)), getOp2, [a2, 1], [AttachedPayment(wx_lp_asset_2, lpBalance_2)])
285285 else throw("Strict value is not equal to itself.")
286286 }
287287 else throw("Strict value is not equal to itself.")
288288 }
289289 if ((entry2 == entry2))
290290 then {
291291 let amount_bef_base_asset = myBalance(assetIn)
292292 if ((amount_bef_base_asset == amount_bef_base_asset))
293293 then {
294294 let nb2 = (myBalance(getAssetBytes(a2)) - amount_bef_asset2)
295295 if ((nb2 == nb2))
296296 then {
297297 let entry3 = if ((p3t == "p"))
298298 then invoke(Address(fromBase58String(p3)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a2), nb2)])
299299 else if ((p3t == "s"))
300300 then invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
301301 else {
302302 let put3 = invoke(Address(fromBase58String(p3)), putOp3, [1, false], [AttachedPayment(getAssetBytes(a2), nb2)])
303303 if ((put3 == put3))
304304 then {
305305 let wx_lp_asset_3 = getAssetBytes(wx_lp_asset_id_3)
306306 let lpBalance_3 = myBalance(wx_lp_asset_3)
307307 if ((lpBalance_3 == lpBalance_3))
308308 then invoke(Address(fromBase58String(p3)), getOp3, [getAssetString(assetIn), 1], [AttachedPayment(wx_lp_asset_3, lpBalance_3)])
309309 else throw("Strict value is not equal to itself.")
310310 }
311311 else throw("Strict value is not equal to itself.")
312312 }
313313 if ((entry3 == entry3))
314314 then {
315315 let nb3 = (myBalance(assetIn) - amount_bef_base_asset)
316316 if ((nb3 == nb3))
317317 then if ((nb3 > min))
318318 then {
319319 let hujabra = (nb3 - amountIn)
320320 let retu = amountIn
321321 [ScriptTransfer(i.caller, retu, assetIn), ScriptTransfer(addressFromPublicKey(abracadbra), hujabra, assetIn)]
322322 }
323323 else throw(((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb)) + ", 2: ") + toString(nb2)) + ", out: ") + toString(nb3)) + ", min: ") + toString(min)))
324324 else throw("Strict value is not equal to itself.")
325325 }
326326 else throw("Strict value is not equal to itself.")
327327 }
328328 else throw("Strict value is not equal to itself.")
329329 }
330330 else throw("Strict value is not equal to itself.")
331331 }
332332 else throw("Strict value is not equal to itself.")
333333 }
334334 else throw("Strict value is not equal to itself.")
335335 }
336336 else throw("Strict value is not equal to itself.")
337337 }
338338 else throw("Strict value is not equal to itself.")
339339 }
340340 else throw("Strict value is not equal to itself.")
341341 }
342342 }
343343
344344
345345
346346 @Callable(i)
347347 func a (d) = {
348348 let callerPbk = toBase58String(i.callerPublicKey)
349349 if (!(vip(callerPbk)))
350350 then throw("No-no-no")
351351 else {
352352 let pmt = i.payments[0]
353353 let assetIn = getAssetId(pmt.assetId)
354354 let amountIn = value(pmt.amount)
355355 let arr = split(d, "|")
356- let $t01174311823 = $Tuple6(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5])
357- let a1 = $t01174311823._1
358- let p1 = $t01174311823._2
359- let p1t = $t01174311823._3
360- let p2 = $t01174311823._4
361- let p2t = $t01174311823._5
362- let m = $t01174311823._6
356+ let $t01201812110 = $Tuple7(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6])
357+ let a1 = $t01201812110._1
358+ let p1 = $t01201812110._2
359+ let p1t = $t01201812110._3
360+ let p2 = $t01201812110._4
361+ let p2t = $t01201812110._5
362+ let m = $t01201812110._6
363+ let m1 = $t01201812110._7
363364 let minim = parseIntValue(m)
365+ let minim1 = parseIntValue(m1)
364366 let a1_bef = myBalance(getAssetBytes(a1))
365367 if ((a1_bef == a1_bef))
366368 then {
367369 let s1 = if ((p1t == "p"))
368370 then invoke(Address(fromBase58String(p1)), "swap", [a1, 1], [AttachedPayment(assetIn, amountIn)])
369371 else if ((p1t == "s"))
370372 then invoke(Address(fromBase58String(p1)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
371373 else if ((p1t == "w"))
372374 then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a1, toString(this)], [AttachedPayment(assetIn, amountIn)])
373375 else throw("Unknown pool type")
374376 if ((s1 == s1))
375377 then {
376378 let nb1 = (myBalance(getAssetBytes(a1)) - a1_bef)
377379 if ((nb1 == nb1))
378380 then {
379381 let a_base_bef = myBalance(assetIn)
380382 if ((a_base_bef == a_base_bef))
381- then {
382- let s2 = if ((p2t == "p"))
383- then invoke(Address(fromBase58String(p2)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a1), nb1)])
384- else if ((p2t == "s"))
385- then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
386- else if ((p2t == "w"))
387- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
388- else throw("Unknown pool type")
389- if ((s2 == s2))
390- then {
391- let result = (myBalance(assetIn) - a_base_bef)
392- if ((result == result))
393- then if ((result > minim))
394- then {
395- let hujabra = (result - amountIn)
396- let retu = amountIn
383+ then if ((nb1 >= minim1))
384+ then {
385+ let s2 = if ((p2t == "p"))
386+ then invoke(Address(fromBase58String(p2)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a1), nb1)])
387+ else if ((p2t == "s"))
388+ then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
389+ else if ((p2t == "w"))
390+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
391+ else throw("Unknown pool type")
392+ if ((s2 == s2))
393+ then {
394+ let result = (myBalance(assetIn) - a_base_bef)
395+ if ((result == result))
396+ then if ((result > minim))
397+ then {
398+ let hujabra = (result - amountIn)
399+ let retu = amountIn
397400 [ScriptTransfer(i.caller, retu, assetIn), ScriptTransfer(addressFromPublicKey(abracadbra), hujabra, assetIn)]
398- }
399- else throw(((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
400- else throw("Strict value is not equal to itself.")
401- }
402- else throw("Strict value is not equal to itself.")
403- }
401+ }
402+ else throw(((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
403+ else throw("Strict value is not equal to itself.")
404+ }
405+ else throw("Strict value is not equal to itself.")
406+ }
407+ else throw(((((((("Ooops, REJECT1_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", min: ") + toString(minim)))
404408 else throw("Strict value is not equal to itself.")
405409 }
406410 else throw("Strict value is not equal to itself.")
407411 }
408412 else throw("Strict value is not equal to itself.")
409413 }
410414 else throw("Strict value is not equal to itself.")
411415 }
412416 }
413417
414418
415419
416420 @Callable(i)
417421 func b (d) = {
418422 let callerPbk = toBase58String(i.callerPublicKey)
419423 if (!(vip(callerPbk)))
420424 then throw("No-no-no")
421425 else {
422426 let pmt = i.payments[0]
423427 let assetIn = getAssetId(pmt.assetId)
424428 let amountIn = value(pmt.amount)
425429 let arr = split(d, "|")
426- let $t01392814045 = $Tuple9(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8])
427- let a1 = $t01392814045._1
428- let p1 = $t01392814045._2
429- let p1t = $t01392814045._3
430- let a2 = $t01392814045._4
431- let p2 = $t01392814045._5
432- let p2t = $t01392814045._6
433- let p3 = $t01392814045._7
434- let p3t = $t01392814045._8
435- let m = $t01392814045._9
430+ let $t01457114713 = $Tuple11(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9], arr[10])
431+ let a1 = $t01457114713._1
432+ let p1 = $t01457114713._2
433+ let p1t = $t01457114713._3
434+ let a2 = $t01457114713._4
435+ let p2 = $t01457114713._5
436+ let p2t = $t01457114713._6
437+ let p3 = $t01457114713._7
438+ let p3t = $t01457114713._8
439+ let m = $t01457114713._9
440+ let m1 = $t01457114713._10
441+ let m2 = $t01457114713._11
436442 let minim = parseIntValue(m)
443+ let minim1 = parseIntValue(m1)
444+ let minim2 = parseIntValue(m2)
437445 let a1_bef = myBalance(getAssetBytes(a1))
438446 if ((a1_bef == a1_bef))
439447 then {
440448 let s1 = if ((p1t == "p"))
441449 then invoke(Address(fromBase58String(p1)), "swap", [a1, 1], [AttachedPayment(assetIn, amountIn)])
442450 else if ((p1t == "s"))
443451 then invoke(Address(fromBase58String(p1)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
444452 else if ((p1t == "w"))
445453 then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a1, toString(this)], [AttachedPayment(assetIn, amountIn)])
446454 else throw("Unknown pool type")
447455 if ((s1 == s1))
448456 then {
449457 let nb1 = (myBalance(getAssetBytes(a1)) - a1_bef)
450458 if ((nb1 == nb1))
451459 then {
452460 let a2_bef = myBalance(getAssetBytes(a2))
453461 if ((a2_bef == a2_bef))
454- then {
455- let s2 = if ((p2t == "p"))
456- then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a1), nb1)])
457- else if ((p2t == "s"))
458- then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
459- else if ((p2t == "w"))
460- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a2, toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
461- else throw("Unknown pool type")
462- if ((s2 == s2))
463- then {
464- let nb2 = (myBalance(getAssetBytes(a2)) - a2_bef)
465- if ((nb2 == nb2))
466- then {
467- let a_base_bef = myBalance(assetIn)
468- if ((a_base_bef == a_base_bef))
469- then {
470- let s3 = if ((p3t == "p"))
471- then invoke(Address(fromBase58String(p3)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a2), nb2)])
472- else if ((p3t == "s"))
473- then invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
474- else if ((p3t == "w"))
475- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a2), nb2)])
476- else throw("Unknown pool type")
477- if ((s3 == s3))
462+ then if ((nb1 >= minim1))
463+ then {
464+ let s2 = if ((p2t == "p"))
465+ then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a1), nb1)])
466+ else if ((p2t == "s"))
467+ then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
468+ else if ((p2t == "w"))
469+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a2, toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
470+ else throw("Unknown pool type")
471+ if ((s2 == s2))
472+ then {
473+ let nb2 = (myBalance(getAssetBytes(a2)) - a2_bef)
474+ if ((nb2 == nb2))
475+ then {
476+ let a_base_bef = myBalance(assetIn)
477+ if ((a_base_bef == a_base_bef))
478+ then if ((nb2 >= minim2))
478479 then {
479- let result = (myBalance(assetIn) - a_base_bef)
480- if ((result == result))
481- then if ((result > minim))
482- then {
483- let hujabra = (result - amountIn)
484- let retu = amountIn
480+ let s3 = if ((p3t == "p"))
481+ then invoke(Address(fromBase58String(p3)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a2), nb2)])
482+ else if ((p3t == "s"))
483+ then invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
484+ else if ((p3t == "w"))
485+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a2), nb2)])
486+ else throw("Unknown pool type")
487+ if ((s3 == s3))
488+ then {
489+ let result = (myBalance(assetIn) - a_base_bef)
490+ if ((result == result))
491+ then if ((result > minim))
492+ then {
493+ let hujabra = (result - amountIn)
494+ let retu = amountIn
485495 [ScriptTransfer(i.caller, retu, assetIn), ScriptTransfer(addressFromPublicKey(abracadbra), hujabra, assetIn)]
486- }
487- else throw(((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", 2: ") + toString(nb2)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
496+ }
497+ else throw(((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", 2: ") + toString(nb2)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
498+ else throw("Strict value is not equal to itself.")
499+ }
488500 else throw("Strict value is not equal to itself.")
489501 }
490- else throw("Strict value is not equal to itself.")
491- }
492- else throw("Strict value is not equal to itself.")
493- }
494- else throw("Strict value is not equal to itself.")
495- }
496- else throw("Strict value is not equal to itself.")
497- }
502+ else throw(((((((((((((("Ooops, REJECT2_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", 2: ") + toString(nb2)) + ", min2: ") + toString(minim2)) + ", out: ") + "0") + ", min: ") + toString(minim)))
503+ else throw("Strict value is not equal to itself.")
504+ }
505+ else throw("Strict value is not equal to itself.")
506+ }
507+ else throw("Strict value is not equal to itself.")
508+ }
509+ else throw(((((((((("Ooops, REJECT1_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", out: ") + "0") + ", min: ") + toString(minim)))
498510 else throw("Strict value is not equal to itself.")
499511 }
500512 else throw("Strict value is not equal to itself.")
501513 }
502514 else throw("Strict value is not equal to itself.")
503515 }
504516 else throw("Strict value is not equal to itself.")
505517 }
506518 }
507519
508520
509521
510522 @Callable(i)
511523 func c (d) = {
512524 let callerPbk = toBase58String(i.callerPublicKey)
513525 if (!(vip(callerPbk)))
514526 then throw("No-no-no")
515527 else {
516528 let pmt = i.payments[0]
517529 let assetIn = getAssetId(pmt.assetId)
518530 let amountIn = value(pmt.amount)
519531 let arr = split(d, "|")
520- let $t01687117027 = $Tuple12(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9], arr[10], arr[11])
521- let a1 = $t01687117027._1
522- let p1 = $t01687117027._2
523- let p1t = $t01687117027._3
524- let a2 = $t01687117027._4
525- let p2 = $t01687117027._5
526- let p2t = $t01687117027._6
527- let a3 = $t01687117027._7
528- let p3 = $t01687117027._8
529- let p3t = $t01687117027._9
530- let p4 = $t01687117027._10
531- let p4t = $t01687117027._11
532- let m = $t01687117027._12
532+ let $t01838118563 = $Tuple14(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9], arr[10], arr[11], arr[12], arr[13])
533+ let a1 = $t01838118563._1
534+ let p1 = $t01838118563._2
535+ let p1t = $t01838118563._3
536+ let a2 = $t01838118563._4
537+ let p2 = $t01838118563._5
538+ let p2t = $t01838118563._6
539+ let a3 = $t01838118563._7
540+ let p3 = $t01838118563._8
541+ let p3t = $t01838118563._9
542+ let p4 = $t01838118563._10
543+ let p4t = $t01838118563._11
544+ let m = $t01838118563._12
545+ let m1 = $t01838118563._13
546+ let m2 = $t01838118563._14
533547 let minim = parseIntValue(m)
548+ let minim1 = parseIntValue(m1)
549+ let minim2 = parseIntValue(m2)
534550 let a1_bef = myBalance(getAssetBytes(a1))
535551 if ((a1_bef == a1_bef))
536552 then {
537553 let s1 = if ((p1t == "p"))
538554 then invoke(Address(fromBase58String(p1)), "swap", [a1, 1], [AttachedPayment(assetIn, amountIn)])
539555 else if ((p1t == "s"))
540556 then invoke(Address(fromBase58String(p1)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
541557 else if ((p1t == "w"))
542558 then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a1, toString(this)], [AttachedPayment(assetIn, amountIn)])
543559 else throw("Unknown pool type")
544560 if ((s1 == s1))
545561 then {
546562 let nb1 = (myBalance(getAssetBytes(a1)) - a1_bef)
547563 if ((nb1 == nb1))
548564 then {
549565 let a2_bef = myBalance(getAssetBytes(a2))
550566 if ((a2_bef == a2_bef))
551- then {
552- let s2 = if ((p2t == "p"))
553- then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a1), nb1)])
554- else if ((p2t == "s"))
555- then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
556- else if ((p2t == "w"))
557- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a2, toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
558- else throw("Unknown pool type")
559- if ((s2 == s2))
560- then {
561- let nb2 = (myBalance(getAssetBytes(a2)) - a2_bef)
562- if ((nb2 == nb2))
563- then {
564- let a3_bef = myBalance(getAssetBytes(a3))
565- if ((a3_bef == a3_bef))
566- then {
567- let s3 = if ((p3t == "p"))
568- then invoke(Address(fromBase58String(p3)), "swap", [a3, 1], [AttachedPayment(getAssetBytes(a2), nb2)])
569- else if ((p3t == "s"))
570- then invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
571- else if ((p3t == "w"))
572- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a3, toString(this)], [AttachedPayment(getAssetBytes(a2), nb2)])
573- else throw("Unknown pool type")
574- if ((s3 == s3))
567+ then if ((nb1 >= minim1))
568+ then {
569+ let s2 = if ((p2t == "p"))
570+ then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a1), nb1)])
571+ else if ((p2t == "s"))
572+ then invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a1), nb1)])
573+ else if ((p2t == "w"))
574+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a2, toString(this)], [AttachedPayment(getAssetBytes(a1), nb1)])
575+ else throw("Unknown pool type")
576+ if ((s2 == s2))
577+ then {
578+ let nb2 = (myBalance(getAssetBytes(a2)) - a2_bef)
579+ if ((nb2 == nb2))
580+ then {
581+ let a3_bef = myBalance(getAssetBytes(a3))
582+ if ((a3_bef == a3_bef))
583+ then if ((nb2 >= minim2))
575584 then {
576- let nb3 = (myBalance(getAssetBytes(a3)) - a3_bef)
577- if ((nb3 == nb3))
585+ let s3 = if ((p3t == "p"))
586+ then invoke(Address(fromBase58String(p3)), "swap", [a3, 1], [AttachedPayment(getAssetBytes(a2), nb2)])
587+ else if ((p3t == "s"))
588+ then invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
589+ else if ((p3t == "w"))
590+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, a3, toString(this)], [AttachedPayment(getAssetBytes(a2), nb2)])
591+ else throw("Unknown pool type")
592+ if ((s3 == s3))
578593 then {
579- let a_base_bef = myBalance(assetIn)
580- if ((a_base_bef == a_base_bef))
594+ let nb3 = (myBalance(getAssetBytes(a3)) - a3_bef)
595+ if ((nb3 == nb3))
581596 then {
582- let s4 = if ((p4t == "p"))
583- then invoke(Address(fromBase58String(p4)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a3), nb3)])
584- else if ((p4t == "s"))
585- then invoke(Address(fromBase58String(p4)), "exchange", [1], [AttachedPayment(getAssetBytes(a3), nb3)])
586- else if ((p4t == "w"))
587- then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a3), nb3)])
588- else throw("Unknown pool type")
589- if ((s4 == s4))
597+ let a_base_bef = myBalance(assetIn)
598+ if ((a_base_bef == a_base_bef))
590599 then {
591- let result = (myBalance(assetIn) - a_base_bef)
592- if ((result == result))
593- then if ((result > minim))
594- then {
595- let hujabra = (result - amountIn)
596- let retu = amountIn
600+ let s4 = if ((p4t == "p"))
601+ then invoke(Address(fromBase58String(p4)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a3), nb3)])
602+ else if ((p4t == "s"))
603+ then invoke(Address(fromBase58String(p4)), "exchange", [1], [AttachedPayment(getAssetBytes(a3), nb3)])
604+ else if ((p4t == "w"))
605+ then invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [1, getAssetString(assetIn), toString(this)], [AttachedPayment(getAssetBytes(a3), nb3)])
606+ else throw("Unknown pool type")
607+ if ((s4 == s4))
608+ then {
609+ let result = (myBalance(assetIn) - a_base_bef)
610+ if ((result == result))
611+ then if ((result > minim))
612+ then {
613+ let hujabra = (result - amountIn)
614+ let retu = amountIn
597615 [ScriptTransfer(i.caller, retu, assetIn), ScriptTransfer(addressFromPublicKey(abracadbra), hujabra, assetIn)]
598- }
599- else throw(((((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", 2: ") + toString(nb2)) + ", 3: ") + toString(nb3)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
616+ }
617+ else throw(((((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", 2: ") + toString(nb2)) + ", 3: ") + toString(nb3)) + ", out: ") + toString(result)) + ", min: ") + toString(minim)))
618+ else throw("Strict value is not equal to itself.")
619+ }
600620 else throw("Strict value is not equal to itself.")
601621 }
602622 else throw("Strict value is not equal to itself.")
603623 }
604624 else throw("Strict value is not equal to itself.")
605625 }
606626 else throw("Strict value is not equal to itself.")
607627 }
608- else throw("Strict value is not equal to itself.")
609- }
610- else throw("Strict value is not equal to itself.")
611- }
612- else throw("Strict value is not equal to itself.")
613- }
614- else throw("Strict value is not equal to itself.")
615- }
628+ else throw(((((((((((((((("Ooops, REJECT2_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", 2: ") + toString(nb2)) + ", min2: ") + toString(minim2)) + ", 3: ") + "0") + ", out: ") + "0") + ", min: ") + toString(minim)))
629+ else throw("Strict value is not equal to itself.")
630+ }
631+ else throw("Strict value is not equal to itself.")
632+ }
633+ else throw("Strict value is not equal to itself.")
634+ }
635+ else throw(((((((((((((("Ooops, REJECT1_in: " + toString(amountIn)) + ", 1: ") + toString(nb1)) + ", min1: ") + toString(minim1)) + ", 2: ") + "0") + ", 3: ") + "0") + ", out: ") + "0") + ", min: ") + toString(minim)))
616636 else throw("Strict value is not equal to itself.")
617637 }
618638 else throw("Strict value is not equal to itself.")
619639 }
620640 else throw("Strict value is not equal to itself.")
621641 }
622642 else throw("Strict value is not equal to itself.")
623643 }
624644 }
625645
626646
627647 @Verifier(tx)
628648 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
629649

github/deemru/w8io/786bc32 
118.34 ms