tx · BENDQ4yDNTxnTX3TqTXTDHr8XNPt4EDzri3Sb22iVfYC

3PBbLJcBjLWUZZrFFUk5s53TdTUneHXDc7e:  -0.01800000 Waves

2023.11.26 10:09 [3925928] smart account 3PBbLJcBjLWUZZrFFUk5s53TdTUneHXDc7e > SELF 0.00000000 Waves

{ "type": 13, "id": "BENDQ4yDNTxnTX3TqTXTDHr8XNPt4EDzri3Sb22iVfYC", "fee": 1800000, "feeAssetId": null, "timestamp": 1700982559427, "version": 2, "chainId": 87, "sender": "3PBbLJcBjLWUZZrFFUk5s53TdTUneHXDc7e", "senderPublicKey": "qv5sHFvV7GyNRm1A2r8BR9oX2nhkc1yNa1QfWLkaja8", "proofs": [ "2FbuyuvNtmBmGBoJxhgfefcVu7kiQcLLcRn5quAS9FqeJytb7Q9fuqa7SnKWgCPDB8axEtmbnD4GZTK15AFZ7gaf" ], "script": "base64:BgIdCAISABIAEgASABIAEgASABIDCgEBEgQKAggBEgBTAQ10cnlHZXRJbnRlZ2VyAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABDHRyeUdldFN0cmluZwIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIAAAJkOACAwtcvAANkMTYJAGgCBQJkOAUCZDgAC3VubG9ja0Jsb2NrCQBoAgAeAKALAApoZWlyUHViS2V5ASAaFa4tDyIv1uhzDfwRR/IHtg7qNN7P3pYq2N1IFBp+EAAMdW5sb2NrQmxvY2syCQBoAgBaAKALABJQdXp6bGVNYXN0ZXJQdWJLZXkBIDs1TW4/n774VJyWRAeAVqsv4hNgRcR78j8XQ/RCBSZdAAxrZXlBY3RpdmF0ZWQCFUFjdGl2YXRlZCBibG9ja2hlaWdodAASa2V5U3VycGx1c1JlY2VpdmVkAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzABNrZXlXYXZlbGV0c1JlY2VpdmVkAiB0b3RhbCBXQVZFUyByZWNlaXZlZCBpbiB3YXZlbGV0cwAVa2V5V2F2ZWxldHNSZWNlaXZlZEJUAil0b3RhbCB3YXZlbGV0cyByZWNlaXZlZCBmb3IgYmFzZSB0cmVhc3VyeQASa2V5V2F2ZWxldHNQYWlkT3V0AiB0b3RhbCBXQVZFUyBwYWlkIG91dCBpbiB3YXZlbGV0cwAGa2V5Uk9JAhBST0kgYmFzaXMgcG9pbnRzABZrZXlXaGlybHBvb2xJc3N1ZVByaWNlAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMAEGJ1cm54dG5QUFRwb29sSWQBGgFX9UZoJ4ANaN9OJnV6tKHTKDHgCb/1eXk3AAxwcm9qZWN0T3duZXIBGgFXjh3mUco4I87DkcPEVovVg9NviFb/Nt0LAA93aGlybHBvb2xQb29sSWQBGgFXCUhUqJi1/8xKRtsS/UvJkxlGN0OYh9fNAAl3aGlybHBvb2wBIAnOgNqkhGEBAxbRwocUXSVMmBXtucPLIo6Y3v+QralHAA93aGlybHBvb2xTdHJpbmcJANgEAQEgWeON3MK1I7pKFNzE0K8UCeZk5gS+JQYLJk7lUG2XWccABXdhdmVzAQQTq9kzAAd1c2R0ZXJjASCE2nqyCAM/TtG7yo7ui5O8yYLdC136B5ao1CP5qA//uQAHdXNkY2VyYwEg8b90j2kCa66vzjuwb/Nd8MVKoTFsVrfc+ipKoeuRGkkAB3VzZHRic2MBIIeFKhRdvRvgacOk2tYbd0/cBQSbrAXfQbCvgMBJMOmiAAd1c2RjYnNjASAvN5TEMA7UHoYvTQ14Xf3kXkI8Q97mJBxq1GB3huvltQAHYnVybnh0bgEgJE91eWp+Mzm4+wz/hKlxXF7KLd4zoMRdafnqRBHsTFQAA2V0aAEgJR76/9ghyXCe+8C03j63q4aeBTtm79wH/FHj9agzKHIAA2JuYgEgS7ep4jwDLeZJ/TwoM/wRUkbi6v6x+mu9cBafRBfVHhwABHdidGMBIBKeo3EHNGSP6mN2enCiK9cwBs75vPQVGctmd0xybol/AARidGNiASDIlsraYoy6SPYFNHcPBbtsEP/v2GRaY5157d4CGOemoQAEZWFzdAEgVoJP4wutz64pn/F3h50Vd/r+QUj98n3dRjyfnx8R03QABnN0ZWFzdAEg4Tj7DL+1BlqSS0fgEtOD/O7RI9SQqBlxFRrcq0CylDYABnN3YXZlcwEgCB/I9xYw7VHCKRvsrBqP/JBxHFk4LeshgbA3QfBF0UoABHN1cmYBIJLR9EriEQEr9H7q3iGOPcX7yfJ9zoey7VIZ8DpOJFj1AAtwb29sYm9vc3RTQwEaAVdJth4Q36ANT9jV0A+j44S32V46KbMRqawAB1BMX01haW4JAQdBZGRyZXNzAQEaAVcglFxKrc/0SDk7iECzv9vujFCgp2rP2ugAB1BMX0RlZmkJAQdBZGRyZXNzAQEaAVcZCzuPP83F9QBSQ7jrpozIrL8UOTE+JL4ABlBMX0xvdwkBB0FkZHJlc3MBARoBV65gFNJmcAzwP9x0xdJ05hq+qeBSweoLkAAKRUFTVF9zdGFrZQkBB0FkZHJlc3MBARoBVwh0qdnDd/GCffeig0jz65uzT/yIPOsXbwANV1hfV0FWRVNfRUFTVAkBB0FkZHJlc3MBARoBV7XCP+dwv1AcUXW5CmJm9PY+3NzVnaTo1AAMU1dBVkVTX3N0YWtlCQEHQWRkcmVzcwEBGgFXfcl7kxR5/+dR8bFKx2/5ah2AlUfPWCN+AAxXWF9FVEhfV0FWRVMJAQdBZGRyZXNzAQEaAVcLgNUSD01KXiUxquVDz7RZ2COjQ9sP68EAC3dhdmVzSW5Qb29sCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUQYnVybnh0blBQVHBvb2xJZAkArAICCQCsAgICB2dsb2JhbF8JANgEAQUFd2F2ZXMCCF9iYWxhbmNlAAxwcm9qZWN0U3Rha2UJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBRBidXJueHRuUFBUcG9vbElkCQCsAgIJAKUIAQUEdGhpcwIMX2luZGV4U3Rha2VkAAp0b3RhbFN0YWtlCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUQYnVybnh0blBQVHBvb2xJZAIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQBCFBMX3ZhbHVlAgtkQXBwQWRkcmVzcwVhc3NldAkAawMJAQ10cnlHZXRJbnRlZ2VyAgULZEFwcEFkZHJlc3MJAKwCAgkArAICCQClCAEFBHRoaXMCCl9zdXBwbGllZF8JANgEAQUFYXNzZXQJAQ10cnlHZXRJbnRlZ2VyAgULZEFwcEFkZHJlc3MJAKwCAgkA2AQBBQVhc3NldAIGX3NSYXRlBQNkMTYBCF9sb2FkSW50AgRrZXlfCGRlZmF1bHRfBAckbWF0Y2gwCQCaCAIFDFNXQVZFU19zdGFrZQUEa2V5XwMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEFCGRlZmF1bHRfAQtfbG9hZEJpZ0ludAIEa2V5XwhkZWZhdWx0XwQHJG1hdGNoMAkAnAgCBQxTV0FWRVNfc3Rha2UFBGtleV8DCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAkAngMBBQFhBQhkZWZhdWx0XwAIbGFzdFJhdGUJAQtfbG9hZEJpZ0ludAICCUxBU1RfUkFURQkAtgIBAICglKWNHQALY3VycmVudFJhdGUJAQtfbG9hZEJpZ0ludAICDENVUlJFTlRfUkFURQkAtgIBAAAACmxhc3RIZWlnaHQJAQhfbG9hZEludAICC0xBU1RfSEVJR0hUAAAADHRhcmdldEhlaWdodAkAlwMBCQDMCAIJAQhfbG9hZEludAICDVRBUkdFVF9IRUlHSFQAAAkAzAgCBQZoZWlnaHQFA25pbAAPbGFzdFJhdGVVcGRhdGVkCQC3AgIFCGxhc3RSYXRlCQC5AgIFC2N1cnJlbnRSYXRlCQC2AgEJAGUCBQx0YXJnZXRIZWlnaHQFCmxhc3RIZWlnaHQACmJhc2VBbW91bnQJAKADAQkAvQIECQC2AgEJAPAHAgUNV1hfV0FWRVNfRUFTVAUGc3dhdmVzBQ9sYXN0UmF0ZVVwZGF0ZWQJALYCAQCAoJSljR0FBUZMT09SAAtiYXNlQW1vdW50MgkAoAMBCQC9AgQJALYCAQkA8AcCBQxXWF9FVEhfV0FWRVMFBnN3YXZlcwUPbGFzdFJhdGVVcGRhdGVkCQC2AgEAgKCUpY0dBQVGTE9PUgAJd2F2ZXNJbldYCQBkAggJAO8HAQUNV1hfV0FWRVNfRUFTVAdyZWd1bGFyBQpiYXNlQW1vdW50AAhlYXN0SW5XWAkA8AcCBQ1XWF9XQVZFU19FQVNUBQRlYXN0AAl3YXZlc0Vhc3QJAGsDCQBoAgUCZDgAZAUIZWFzdEluV1gFCXdhdmVzSW5XWAAKd2F2ZXMySW5XWAkAZAIICQDvBwEFDFdYX0VUSF9XQVZFUwdyZWd1bGFyBQtiYXNlQW1vdW50MgAHZXRoSW5XWAkA8AcCBQxXWF9FVEhfV0FWRVMFA2V0aAAIZXRoV2F2ZXMJAGsDBQJkOAUKd2F2ZXMySW5XWAUHZXRoSW5XWAAQd2F2ZXNJbldoaXJscG9vbAkBDXRyeUdldEludGVnZXICCQEHQWRkcmVzcwEFD3doaXJscG9vbFBvb2xJZAkArAICCQCsAgICB2dsb2JhbF8JANgEAQUFd2F2ZXMCCF9iYWxhbmNlABB3aGlybEluV2hpcmxwb29sCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUPd2hpcmxwb29sUG9vbElkCQCsAgIJAKwCAgIHZ2xvYmFsXwUPd2hpcmxwb29sU3RyaW5nAghfYmFsYW5jZQARcHJvamVjdFN0YWtlV2hpcmwJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQ93aGlybHBvb2xQb29sSWQJAKwCAgkApQgBBQR0aGlzAgxfaW5kZXhTdGFrZWQAD3RvdGFsU3Rha2VXaGlybAkBDXRyeUdldEludGVnZXICCQEHQWRkcmVzcwEFD3doaXJscG9vbFBvb2xJZAIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQADXN0RWFzdEluV2F2ZXMJAGgCCQBrAwkAaQIJAG4ECQDwBwIFBHRoaXMFBnN0ZWFzdAkBDXRyeUdldEludGVnZXICBQpFQVNUX3N0YWtlAgglc19fcmF0ZQCAoJSljR0FCEhBTEZFVkVOAGQFAmQ4BQl3YXZlc0Vhc3QAZAANZWFzdEluU3Rha2luZwkAaQIJAG4ECQDwBwIFBHRoaXMFBnN0ZWFzdAkBDXRyeUdldEludGVnZXICBQpFQVNUX3N0YWtlAgglc19fcmF0ZQCAoJSljR0FCEhBTEZFVkVOAGQADWtleVZhdWx0QXNzZXQJAQx0cnlHZXRTdHJpbmcCCQEHQWRkcmVzcwEBGgFX2uOuefvK+c/jAzQhEVGadt14ZVxGW3IYCQCsAgIJAKwCAgIPJXMlcyVzX192YXVsdF9fCQClCAEFBHRoaXMCB19fV0FWRVMAC1dBVkVTaW5FQVNUCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgkAtQkCBQ1rZXlWYXVsdEFzc2V0AgJfXwACAAtkQXBwYWRkcmVzcwkBB0FkZHJlc3MBARoBV6/jkM1C/fh9Eb9nLjCmpdUnA6Fup99jWQAJRVRIYXRva2VuCQENdHJ5R2V0SW50ZWdlcgIFC2RBcHBhZGRyZXNzCQCsAgIJAKUIAQUEdGhpcwIOX2FUb2tlbkJhbGFuY2UADkVUSGF0b2tlblRvdGFsCQENdHJ5R2V0SW50ZWdlcgIFC2RBcHBhZGRyZXNzAhFhVG9rZW5DaXJjdWxhdGlvbgAKcmVzZXJ2ZVN0cgkBDHRyeUdldFN0cmluZwIFC2RBcHBhZGRyZXNzAhFyZXNlcnZlR2xvYmFsRGF0YQAHZ2V0MVN0cgkAkQMCCQC1CQIFCnJlc2VydmVTdHICAXwAAQAIc3RyVG9JbnQJAQ1wYXJzZUludFZhbHVlAQUHZ2V0MVN0cgAPRVRIdG90YWxSZXNlcnZlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgkAtQkCCQEMdHJ5R2V0U3RyaW5nAgULZEFwcGFkZHJlc3MCEXJlc2VydmVHbG9iYWxEYXRhAgF8AAEACkVUSGluVmlyZXMJAGsDBQlFVEhhdG9rZW4FD0VUSHRvdGFsUmVzZXJ2ZQUORVRIYXRva2VuVG90YWwAEkVUSGluVmlyZXNXYXZlbGV0cwkAawMFCkVUSGluVmlyZXMFCGV0aFdhdmVzBQJkOAAKdHZsSW5XYXZlcwkAZAIJAGQCCQBrAwkAaAIFC3dhdmVzSW5Qb29sAAoFDHByb2plY3RTdGFrZQUKdG90YWxTdGFrZQkAawMJAGgCBRB3YXZlc0luV2hpcmxwb29sAAoFEXByb2plY3RTdGFrZVdoaXJsBQ90b3RhbFN0YWtlV2hpcmwFEkVUSGluVmlyZXNXYXZlbGV0cwAHdG90YWxCVAULV0FWRVNpbkVBU1QADXRvdGFsVHJlYXN1cnkJAGQCBQd0b3RhbEJUBQp0dmxJbldhdmVzAA93aGlybHBvb2xTdXBwbHkEByRtYXRjaDAJAOwHAQUJd2hpcmxwb29sAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAgFBWFzc2V0CHF1YW50aXR5CQACAQIQQ2FuJ3QgZmluZCBhc3NldAAFcHJpY2UDCQBnAgkAZAIJAGsDCQBkAgUKdHZsSW5XYXZlcwkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQFAmQ4BQ93aGlybHBvb2xTdXBwbHkFAmQ4CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFFmtleVdoaXJscG9vbElzc3VlUHJpY2UJAGQCCQBrAwkAZAIFCnR2bEluV2F2ZXMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5U3VycGx1c1JlY2VpdmVkBQJkOAUPd2hpcmxwb29sU3VwcGx5BQJkOAkBDXRyeUdldEludGVnZXICBQR0aGlzBRZrZXlXaGlybHBvb2xJc3N1ZVByaWNlCgFpARVidXlXSElSTFBPT0x3aXRoV0FWRVMABBZXaGlybHBvb2xCYWxhbmNlQmVmb3JlCQDwBwIFBHRoaXMFCXdoaXJscG9vbAMJAAACBRZXaGlybHBvb2xCYWxhbmNlQmVmb3JlBRZXaGlybHBvb2xCYWxhbmNlQmVmb3JlBANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQHc3VycGx1cwkAawMJAGUCBQVwcmljZQUCZDgIBQNwbXQGYW1vdW50BQJkOAQLSXNzdWVBbW91bnQDCQBnAggFA3BtdAZhbW91bnQJAGsDCAUDcG10BmFtb3VudAUCZDgFBXByaWNlCQBrAwgFA3BtdAZhbW91bnQFAmQ4BQVwcmljZQkAAgECMHBsZWFzZSBjb250YWN0IHByb2plY3Qgb3duZXI6IGlzc3VlIGFtb3VudCBlcnJvcgQNY2xlYW5BbW91bnRJbgkAZQIIBQNwbXQGYW1vdW50CQBrAwgFA3BtdAZhbW91bnQAyAEAkE4ECUFtb3VudE91dAkAbgQFEHdoaXJsSW5XaGlybHBvb2wJAGUCCQBoAgUCZDgFAmQ4CQCgAwEJAHYGCQC9AgQJALYCAQUQd2F2ZXNJbldoaXJscG9vbAkAtgIBCQBoAgUCZDgFAmQ4CQC2AgEJAGQCBRB3YXZlc0luV2hpcmxwb29sBQ1jbGVhbkFtb3VudEluBQZIQUxGVVAAEAkAtgIBCQBrAwCgjQYAkE4AoPc2AAQAEAUHQ0VJTElORwkAaAIFAmQ4BQJkOAUERE9XTgMJAGYCCQBpAgUCZDgAFAgFA3BtdAZhbW91bnQJAAIBAhptaW5pbXVtIHBheW1lbnQgMC4wNSBXQVZFUwMJAQIhPQIIBQNwbXQHYXNzZXRJZAUEdW5pdAkAAgECF2F0dGFjaCBXQVZFUyB0b2tlbiBvbmx5BANidXkDCQBmAgUJQW1vdW50T3V0BQtJc3N1ZUFtb3VudAkA/AcECQEHQWRkcmVzcwEFD3doaXJscG9vbFBvb2xJZAIEc3dhcAkAzAgCBQ93aGlybHBvb2xTdHJpbmcJAMwIAgkAZAIFC0lzc3VlQW1vdW50AAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAgFA3BtdAZhbW91bnQFA25pbAUEdW5pdAMJAAACBQNidXkFA2J1eQQVV2hpcmxwb29sQmFsYW5jZUFmdGVyCQDwBwIFBHRoaXMFCXdoaXJscG9vbAQRV2hpcmxwb29sRnJvbVN3YXAJAGUCBRVXaGlybHBvb2xCYWxhbmNlQWZ0ZXIFFldoaXJscG9vbEJhbGFuY2VCZWZvcmUJAMwIAgkBB1JlaXNzdWUDBQl3aGlybHBvb2wDCQBnAgULSXNzdWVBbW91bnQFCUFtb3VudE91dAULSXNzdWVBbW91bnQAAAYJAMwIAgMJAGYCBQlBbW91bnRPdXQFC0lzc3VlQW1vdW50CQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFEVdoaXJscG9vbEZyb21Td2FwBQl3aGlybHBvb2wJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULSXNzdWVBbW91bnQFCXdoaXJscG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUWa2V5V2hpcmxwb29sSXNzdWVQcmljZQUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIDCQBmAgUJQW1vdW50T3V0BQtJc3N1ZUFtb3VudAIVcHJpY2UgV0hJUkxQT09ML1dBVkVTAiBXSElSTFBPT0wvV0FWRVMgbWlkIG1hcmtldCBwcmljZQMJAGYCBQlBbW91bnRPdXQFC0lzc3VlQW1vdW50CQBrAwUCZDgIBQNwbXQGYW1vdW50BRFXaGlybHBvb2xGcm9tU3dhcAkAawMFAmQ4CQBoAgUQd2F2ZXNJbldoaXJscG9vbAAJBRB3aGlybEluV2hpcmxwb29sCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRNrZXlXYXZlbGV0c1JlY2VpdmVkAwkAZwIFC0lzc3VlQW1vdW50BQlBbW91bnRPdXQJAGQCCAUDcG10BmFtb3VudAkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlXYXZlbGV0c1JlY2VpdmVkCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFE2tleVdhdmVsZXRzUmVjZWl2ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleVdhdmVsZXRzUmVjZWl2ZWQDCQBnAgULSXNzdWVBbW91bnQFCUFtb3VudE91dAkAZAIJAGUCCAUDcG10BmFtb3VudAUHc3VycGx1cwkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlXYXZlbGV0c1JlY2VpdmVkCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFE2tleVdhdmVsZXRzUmVjZWl2ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFEmtleVN1cnBsdXNSZWNlaXZlZAMJAGYCBQlBbW91bnRPdXQFC0lzc3VlQW1vdW50CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQJAGQCBQdzdXJwbHVzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARVwcmljZUFuZFRyZWFzdXJ5U3RhdHMACQDMCAIJAQxJbnRlZ2VyRW50cnkCAg9FVEgvV0FWRVMgcHJpY2UFCGV0aFdhdmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZCVCBXQVZFUyBpbiBFQVNUIHZhdWx0BQtXQVZFU2luRUFTVAkAzAgCCQEMSW50ZWdlckVudHJ5AgIiU1QgQlVSTi1YVE4geCBQZXBlVGVhbSBpbiB3YXZlbGV0cwkAawMJAGgCBQt3YXZlc0luUG9vbAAKBQxwcm9qZWN0U3Rha2UFCnRvdGFsU3Rha2UJAMwIAgkBDEludGVnZXJFbnRyeQICHFNUIFdISVJMUE9PTCBBTU0gaW4gd2F2ZWxldHMJAGsDCQBoAgUQd2F2ZXNJbldoaXJscG9vbAAKBRFwcm9qZWN0U3Rha2VXaGlybAUPdG90YWxTdGFrZVdoaXJsCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgdTVCB2RVRIBQpFVEhpblZpcmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhNTVCB2RVRIIGluIHdhdmVsZXRzBRJFVEhpblZpcmVzV2F2ZWxldHMJAMwIAgkBDEludGVnZXJFbnRyeQICFFRvdGFsIFNUIGluIHdhdmVsZXRzBQp0dmxJbldhdmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRZrZXlXaGlybHBvb2xJc3N1ZVByaWNlBQVwcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIgV0hJUkxQT09ML1dBVkVTIG1pZCBtYXJrZXQgcHJpY2UJAGsDBQJkOAkAaAIFEHdhdmVzSW5XaGlybHBvb2wACQUQd2hpcmxJbldoaXJscG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgIWV0hJUkxQT09MIHRvdGFsIHN1cHBseQUPd2hpcmxwb29sU3VwcGx5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAg5Ub3RhbCB0cmVhc3VyeQUNdG90YWxUcmVhc3VyeQkAzAgCCQEMSW50ZWdlckVudHJ5AgINTkFWIFdISVJMUE9PTAkAawMFAmQ4BQ10b3RhbFRyZWFzdXJ5BQ93aGlybHBvb2xTdXBwbHkJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleVdhdmVsZXRzUmVjZWl2ZWQJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUTa2V5V2F2ZWxldHNSZWNlaXZlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5U3VycGx1c1JlY2VpdmVkCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVN1cnBsdXNSZWNlaXZlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUTa2V5V2F2ZWxldHNSZWNlaXZlZAkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlXYXZlbGV0c1JlY2VpdmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJrZXlXYXZlbGV0c1BhaWRPdXQJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2F2ZWxldHNQYWlkT3V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhR0b3RhbCBXQVZFUyByZWNlaXZlZAkAaQIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUTa2V5V2F2ZWxldHNSZWNlaXZlZAUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQICF1RvdGFsIHRyZWFzdXJ5IGluIFdBVkVTCQBpAgUNdG90YWxUcmVhc3VyeQUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQICGXN1cnBsdXMgcmVjZWl2ZWQgaW4gV0FWRVMJAGkCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVN1cnBsdXNSZWNlaXZlZAUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQICJnRvdGFsIFdBVkVTIHJlY2VpdmVkIGZvciBiYXNlIHRyZWFzdXJ5CQBpAgkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlXYXZlbGV0c1JlY2VpdmVkBQJkOAkAzAgCCQEMSW50ZWdlckVudHJ5AgIddG90YWwgV0FWRVMgcGFpZCBvdXQgaW4gV0FWRVMJAGkCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVdhdmVsZXRzUGFpZE91dAUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQIFBmtleVJPSQkBDXRyeUdldEludGVnZXICBQR0aGlzBQZrZXlST0kFA25pbAFpAQxib29zdFBvb2xBUFkAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQHYmFsYW5jZQMJAGYCBQJkOAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBAhBub3QgZW5vdWdoIFdBVkVTCQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4BAdib29zdDgwCQBrAwUHYmFsYW5jZQBQAGQDCQAAAgUHYm9vc3Q4MAUHYm9vc3Q4MAQLYW1vdW50Qm9vc3QJAGsDBQdib29zdDgwAFAAZAMJAAACBQthbW91bnRCb29zdAULYW1vdW50Qm9vc3QEC2Ftb3VudE93bmVyCQBrAwUHYm9vc3Q4MAAUAGQDCQAAAgULYW1vdW50T3duZXIFC2Ftb3VudE93bmVyBAVib29zdAkA/AcECQEHQWRkcmVzcwEFC3Bvb2xib29zdFNDAgthZGRCb29zdGluZwkAzAgCCQDYBAEFD3doaXJscG9vbFBvb2xJZAkAzAgCAAcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAULYW1vdW50Qm9vc3QFA25pbAMJAAACBQVib29zdAUFYm9vc3QJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQxwcm9qZWN0T3duZXIFC2Ftb3VudE93bmVyBQR1bml0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJrZXlXYXZlbGV0c1BhaWRPdXQJAGQCBQthbW91bnRCb29zdAkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlXYXZlbGV0c1BhaWRPdXQJAMwIAgkBDEludGVnZXJFbnRyeQIFBmtleVJPSQkAawMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2F2ZWxldHNQYWlkT3V0AJBOCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFE2tleVdhdmVsZXRzUmVjZWl2ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFDGtleUFjdGl2YXRlZAUGaGVpZ2h0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQYm9vc3RQb29sQVBZX2FsbAADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAdiYWxhbmNlAwkAZgIFAmQ4CAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkAAgECEG5vdCBlbm91Z2ggV0FWRVMJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgEC2Ftb3VudEJvb3N0CQBrAwUHYmFsYW5jZQBQAGQDCQAAAgULYW1vdW50Qm9vc3QFC2Ftb3VudEJvb3N0BAthbW91bnRPd25lcgkAawMFB2JhbGFuY2UAFABkAwkAAAIFC2Ftb3VudE93bmVyBQthbW91bnRPd25lcgQFYm9vc3QJAPwHBAkBB0FkZHJlc3MBBQtwb29sYm9vc3RTQwILYWRkQm9vc3RpbmcJAMwIAgkA2AQBBQ93aGlybHBvb2xQb29sSWQJAMwIAgAHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFC2Ftb3VudEJvb3N0BQNuaWwDCQAAAgUFYm9vc3QFBWJvb3N0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUMcHJvamVjdE93bmVyBQthbW91bnRPd25lcgUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5V2F2ZWxldHNQYWlkT3V0CQBkAgULYW1vdW50Qm9vc3QJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2F2ZWxldHNQYWlkT3V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQZrZXlST0kJAGsDCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVdhdmVsZXRzUGFpZE91dACQTgkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlXYXZlbGV0c1JlY2VpdmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrZXlBY3RpdmF0ZWQFBmhlaWdodAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBD3RyYW5zZmVyUG9vbEFQWQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAdiYWxhbmNlAwkAZgIFAmQ4CAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkAAgECEG5vdCBlbm91Z2ggV0FWRVMJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgEB2Jvb3N0ODAJAGsDBQdiYWxhbmNlAFAAZAMJAAACBQdib29zdDgwBQdib29zdDgwBAthbW91bnRCb29zdAkAawMFB2Jvb3N0ODAAUABkAwkAAAIFC2Ftb3VudEJvb3N0BQthbW91bnRCb29zdAQLYW1vdW50T3duZXIJAGsDBQdib29zdDgwABQAZAMJAAACBQthbW91bnRPd25lcgULYW1vdW50T3duZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQ93aGlybHBvb2xQb29sSWQFC2Ftb3VudEJvb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUMcHJvamVjdE93bmVyBQthbW91bnRPd25lcgUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5V2F2ZWxldHNQYWlkT3V0CQBkAgULYW1vdW50Qm9vc3QJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2F2ZWxldHNQYWlkT3V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQZrZXlST0kJAGsDCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVdhdmVsZXRzUGFpZE91dACQTgkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlXYXZlbGV0c1JlY2VpdmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrZXlBY3RpdmF0ZWQFBmhlaWdodAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3RyYW5zZmVyUG9vbEFQWV9hbGwAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQHYmFsYW5jZQMJAGYCBQJkOAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBAhBub3QgZW5vdWdoIFdBVkVTCQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4BAthbW91bnRCb29zdAkAawMFB2JhbGFuY2UAUABkAwkAAAIFC2Ftb3VudEJvb3N0BQthbW91bnRCb29zdAQLYW1vdW50T3duZXIJAGsDBQdiYWxhbmNlABQAZAMJAAACBQthbW91bnRPd25lcgULYW1vdW50T3duZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQ93aGlybHBvb2xQb29sSWQFC2Ftb3VudEJvb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUMcHJvamVjdE93bmVyBQthbW91bnRPd25lcgUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5V2F2ZWxldHNQYWlkT3V0CQBkAgULYW1vdW50Qm9vc3QJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2F2ZWxldHNQYWlkT3V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQZrZXlST0kJAGsDCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVdhdmVsZXRzUGFpZE91dACQTgkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlXYXZlbGV0c1JlY2VpdmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrZXlBY3RpdmF0ZWQFBmhlaWdodAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3Bvb2xPbmVUb2tlblN1cnBsdXMAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQNc3VycGx1c0Ftb3VudAkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQEE1Bvb2xPbmVUb2tlblN1cnBsdXMJAPwHBAkBB0FkZHJlc3MBARoBV/0lw71OYZRB77peEmOPxTlvSbWIOvXpbQIhZ2VuZXJhdGVJbmRleFdpdGhPbmVUb2tlbkFuZFN0YWtlCQDMCAIJANgEAQUQYnVybnh0blBQVHBvb2xJZAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQ1zdXJwbHVzQW1vdW50BQNuaWwDCQAAAgUTUG9vbE9uZVRva2VuU3VycGx1cwUTUG9vbE9uZVRva2VuU3VycGx1cwkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5U3VycGx1c1JlY2VpdmVkCQBlAgkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQFDXN1cnBsdXNBbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9zdXJwbHVzSW52ZXN0ZWQBC2Ftb3VudFdBVkVTAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQOaW52ZXN0ZWRBbW91bnQJAGgCBQthbW91bnRXQVZFUwUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQIFEmtleVN1cnBsdXNSZWNlaXZlZAkAZQIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5U3VycGx1c1JlY2VpdmVkBQ5pbnZlc3RlZEFtb3VudAUDbmlsAWkBEmNoYW5nZUludGVnZXJFbnRyeQIJa2V5U3RyaW5nB2ludGVnZXIDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlrZXlTdHJpbmcFB2ludGVnZXIFA25pbAFpAQlhY3RpdmF0ZWQAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQITeW91IGFyZSBub3QgYWxsb3dlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUMa2V5QWN0aXZhdGVkBQZoZWlnaHQFA25pbAECdHgBBnZlcmlmeQADCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BgMJAGYCCQBkAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUMa2V5QWN0aXZhdGVkBQt1bmxvY2tCbG9jawUGaGVpZ2h0BwMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCmhlaXJQdWJLZXkGAwkAZgIJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQxrZXlBY3RpdmF0ZWQFDHVubG9ja0Jsb2NrMgUGaGVpZ2h0BwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUSUHV6emxlTWFzdGVyUHViS2V5niSApA==", "height": 3925928, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 79Ch1ZbnU36vBpAxTEe9gWdvZodXYMDBhu4aTiLbPRc3 Next: BfjixFRijMbyFrua6ujJpJH7BoZ2hW1Ks42VKdBYqKtB Diff:
OldNewDifferences
224224 let aS = if ((aQ.amount >= fraction(aQ.amount, g, aN)))
225225 then fraction(aQ.amount, g, aN)
226226 else throw("please contact project owner: issue amount error")
227- let aT = ((aQ.amount - aR) / 3)
228- let aU = (aQ.amount - fraction(aQ.amount, 200, 10000))
229- let aV = fraction(at, ((g * g) - toInt(pow(fraction(toBigInt(as), toBigInt((g * g)), toBigInt((as + aU)), HALFUP), 16, toBigInt(fraction(100000, 10000, 900000)), 4, 16, CEILING))), (g * g), DOWN)
230- if ((aQ.assetId != unit))
231- then throw("attach WAVES token only")
232- else {
233- let aW = if ((aV > aS))
234- then invoke(Address(v), "swap", [x, (aS + 1)], [AttachedPayment(unit, aQ.amount)])
235- else unit
236- if ((aW == aW))
237- then {
238- let aX = assetBalance(this, w)
239- let aY = (aX - aP)
240-[Reissue(w, if ((aS >= aV))
241- then aS
242- else 0, true), if ((aV > aS))
243- then ScriptTransfer(aO.caller, aY, w)
244- else ScriptTransfer(aO.caller, aS, w), IntegerEntry(s, aN), IntegerEntry(if ((aV > aS))
245- then "price WHIRLPOOL/WAVES"
246- else "WHIRLPOOL/WAVES mid market price", if ((aV > aS))
247- then fraction(g, aQ.amount, aY)
248- else fraction(g, (as * 9), at)), IntegerEntry(o, if ((aS >= aV))
249- then (aQ.amount + a(this, o))
250- else a(this, o)), IntegerEntry(o, if ((aS >= aV))
251- then ((aQ.amount - aR) + a(this, o))
252- else a(this, o)), IntegerEntry(n, if ((aV > aS))
253- then getIntegerValue(this, n)
254- else (aR + getIntegerValue(this, n)))]
255- }
256- else throw("Strict value is not equal to itself.")
257- }
227+ let aT = (aQ.amount - fraction(aQ.amount, 200, 10000))
228+ let aU = fraction(at, ((g * g) - toInt(pow(fraction(toBigInt(as), toBigInt((g * g)), toBigInt((as + aT)), HALFUP), 16, toBigInt(fraction(100000, 10000, 900000)), 4, 16, CEILING))), (g * g), DOWN)
229+ if (((g / 20) > aQ.amount))
230+ then throw("minimum payment 0.05 WAVES")
231+ else if ((aQ.assetId != unit))
232+ then throw("attach WAVES token only")
233+ else {
234+ let aV = if ((aU > aS))
235+ then invoke(Address(v), "swap", [x, (aS + 1)], [AttachedPayment(unit, aQ.amount)])
236+ else unit
237+ if ((aV == aV))
238+ then {
239+ let aW = assetBalance(this, w)
240+ let aX = (aW - aP)
241+[Reissue(w, if ((aS >= aU))
242+ then aS
243+ else 0, true), if ((aU > aS))
244+ then ScriptTransfer(aO.caller, aX, w)
245+ else ScriptTransfer(aO.caller, aS, w), IntegerEntry(s, aN), IntegerEntry(if ((aU > aS))
246+ then "price WHIRLPOOL/WAVES"
247+ else "WHIRLPOOL/WAVES mid market price", if ((aU > aS))
248+ then fraction(g, aQ.amount, aX)
249+ else fraction(g, (as * 9), at)), IntegerEntry(o, if ((aS >= aU))
250+ then (aQ.amount + a(this, o))
251+ else a(this, o)), IntegerEntry(o, if ((aS >= aU))
252+ then ((aQ.amount - aR) + a(this, o))
253+ else a(this, o)), IntegerEntry(n, if ((aU > aS))
254+ then getIntegerValue(this, n)
255+ else (aR + getIntegerValue(this, n)))]
256+ }
257+ else throw("Strict value is not equal to itself.")
258+ }
258259 }
259260 else throw("Strict value is not equal to itself.")
260261 }
270271 func boostPoolAPY () = if ((aO.caller != this))
271272 then throw("access only by project owner")
272273 else {
273- let aZ = if ((g > wavesBalance(this).available))
274+ let aY = if ((g > wavesBalance(this).available))
274275 then throw("not enough WAVES")
275276 else (wavesBalance(this).available - g)
276- let ba = fraction(aZ, 80, 100)
277- if ((ba == ba))
277+ let aZ = fraction(aY, 80, 100)
278+ if ((aZ == aZ))
278279 then {
279- let bb = fraction(ba, 80, 100)
280- if ((bb == bb))
280+ let ba = fraction(aZ, 80, 100)
281+ if ((ba == ba))
281282 then {
282- let bc = fraction(ba, 20, 100)
283- if ((bc == bc))
283+ let bb = fraction(aZ, 20, 100)
284+ if ((bb == bb))
284285 then {
285- let bd = invoke(Address(M), "addBoosting", [toBase58String(v), 7], [AttachedPayment(unit, bb)])
286- if ((bd == bd))
287- then [ScriptTransfer(Address(u), bc, unit), IntegerEntry(q, (bb + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
286+ let bc = invoke(Address(M), "addBoosting", [toBase58String(v), 7], [AttachedPayment(unit, ba)])
287+ if ((bc == bc))
288+ then [ScriptTransfer(Address(u), bb, unit), IntegerEntry(q, (ba + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
288289 else throw("Strict value is not equal to itself.")
289290 }
290291 else throw("Strict value is not equal to itself.")
300301 func boostPoolAPY_all () = if ((aO.caller != this))
301302 then throw("access only by project owner")
302303 else {
303- let aZ = if ((g > wavesBalance(this).available))
304+ let aY = if ((g > wavesBalance(this).available))
304305 then throw("not enough WAVES")
305306 else (wavesBalance(this).available - g)
306- let bb = fraction(aZ, 80, 100)
307- if ((bb == bb))
307+ let ba = fraction(aY, 80, 100)
308+ if ((ba == ba))
308309 then {
309- let bc = fraction(aZ, 20, 100)
310- if ((bc == bc))
310+ let bb = fraction(aY, 20, 100)
311+ if ((bb == bb))
311312 then {
312- let bd = invoke(Address(M), "addBoosting", [toBase58String(v), 7], [AttachedPayment(unit, bb)])
313- if ((bd == bd))
314- then [ScriptTransfer(Address(u), bc, unit), IntegerEntry(q, (bb + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
313+ let bc = invoke(Address(M), "addBoosting", [toBase58String(v), 7], [AttachedPayment(unit, ba)])
314+ if ((bc == bc))
315+ then [ScriptTransfer(Address(u), bb, unit), IntegerEntry(q, (ba + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
315316 else throw("Strict value is not equal to itself.")
316317 }
317318 else throw("Strict value is not equal to itself.")
325326 func transferPoolAPY () = if ((aO.caller != this))
326327 then throw("access only by project owner")
327328 else {
328- let aZ = if ((g > wavesBalance(this).available))
329+ let aY = if ((g > wavesBalance(this).available))
329330 then throw("not enough WAVES")
330331 else (wavesBalance(this).available - g)
331- let ba = fraction(aZ, 80, 100)
332- if ((ba == ba))
332+ let aZ = fraction(aY, 80, 100)
333+ if ((aZ == aZ))
333334 then {
334- let bb = fraction(ba, 80, 100)
335- if ((bb == bb))
335+ let ba = fraction(aZ, 80, 100)
336+ if ((ba == ba))
336337 then {
337- let bc = fraction(ba, 20, 100)
338- if ((bc == bc))
339- then [ScriptTransfer(Address(v), bb, unit), ScriptTransfer(Address(u), bc, unit), IntegerEntry(q, (bb + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
338+ let bb = fraction(aZ, 20, 100)
339+ if ((bb == bb))
340+ then [ScriptTransfer(Address(v), ba, unit), ScriptTransfer(Address(u), bb, unit), IntegerEntry(q, (ba + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
340341 else throw("Strict value is not equal to itself.")
341342 }
342343 else throw("Strict value is not equal to itself.")
350351 func transferPoolAPY_all () = if ((aO.caller != this))
351352 then throw("access only by project owner")
352353 else {
353- let aZ = if ((g > wavesBalance(this).available))
354+ let aY = if ((g > wavesBalance(this).available))
354355 then throw("not enough WAVES")
355356 else (wavesBalance(this).available - g)
356- let bb = fraction(aZ, 80, 100)
357- if ((bb == bb))
357+ let ba = fraction(aY, 80, 100)
358+ if ((ba == ba))
358359 then {
359- let bc = fraction(aZ, 20, 100)
360- if ((bc == bc))
361- then [ScriptTransfer(Address(v), bb, unit), ScriptTransfer(Address(u), bc, unit), IntegerEntry(q, (bb + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
360+ let bb = fraction(aY, 20, 100)
361+ if ((bb == bb))
362+ then [ScriptTransfer(Address(v), ba, unit), ScriptTransfer(Address(u), bb, unit), IntegerEntry(q, (ba + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
362363 else throw("Strict value is not equal to itself.")
363364 }
364365 else throw("Strict value is not equal to itself.")
370371 func poolOneTokenSurplus () = if ((aO.caller != this))
371372 then throw("access only by project owner")
372373 else {
373- let be = a(this, n)
374- let bf = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [toBase58String(t)], [AttachedPayment(unit, be)])
375- if ((bf == bf))
376- then [IntegerEntry(n, (a(this, n) - be))]
374+ let bd = a(this, n)
375+ let be = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [toBase58String(t)], [AttachedPayment(unit, bd)])
376+ if ((be == be))
377+ then [IntegerEntry(n, (a(this, n) - bd))]
377378 else throw("Strict value is not equal to itself.")
378379 }
379380
380381
381382
382383 @Callable(aO)
383-func surplusInvested (bg) = if ((aO.caller != this))
384+func surplusInvested (bf) = if ((aO.caller != this))
384385 then throw("access only by project owner")
385386 else {
386- let bh = (bg * g)
387-[IntegerEntry(n, (a(this, n) - bh))]
387+ let bg = (bf * g)
388+[IntegerEntry(n, (a(this, n) - bg))]
388389 }
389390
390391
391392
392393 @Callable(aO)
393-func changeIntegerEntry (bi,bj) = if ((aO.caller != this))
394+func changeIntegerEntry (bh,bi) = if ((aO.caller != this))
394395 then throw("access only by project owner")
395- else [IntegerEntry(bi, bj)]
396+ else [IntegerEntry(bh, bi)]
396397
397398
398399
402403 else [IntegerEntry(m, height)]
403404
404405
405-@Verifier(bk)
406-func bl () = if (sigVerify(bk.bodyBytes, bk.proofs[0], bk.senderPublicKey))
406+@Verifier(bj)
407+func bk () = if (sigVerify(bj.bodyBytes, bj.proofs[0], bj.senderPublicKey))
407408 then true
408409 else if (((getIntegerValue(this, m) + i) > height))
409410 then false
410- else if (sigVerify(bk.bodyBytes, bk.proofs[0], j))
411+ else if (sigVerify(bj.bodyBytes, bj.proofs[0], j))
411412 then true
412413 else if (((getIntegerValue(this, m) + k) > height))
413414 then false
414- else sigVerify(bk.bodyBytes, bk.proofs[0], l)
415+ else sigVerify(bj.bodyBytes, bj.proofs[0], l)
415416
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = {
55 let d = getInteger(b, c)
66 if ($isInstanceOf(d, "Int"))
77 then {
88 let e = d
99 e
1010 }
1111 else 0
1212 }
1313
1414
1515 func f (b,c) = {
1616 let d = getString(b, c)
1717 if ($isInstanceOf(d, "String"))
1818 then {
1919 let e = d
2020 e
2121 }
2222 else ""
2323 }
2424
2525
2626 let g = 100000000
2727
2828 let h = (g * g)
2929
3030 let i = (30 * 1440)
3131
3232 let j = base58'2kpmuzw1ZbrtgAN3BrR7vbEW1XrJoJKCstL7mf7XNf2P'
3333
3434 let k = (90 * 1440)
3535
3636 let l = base58'4z8CKSYQBKkzx7PBb5uBP1YPa6YAHRNTApW1sQVHT5eU'
3737
3838 let m = "Activated blockheight"
3939
4040 let n = "surplus received in wavelets"
4141
4242 let o = "total WAVES received in wavelets"
4343
4444 let p = "total wavelets received for base treasury"
4545
4646 let q = "total WAVES paid out in wavelets"
4747
4848 let r = "ROI basis points"
4949
5050 let s = "WHIRLPOOL issue price in wavelets"
5151
5252 let t = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx'
5353
5454 let u = base58'3PEtLVxDT8mxAh1SDAn8m7JTGNkdpkaFxBk'
5555
5656 let v = base58'3P2myTbd5zpEHcYmNpdWTp5gXS5B8tL1RCY'
5757
5858 let w = base58'fHJWWsh2hZAc4Atv8VRhKy3jNbHLeMwQMsLpdaBY51Y'
5959
6060 let x = toBase58String(base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi')
6161
6262 let y = base58'WAVES'
6363
6464 let z = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
6565
6666 let A = base58'HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW'
6767
6868 let B = base58'A81p1LTRyoq2rDR2TNxB2dWYxsiNwCSSi8sXef2SEkwb'
6969
7070 let C = base58'4BKKSp6NoNcrFHyorZogDyctq1fq6w7114Ym1pw6HUtC'
7171
7272 let D = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns'
7373
7474 let E = base58'3VuV5WTmDz47Dmdn3QpcYjzbSdipjQE4JMdNe1xZpX13'
7575
7676 let F = base58'66a1br3BrkoaJgP7yEar9hJcSTvJPoH6PYBLqscXcMGo'
7777
7878 let G = base58'2Fge5HEBRD3XTeg7Xg3FW5yiB9HVJFQtMXiWMQo72Up6'
7979
8080 let H = base58'EW1uGLVo21Wd9i2Rhq8o4VKDTCQTGCGXE8DqayHGrLg8'
8181
8282 let I = base58'6phK22ztGBW127gUFmdMEHKB3CVd6ZhWox2WtwJkbqTq'
8383
8484 let J = base58'GAB8JowY9UANZ4TQy2TzJyhxjPqXX3DUrb2cdMWrrJus'
8585
8686 let K = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7'
8787
8888 let L = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
8989
9090 let M = base58'3P8eeDzUnoDNbQjW617pAe76cEUDQsP1m1V'
9191
9292 let N = Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH')
9393
9494 let O = Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X')
9595
9696 let P = Address(base58'3PHpuQUPVUoR3AYzFeJzeWJfYLsLTmWssVH')
9797
9898 let Q = Address(base58'3P2hbtheN5apNppqqUK7L7qAwmRFXy91CNa')
9999
100100 let R = Address(base58'3PJVwjfi2fF5Jv9AauayU6xLxrYBn8bpGH1')
101101
102102 let S = Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV')
103103
104104 let T = Address(base58'3P2yiVnK48evTLr8MAZWavpE4WA4fw1weQg')
105105
106106 let U = a(Address(t), (("global_" + toBase58String(y)) + "_balance"))
107107
108108 let V = a(Address(t), (toString(this) + "_indexStaked"))
109109
110110 let W = a(Address(t), "global_poolToken_amount")
111111
112112 func X (Y,Z) = fraction(a(Y, ((toString(this) + "_supplied_") + toBase58String(Z))), a(Y, (toBase58String(Z) + "_sRate")), h)
113113
114114
115115 func aa (ab,ac) = {
116116 let d = getInteger(S, ab)
117117 if ($isInstanceOf(d, "Int"))
118118 then {
119119 let ad = d
120120 ad
121121 }
122122 else ac
123123 }
124124
125125
126126 func ae (ab,ac) = {
127127 let d = getBinary(S, ab)
128128 if ($isInstanceOf(d, "ByteVector"))
129129 then {
130130 let ad = d
131131 toBigInt(ad)
132132 }
133133 else ac
134134 }
135135
136136
137137 let af = ae("LAST_RATE", toBigInt(1000000000000))
138138
139139 let ag = ae("CURRENT_RATE", toBigInt(0))
140140
141141 let ah = aa("LAST_HEIGHT", 0)
142142
143143 let ai = min([aa("TARGET_HEIGHT", 0), height])
144144
145145 let aj = (af + (ag * toBigInt((ai - ah))))
146146
147147 let ak = toInt(fraction(toBigInt(assetBalance(R, K)), aj, toBigInt(1000000000000), FLOOR))
148148
149149 let al = toInt(fraction(toBigInt(assetBalance(T, K)), aj, toBigInt(1000000000000), FLOOR))
150150
151151 let am = (wavesBalance(R).regular + ak)
152152
153153 let an = assetBalance(R, I)
154154
155155 let ao = fraction((g * 100), an, am)
156156
157157 let ap = (wavesBalance(T).regular + al)
158158
159159 let aq = assetBalance(T, E)
160160
161161 let ar = fraction(g, ap, aq)
162162
163163 let as = a(Address(v), (("global_" + toBase58String(y)) + "_balance"))
164164
165165 let at = a(Address(v), (("global_" + x) + "_balance"))
166166
167167 let au = a(Address(v), (toString(this) + "_indexStaked"))
168168
169169 let av = a(Address(v), "global_poolToken_amount")
170170
171171 let aw = (fraction((fraction(assetBalance(this, J), a(Q, "%s__rate"), 1000000000000, HALFEVEN) / 100), g, ao) * 100)
172172
173173 let ax = (fraction(assetBalance(this, J), a(Q, "%s__rate"), 1000000000000, HALFEVEN) / 100)
174174
175175 let ay = f(Address(base58'3PMtGnf3LXiEG6isDQLq1xMDKUqjQGqNHLb'), (("%s%s%s__vault__" + toString(this)) + "__WAVES"))
176176
177177 let az = parseIntValue(split(ay, "__")[2])
178178
179179 let aA = Address(base58'3PHxubMUtynEY2AeHq3K1kUizRPN9HUC2rt')
180180
181181 let aB = a(aA, (toString(this) + "_aTokenBalance"))
182182
183183 let aC = a(aA, "aTokenCirculation")
184184
185185 let aD = f(aA, "reserveGlobalData")
186186
187187 let aE = split(aD, "|")[1]
188188
189189 let aF = parseIntValue(aE)
190190
191191 let aG = parseIntValue(split(f(aA, "reserveGlobalData"), "|")[1])
192192
193193 let aH = fraction(aB, aG, aC)
194194
195195 let aI = fraction(aH, ar, g)
196196
197197 let aJ = ((fraction((U * 10), V, W) + fraction((as * 10), au, av)) + aI)
198198
199199 let aK = az
200200
201201 let aL = (aK + aJ)
202202
203203 let aM = {
204204 let d = assetInfo(w)
205205 if ($isInstanceOf(d, "Asset"))
206206 then {
207207 let Z = d
208208 Z.quantity
209209 }
210210 else throw("Can't find asset")
211211 }
212212
213213 let aN = if (((fraction((aJ + a(this, n)), g, aM) + g) >= a(this, s)))
214214 then (fraction((aJ + a(this, n)), g, aM) + g)
215215 else a(this, s)
216216
217217 @Callable(aO)
218218 func buyWHIRLPOOLwithWAVES () = {
219219 let aP = assetBalance(this, w)
220220 if ((aP == aP))
221221 then {
222222 let aQ = value(aO.payments[0])
223223 let aR = fraction((aN - g), aQ.amount, g)
224224 let aS = if ((aQ.amount >= fraction(aQ.amount, g, aN)))
225225 then fraction(aQ.amount, g, aN)
226226 else throw("please contact project owner: issue amount error")
227- let aT = ((aQ.amount - aR) / 3)
228- let aU = (aQ.amount - fraction(aQ.amount, 200, 10000))
229- let aV = fraction(at, ((g * g) - toInt(pow(fraction(toBigInt(as), toBigInt((g * g)), toBigInt((as + aU)), HALFUP), 16, toBigInt(fraction(100000, 10000, 900000)), 4, 16, CEILING))), (g * g), DOWN)
230- if ((aQ.assetId != unit))
231- then throw("attach WAVES token only")
232- else {
233- let aW = if ((aV > aS))
234- then invoke(Address(v), "swap", [x, (aS + 1)], [AttachedPayment(unit, aQ.amount)])
235- else unit
236- if ((aW == aW))
237- then {
238- let aX = assetBalance(this, w)
239- let aY = (aX - aP)
240-[Reissue(w, if ((aS >= aV))
241- then aS
242- else 0, true), if ((aV > aS))
243- then ScriptTransfer(aO.caller, aY, w)
244- else ScriptTransfer(aO.caller, aS, w), IntegerEntry(s, aN), IntegerEntry(if ((aV > aS))
245- then "price WHIRLPOOL/WAVES"
246- else "WHIRLPOOL/WAVES mid market price", if ((aV > aS))
247- then fraction(g, aQ.amount, aY)
248- else fraction(g, (as * 9), at)), IntegerEntry(o, if ((aS >= aV))
249- then (aQ.amount + a(this, o))
250- else a(this, o)), IntegerEntry(o, if ((aS >= aV))
251- then ((aQ.amount - aR) + a(this, o))
252- else a(this, o)), IntegerEntry(n, if ((aV > aS))
253- then getIntegerValue(this, n)
254- else (aR + getIntegerValue(this, n)))]
255- }
256- else throw("Strict value is not equal to itself.")
257- }
227+ let aT = (aQ.amount - fraction(aQ.amount, 200, 10000))
228+ let aU = fraction(at, ((g * g) - toInt(pow(fraction(toBigInt(as), toBigInt((g * g)), toBigInt((as + aT)), HALFUP), 16, toBigInt(fraction(100000, 10000, 900000)), 4, 16, CEILING))), (g * g), DOWN)
229+ if (((g / 20) > aQ.amount))
230+ then throw("minimum payment 0.05 WAVES")
231+ else if ((aQ.assetId != unit))
232+ then throw("attach WAVES token only")
233+ else {
234+ let aV = if ((aU > aS))
235+ then invoke(Address(v), "swap", [x, (aS + 1)], [AttachedPayment(unit, aQ.amount)])
236+ else unit
237+ if ((aV == aV))
238+ then {
239+ let aW = assetBalance(this, w)
240+ let aX = (aW - aP)
241+[Reissue(w, if ((aS >= aU))
242+ then aS
243+ else 0, true), if ((aU > aS))
244+ then ScriptTransfer(aO.caller, aX, w)
245+ else ScriptTransfer(aO.caller, aS, w), IntegerEntry(s, aN), IntegerEntry(if ((aU > aS))
246+ then "price WHIRLPOOL/WAVES"
247+ else "WHIRLPOOL/WAVES mid market price", if ((aU > aS))
248+ then fraction(g, aQ.amount, aX)
249+ else fraction(g, (as * 9), at)), IntegerEntry(o, if ((aS >= aU))
250+ then (aQ.amount + a(this, o))
251+ else a(this, o)), IntegerEntry(o, if ((aS >= aU))
252+ then ((aQ.amount - aR) + a(this, o))
253+ else a(this, o)), IntegerEntry(n, if ((aU > aS))
254+ then getIntegerValue(this, n)
255+ else (aR + getIntegerValue(this, n)))]
256+ }
257+ else throw("Strict value is not equal to itself.")
258+ }
258259 }
259260 else throw("Strict value is not equal to itself.")
260261 }
261262
262263
263264
264265 @Callable(aO)
265266 func priceAndTreasuryStats () = [IntegerEntry("ETH/WAVES price", ar), IntegerEntry("BT WAVES in EAST vault", az), IntegerEntry("ST BURN-XTN x PepeTeam in wavelets", fraction((U * 10), V, W)), IntegerEntry("ST WHIRLPOOL AMM in wavelets", fraction((as * 10), au, av)), IntegerEntry("ST vETH", aH), IntegerEntry("ST vETH in wavelets", aI), IntegerEntry("Total ST in wavelets", aJ), IntegerEntry(s, aN), IntegerEntry("WHIRLPOOL/WAVES mid market price", fraction(g, (as * 9), at)), IntegerEntry("WHIRLPOOL total supply", aM), IntegerEntry("Total treasury", aL), IntegerEntry("NAV WHIRLPOOL", fraction(g, aL, aM)), IntegerEntry(o, a(this, o)), IntegerEntry(n, a(this, n)), IntegerEntry(o, a(this, o)), IntegerEntry(q, a(this, q)), IntegerEntry("total WAVES received", (a(this, o) / g)), IntegerEntry("Total treasury in WAVES", (aL / g)), IntegerEntry("surplus received in WAVES", (a(this, n) / g)), IntegerEntry("total WAVES received for base treasury", (a(this, o) / g)), IntegerEntry("total WAVES paid out in WAVES", (a(this, q) / g)), IntegerEntry(r, a(this, r))]
266267
267268
268269
269270 @Callable(aO)
270271 func boostPoolAPY () = if ((aO.caller != this))
271272 then throw("access only by project owner")
272273 else {
273- let aZ = if ((g > wavesBalance(this).available))
274+ let aY = if ((g > wavesBalance(this).available))
274275 then throw("not enough WAVES")
275276 else (wavesBalance(this).available - g)
276- let ba = fraction(aZ, 80, 100)
277- if ((ba == ba))
277+ let aZ = fraction(aY, 80, 100)
278+ if ((aZ == aZ))
278279 then {
279- let bb = fraction(ba, 80, 100)
280- if ((bb == bb))
280+ let ba = fraction(aZ, 80, 100)
281+ if ((ba == ba))
281282 then {
282- let bc = fraction(ba, 20, 100)
283- if ((bc == bc))
283+ let bb = fraction(aZ, 20, 100)
284+ if ((bb == bb))
284285 then {
285- let bd = invoke(Address(M), "addBoosting", [toBase58String(v), 7], [AttachedPayment(unit, bb)])
286- if ((bd == bd))
287- then [ScriptTransfer(Address(u), bc, unit), IntegerEntry(q, (bb + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
286+ let bc = invoke(Address(M), "addBoosting", [toBase58String(v), 7], [AttachedPayment(unit, ba)])
287+ if ((bc == bc))
288+ then [ScriptTransfer(Address(u), bb, unit), IntegerEntry(q, (ba + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
288289 else throw("Strict value is not equal to itself.")
289290 }
290291 else throw("Strict value is not equal to itself.")
291292 }
292293 else throw("Strict value is not equal to itself.")
293294 }
294295 else throw("Strict value is not equal to itself.")
295296 }
296297
297298
298299
299300 @Callable(aO)
300301 func boostPoolAPY_all () = if ((aO.caller != this))
301302 then throw("access only by project owner")
302303 else {
303- let aZ = if ((g > wavesBalance(this).available))
304+ let aY = if ((g > wavesBalance(this).available))
304305 then throw("not enough WAVES")
305306 else (wavesBalance(this).available - g)
306- let bb = fraction(aZ, 80, 100)
307- if ((bb == bb))
307+ let ba = fraction(aY, 80, 100)
308+ if ((ba == ba))
308309 then {
309- let bc = fraction(aZ, 20, 100)
310- if ((bc == bc))
310+ let bb = fraction(aY, 20, 100)
311+ if ((bb == bb))
311312 then {
312- let bd = invoke(Address(M), "addBoosting", [toBase58String(v), 7], [AttachedPayment(unit, bb)])
313- if ((bd == bd))
314- then [ScriptTransfer(Address(u), bc, unit), IntegerEntry(q, (bb + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
313+ let bc = invoke(Address(M), "addBoosting", [toBase58String(v), 7], [AttachedPayment(unit, ba)])
314+ if ((bc == bc))
315+ then [ScriptTransfer(Address(u), bb, unit), IntegerEntry(q, (ba + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
315316 else throw("Strict value is not equal to itself.")
316317 }
317318 else throw("Strict value is not equal to itself.")
318319 }
319320 else throw("Strict value is not equal to itself.")
320321 }
321322
322323
323324
324325 @Callable(aO)
325326 func transferPoolAPY () = if ((aO.caller != this))
326327 then throw("access only by project owner")
327328 else {
328- let aZ = if ((g > wavesBalance(this).available))
329+ let aY = if ((g > wavesBalance(this).available))
329330 then throw("not enough WAVES")
330331 else (wavesBalance(this).available - g)
331- let ba = fraction(aZ, 80, 100)
332- if ((ba == ba))
332+ let aZ = fraction(aY, 80, 100)
333+ if ((aZ == aZ))
333334 then {
334- let bb = fraction(ba, 80, 100)
335- if ((bb == bb))
335+ let ba = fraction(aZ, 80, 100)
336+ if ((ba == ba))
336337 then {
337- let bc = fraction(ba, 20, 100)
338- if ((bc == bc))
339- then [ScriptTransfer(Address(v), bb, unit), ScriptTransfer(Address(u), bc, unit), IntegerEntry(q, (bb + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
338+ let bb = fraction(aZ, 20, 100)
339+ if ((bb == bb))
340+ then [ScriptTransfer(Address(v), ba, unit), ScriptTransfer(Address(u), bb, unit), IntegerEntry(q, (ba + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
340341 else throw("Strict value is not equal to itself.")
341342 }
342343 else throw("Strict value is not equal to itself.")
343344 }
344345 else throw("Strict value is not equal to itself.")
345346 }
346347
347348
348349
349350 @Callable(aO)
350351 func transferPoolAPY_all () = if ((aO.caller != this))
351352 then throw("access only by project owner")
352353 else {
353- let aZ = if ((g > wavesBalance(this).available))
354+ let aY = if ((g > wavesBalance(this).available))
354355 then throw("not enough WAVES")
355356 else (wavesBalance(this).available - g)
356- let bb = fraction(aZ, 80, 100)
357- if ((bb == bb))
357+ let ba = fraction(aY, 80, 100)
358+ if ((ba == ba))
358359 then {
359- let bc = fraction(aZ, 20, 100)
360- if ((bc == bc))
361- then [ScriptTransfer(Address(v), bb, unit), ScriptTransfer(Address(u), bc, unit), IntegerEntry(q, (bb + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
360+ let bb = fraction(aY, 20, 100)
361+ if ((bb == bb))
362+ then [ScriptTransfer(Address(v), ba, unit), ScriptTransfer(Address(u), bb, unit), IntegerEntry(q, (ba + a(this, q))), IntegerEntry(r, fraction(a(this, q), 10000, a(this, o))), IntegerEntry(m, height)]
362363 else throw("Strict value is not equal to itself.")
363364 }
364365 else throw("Strict value is not equal to itself.")
365366 }
366367
367368
368369
369370 @Callable(aO)
370371 func poolOneTokenSurplus () = if ((aO.caller != this))
371372 then throw("access only by project owner")
372373 else {
373- let be = a(this, n)
374- let bf = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [toBase58String(t)], [AttachedPayment(unit, be)])
375- if ((bf == bf))
376- then [IntegerEntry(n, (a(this, n) - be))]
374+ let bd = a(this, n)
375+ let be = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [toBase58String(t)], [AttachedPayment(unit, bd)])
376+ if ((be == be))
377+ then [IntegerEntry(n, (a(this, n) - bd))]
377378 else throw("Strict value is not equal to itself.")
378379 }
379380
380381
381382
382383 @Callable(aO)
383-func surplusInvested (bg) = if ((aO.caller != this))
384+func surplusInvested (bf) = if ((aO.caller != this))
384385 then throw("access only by project owner")
385386 else {
386- let bh = (bg * g)
387-[IntegerEntry(n, (a(this, n) - bh))]
387+ let bg = (bf * g)
388+[IntegerEntry(n, (a(this, n) - bg))]
388389 }
389390
390391
391392
392393 @Callable(aO)
393-func changeIntegerEntry (bi,bj) = if ((aO.caller != this))
394+func changeIntegerEntry (bh,bi) = if ((aO.caller != this))
394395 then throw("access only by project owner")
395- else [IntegerEntry(bi, bj)]
396+ else [IntegerEntry(bh, bi)]
396397
397398
398399
399400 @Callable(aO)
400401 func activated () = if ((aO.caller != this))
401402 then throw("you are not allowed")
402403 else [IntegerEntry(m, height)]
403404
404405
405-@Verifier(bk)
406-func bl () = if (sigVerify(bk.bodyBytes, bk.proofs[0], bk.senderPublicKey))
406+@Verifier(bj)
407+func bk () = if (sigVerify(bj.bodyBytes, bj.proofs[0], bj.senderPublicKey))
407408 then true
408409 else if (((getIntegerValue(this, m) + i) > height))
409410 then false
410- else if (sigVerify(bk.bodyBytes, bk.proofs[0], j))
411+ else if (sigVerify(bj.bodyBytes, bj.proofs[0], j))
411412 then true
412413 else if (((getIntegerValue(this, m) + k) > height))
413414 then false
414- else sigVerify(bk.bodyBytes, bk.proofs[0], l)
415+ else sigVerify(bj.bodyBytes, bj.proofs[0], l)
415416

github/deemru/w8io/0e76f2f 
71.69 ms