tx · CiGQmwzGbbqvXQQSW4gkFamMfbQWYDLTJrp3WXtPuxNu

3MyRvoZJL2s56N6TK8RX1iJZcCXZkc77hcX:  -0.01600000 Waves

2023.11.23 20:34 [2856334] smart account 3MyRvoZJL2s56N6TK8RX1iJZcCXZkc77hcX > SELF 0.00000000 Waves

{ "type": 13, "id": "CiGQmwzGbbqvXQQSW4gkFamMfbQWYDLTJrp3WXtPuxNu", "fee": 1600000, "feeAssetId": null, "timestamp": 1700760837620, "version": 2, "chainId": 84, "sender": "3MyRvoZJL2s56N6TK8RX1iJZcCXZkc77hcX", "senderPublicKey": "Bj1Bhn537ibh7az2kjDvbHshLHPXpyCyHm3t4bFQQ73k", "proofs": [ "2x31YiaJvDyde1oDrjUreyg5sJfHC6irW47hNmrLC3aYvWqjHydxiVfPpT7tkA5hW3NjyywPZcEtAk44u7Tmx4uz" ], "script": "base64:BgIHCAISAwoBCEoAA3JleAIjM1BHRkh6VkdUNE5UaWd3Q0tQMU5jd29Ya29kVlp3dkJ1dVUADXN3b3BmaV9vcmFjbGUCIzNQRWJxVmlFUkNvS25tY1NVTGg2bjJhaU12VWRTUWRDc29tAAhwbF9wcm94eQIjM1BKRVNWRFRIUnY4aTgzWGJtSHJSR1FoRGM1cmdSM2F6UXMABG9yY2wCIzNQOGQxRTFCTEtvRDUyeTNiUUoxYkRUZDJURDFncGFMbjl0AApLX2FtX2FzX2lkAg8lc19fYW1vdW50QXNzZXQACktfcHJfYXNfaWQCDiVzX19wcmljZUFzc2V0AAVLX2FtcAIHJXNfX2FtcAAHS19zaGFyZQJEJXMlc19fc2hhcmVBc3NldEJhbGFuY2VfX1lpTmJvZkZ6QzE3akVISENNd3JSY3B5OU1ycmphYk1NTFp4ZzhnNXhtZjcACEtfc3Rha2VkAholcyVzX19zdGFrZWRCYWxhbmNlX19XQVZFUwAJS19hX2FzX2lkAgpBX2Fzc2V0X2lkAAlLX2JfYXNfaWQCCkJfYXNzZXRfaWQACktfYV9hc19iYWwCD0FfYXNzZXRfYmFsYW5jZQAKS19iX2FzX2JhbAIPQl9hc3NldF9iYWxhbmNlAAVLX2ZlZQIKY29tbWlzc2lvbgALS19hc3NldF9pZHMCD3N0YXRpY190b2tlbklkcwAJS19mZWVfcHV6AgpzdGF0aWNfZmVlAApLX2ZlZVRva2VuAg9zdGF0aWNfZmVlVG9rZW4AC3Rzbl9zd2FwcGVyAiMzUEt6NWpuSkxvaEYyR2pTaFE3Ykc1SDRCZWJkb0E5OHpaMgAQdHNuX3N3YXBwZXJfYWRkcgkBB0FkZHJlc3MBCQDZBAEFC3Rzbl9zd2FwcGVyAAVrX2ZlZQIFa19mZWUACGtfcmViYXRlAghrX3JlYmF0ZQAVa19mZWVUb1N0YWtlcnNQZXJjZW50AhVrX2ZlZVRvU3Rha2Vyc1BlcmNlbnQAD2tfZXhjZXNzQmFsYW5jZQIPa19leGNlc3NCYWxhbmNlAA1rX2ZyZWVCYWxhbmNlAg1rX2ZyZWVCYWxhbmNlABRrX21heFNwb3RVdGlsaXphdGlvbgIUa19tYXhTcG90VXRpbGl6YXRpb24ADWtfdG90YWxTdXBwbHkCDWtfdG90YWxTdXBwbHkABmtfcmF0ZQIGa19yYXRlAAhrX2JzQXN0UgIIa19ic0FzdFIACGtfYnNBc3RXAghrX2JzQXN0VwAIa19xdEFzdFICCGtfcXRBc3RSAAhrX3F0QXN0VwIIa19xdEFzdFcAEGtfbWF4UHJpY2VJbXBhY3QCEGtfbWF4UHJpY2VJbXBhY3QAEGtfbWF4UHJpY2VTcHJlYWQCEGtfbWF4UHJpY2VTcHJlYWQAE2tfdG90YWxQb3NpdGlvblNpemUCE2tfdG90YWxQb3NpdGlvblNpemUADGtfYmFzZU9yYWNsZQIMa19iYXNlT3JhY2xlAQpnZXRfZG9tYWluAQtwb29sQWRkcmVzcwQHJG1hdGNoMAULcG9vbEFkZHJlc3MDCQAAAgIjM1A0dUE1ZXRuWmk0QW1CYWJLaW5xMmJNaVdVOEtjbkhaZEgFByRtYXRjaDACATECATABCWtfcGxUb2tlbgIIYXNzZXRfaWQGZG9tYWluCQCsAgIJAKwCAgkArAICAglzZXR1cF9wbF8FCGFzc2V0X2lkAgFfBQZkb21haW4BEGtfdG90YWxfc3VwcGxpZWQBCGFzc2V0X2lkCQCsAgICD3RvdGFsX3N1cHBsaWVkXwUIYXNzZXRfaWQBB2tfc1JhdGUBCGFzc2V0X2lkCQCsAgIFCGFzc2V0X2lkAgZfc1JhdGUBEGtfdG90YWxfYm9ycm93ZWQBCGFzc2V0X2lkCQCsAgICD3RvdGFsX2JvcnJvd2VkXwUIYXNzZXRfaWQBB2tfYlJhdGUBCGFzc2V0X2lkCQCsAgIFCGFzc2V0X2lkAgZfYlJhdGUBC2tfbWF4U3VwcGx5AQhhc3NldF9pZAkArAICAhBzZXR1cF9tYXhTdXBwbHlfBQhhc3NldF9pZAAQa19sYXN0UmF0ZUhlaWdodAIObGFzdFJhdGVIZWlnaHQBEGdldFB1ekJhbGFuY2VLZXkBB2Fzc2V0SWQJAKwCAgkArAICAgdnbG9iYWxfBQdhc3NldElkAghfYmFsYW5jZQEPZ2V0UHV6V2VpZ2h0S2V5AQdhc3NldElkCQCsAgIJAKwCAgIHc3RhdGljXwUHYXNzZXRJZAIHX3dlaWdodAEHZ2V0QlBBSwEHYWRkcmVzcwkArAICBQdhZGRyZXNzAhBfc3RhdGljQXNzZXRzSWRzAQx0cnlHZXRTdHJpbmcCA2tleQdhZGRyZXNzBAckbWF0Y2gwCQCdCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWIFByRtYXRjaDAFAWICAAEKdHJ5R2V0Qm9vbAIDa2V5B2FkZHJlc3MEByRtYXRjaDAJAJsIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHAQ10cnlHZXRJbnRlZ2VyAgNrZXkHYWRkcmVzcwQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABFHRyeUdldEludGVnZXJXaXRoRGVmAwNrZXkHYWRkcmVzcwNkZWYEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgUDZGVmAQ9nZXRBc3NldEJhbGFuY2UCB2FkZHJlc3MHYXNzZXRJZAQBYQkA8AcCBQdhZGRyZXNzBQdhc3NldElkBQFhAQ9nZXRXYXZlc0JhbGFuY2UBB2FkZHJlc3MEAXcICQDvBwEFB2FkZHJlc3MJYXZhaWxhYmxlBQF3AQpnZXRCYWxhbmNlAgZyZXN1bHQHYXNzZXRJZAQHYWRkcmVzcwkArwICBQZyZXN1bHQAIwQEYWRkcgkBB0FkZHJlc3MBCQDZBAEFB2FkZHJlc3MEB2JhbGFuY2UDCQAAAgUHYXNzZXRJZAIFV0FWRVMJAQ9nZXRXYXZlc0JhbGFuY2UBBQRhZGRyBANhSWQJANkEAQUHYXNzZXRJZAkBD2dldEFzc2V0QmFsYW5jZQIFBGFkZHIFA2FJZAQDbGVuCQCxAgEFBnJlc3VsdAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MJALACAgUGcmVzdWx0ACMFB2Fzc2V0SWQCAToJAKQDAQUHYmFsYW5jZQIBLAERZ2V0QWRkcmVzc0JhbGFuY2UCBGFkZHIHYXNzZXRJZAQHYmFsYW5jZQMJAAACBQdhc3NldElkAgVXQVZFUwkBD2dldFdhdmVzQmFsYW5jZQEFBGFkZHIEA2FJZAkA2QQBBQdhc3NldElkCQEPZ2V0QXNzZXRCYWxhbmNlAgUEYWRkcgUDYUlkBQdiYWxhbmNlARBnZXRBc3NldERlY2ltYWxzAQphc3NldElkU3RyBAhkZWNpbWFscwMJAAACBQphc3NldElkU3RyAgVXQVZFUwAICAkBBXZhbHVlAQkA7AcBCQDZBAEFCmFzc2V0SWRTdHIIZGVjaW1hbHMFCGRlY2ltYWxzAQlnZXRXeERhdGEBB2FkZHJlc3MEBGFkZHIJAQdBZGRyZXNzAQkA2QQBBQdhZGRyZXNzBAhhbW91bnRJZAkBDHRyeUdldFN0cmluZwIFCktfYW1fYXNfaWQFBGFkZHIEB3ByaWNlSWQJAQx0cnlHZXRTdHJpbmcCBQpLX3ByX2FzX2lkBQRhZGRyBANhbXAJAQx0cnlHZXRTdHJpbmcCBQVLX2FtcAUEYWRkcgQFc2hhcmUJAQ10cnlHZXRJbnRlZ2VyAgUHS19zaGFyZQUEYWRkcgQFc3Rha2UJAQ10cnlHZXRJbnRlZ2VyAgUIS19zdGFrZWQFBGFkZHIJAJQKAgkArAICCQCsAgIFCGFtb3VudElkAgEsBQdwcmljZUlkCQCsAgIJAKwCAgkArAICCQCsAgIFA2FtcAIBLAkApAMBBQVzaGFyZQIBLAkApAMBBQVzdGFrZQEJZ2V0U3dEYXRhAQdhZGRyZXNzBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQEQV9pZAkBDHRyeUdldFN0cmluZwIFCUtfYV9hc19pZAUEYWRkcgQEQl9pZAkBDHRyeUdldFN0cmluZwIFCUtfYl9hc19pZAUEYWRkcgQJQV9iYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgIFCktfYV9hc19iYWwFBGFkZHIECUJfYmFsYW5jZQkBDXRyeUdldEludGVnZXICBQpLX2JfYXNfYmFsBQRhZGRyBANmZWUJARR0cnlHZXRJbnRlZ2VyV2l0aERlZgMFBUtfZmVlBQRhZGRyAPAuBApkZXByZWNhdGVkCQEKdHJ5R2V0Qm9vbAIJAKwCAgILZGVwcmVjYXRlZF8FB2FkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQ1zd29wZmlfb3JhY2xlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBEFfaWQCAToJAKQDAQUJQV9iYWxhbmNlAgEsBQRCX2lkAgE6CQCkAwEFCUJfYmFsYW5jZQIBLAkApAMBBQNmZWUCASwJAKUDAQUKZGVwcmVjYXRlZAEUY29sbGVjdFB1ekFzc2V0c0RhdGECBnJlc3VsdAdhc3NldElkBANsZW4JAJADAQUGcmVzdWx0BAdhZGRyZXNzCQCRAwIFBnJlc3VsdAkAZQIFA2xlbgABBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQKYmFsYW5jZUtleQkBEGdldFB1ekJhbGFuY2VLZXkBBQdhc3NldElkBAl3ZWlnaHRLZXkJAQ9nZXRQdXpXZWlnaHRLZXkBBQdhc3NldElkBAdiYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgIFCmJhbGFuY2VLZXkFBGFkZHIEBndlaWdodAkBDXRyeUdldEludGVnZXICBQl3ZWlnaHRLZXkFBGFkZHIEC3JlYWxCYWxhbmNlCQERZ2V0QWRkcmVzc0JhbGFuY2UCBQRhZGRyBQdhc3NldElkBANyZXMJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFB2Fzc2V0SWQCASwJAKQDAQUHYmFsYW5jZQIBLAkApAMBBQZ3ZWlnaHQCASwJAKQDAQULcmVhbEJhbGFuY2UJAMwIAgUDcmVzBQZyZXN1bHQBCWdldFB6RGF0YQEHYWRkcmVzcwQEYWRkcgkBB0FkZHJlc3MBCQDZBAEFB2FkZHJlc3MEBGZlZTEJAQ10cnlHZXRJbnRlZ2VyAgUJS19mZWVfcHV6BQRhZGRyBAhmZWVUb2tlbgkBDHRyeUdldFN0cmluZwIFCktfZmVlVG9rZW4FBGFkZHIECmFzc2V0c1N0cjEJAQx0cnlHZXRTdHJpbmcCBQtLX2Fzc2V0X2lkcwUEYWRkcgQLJHQwNjE3MTYzMjQDCQAAAgUKYXNzZXRzU3RyMQIACQCUCgIJAQx0cnlHZXRTdHJpbmcCCQEHZ2V0QlBBSwEFB2FkZHJlc3MFBHRoaXMAyAEJAJQKAgUKYXNzZXRzU3RyMQUEZmVlMQQJYXNzZXRzU3RyCAULJHQwNjE3MTYzMjQCXzEEA2ZlZQgFCyR0MDYxNzE2MzI0Al8yBAZhc3NldHMJALUJAgUJYXNzZXRzU3RyAgEsBAphc3NldHNEYXRhCgACJGwFBmFzc2V0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAMwIAgUHYWRkcmVzcwUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARRjb2xsZWN0UHV6QXNzZXRzRGF0YQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQDbGVuCQCQAwEFCmFzc2V0c0RhdGEECWFzc2V0c0FycgkA0QgCBQphc3NldHNEYXRhCQBlAgUDbGVuAAEEDWFzc2V0c0RhdGFTdHIJALoJAgUJYXNzZXRzQXJyAgE7CQCVCgMFA2ZlZQUIZmVlVG9rZW4FDWFzc2V0c0RhdGFTdHIBCmdldFRzbkRhdGECB2FkZHJlc3MIYXNzZXRfaWQEBGFkZHIJAQdBZGRyZXNzAQkA2QQBBQdhZGRyZXNzBAZic0FzdFIJAQ10cnlHZXRJbnRlZ2VyAgUIa19ic0FzdFIFBGFkZHIEBmJzQXN0VwkBDXRyeUdldEludGVnZXICBQhrX2JzQXN0VwUEYWRkcgQGcXRBc3RSCQENdHJ5R2V0SW50ZWdlcgIFCGtfcXRBc3RSBQRhZGRyBAZxdEFzdFcJAQ10cnlHZXRJbnRlZ2VyAgUIa19xdEFzdFcFBGFkZHIEDm1heFByaWNlSW1wYWN0CQENdHJ5R2V0SW50ZWdlcgIFEGtfbWF4UHJpY2VJbXBhY3QFBGFkZHIEDm1heFByaWNlU3ByZWFkCQENdHJ5R2V0SW50ZWdlcgIFEGtfbWF4UHJpY2VTcHJlYWQFBGFkZHIEEXRvdGFsUG9zaXRpb25TaXplCQENdHJ5R2V0SW50ZWdlcgIFE2tfdG90YWxQb3NpdGlvblNpemUFBGFkZHIEDG9yYWNsZVN0cmluZwkBDHRyeUdldFN0cmluZwIFDGtfYmFzZU9yYWNsZQUEYWRkcgQDYXJyCQC1CQIFDG9yYWNsZVN0cmluZwIBLAQLJHQwNzIyMTcyNjkJAJQKAgkAkQMCBQNhcnIAAAkAkQMCBQNhcnIAAQQNb3JhY2xlQWRkcmVzcwgFCyR0MDcyMjE3MjY5Al8xBAhwcmljZUtleQgFCyR0MDcyMjE3MjY5Al8yBApvcmFjbGVBZGRyCQEHQWRkcmVzcwEJANkEAQUNb3JhY2xlQWRkcmVzcwQLb3JhY2xlUHJpY2UJAQ10cnlHZXRJbnRlZ2VyAgUIcHJpY2VLZXkFCm9yYWNsZUFkZHIEBXZhdWx0CQEMdHJ5R2V0U3RyaW5nAgkArAICAg5rX2Fzc2V0X3ZhdWx0XwUIYXNzZXRfaWQFEHRzbl9zd2FwcGVyX2FkZHIECnZhdWx0X2FkZHIJAQdBZGRyZXNzAQkA2QQBBQV2YXVsdAQNZXhjZXNzQmFsYW5jZQkBDXRyeUdldEludGVnZXICBQ9rX2V4Y2Vzc0JhbGFuY2UFCnZhdWx0X2FkZHIEC2ZyZWVCYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgIFDWtfZnJlZUJhbGFuY2UFCnZhdWx0X2FkZHIEEm1heFNwb3RVdGlsaXphdGlvbgkBDXRyeUdldEludGVnZXICBRRrX21heFNwb3RVdGlsaXphdGlvbgUKdmF1bHRfYWRkcgQLdG90YWxTdXBwbHkJAQ10cnlHZXRJbnRlZ2VyAgUNa190b3RhbFN1cHBseQUKdmF1bHRfYWRkcgQEcmF0ZQkBDXRyeUdldEludGVnZXICBQZrX3JhdGUFCnZhdWx0X2FkZHIJAJ8KDQUGYnNBc3RSBQZic0FzdFcFBnF0QXN0UgUGcXRBc3RXBRF0b3RhbFBvc2l0aW9uU2l6ZQUObWF4UHJpY2VJbXBhY3QFDm1heFByaWNlU3ByZWFkBQtvcmFjbGVQcmljZQUNZXhjZXNzQmFsYW5jZQULZnJlZUJhbGFuY2UFEm1heFNwb3RVdGlsaXphdGlvbgULdG90YWxTdXBwbHkFBHJhdGUBCGdldFByaWNlAQdhc3NldElkBAVwcmljZQkBDXRyeUdldEludGVnZXICCQCsAgIFB2Fzc2V0SWQCB190d2FwNUIJAQdBZGRyZXNzAQkA2QQBBQRvcmNsBQVwcmljZQEJZ2V0UExEYXRhAgxwb29sX2FkZHJlc3MIYXNzZXRfaWQEBmRvbWFpbgkBCmdldF9kb21haW4BBQxwb29sX2FkZHJlc3MEB3Bvb2xBZHIJAQdBZGRyZXNzAQkA2QQBBQxwb29sX2FkZHJlc3MECXBsVG9rZW5JZAkBDHRyeUdldFN0cmluZwIJAQlrX3BsVG9rZW4CBQhhc3NldF9pZAUGZG9tYWluCQEHQWRkcmVzcwEJANkEAQUIcGxfcHJveHkEBXNSYXRlCQENdHJ5R2V0SW50ZWdlcgIJAQdrX3NSYXRlAQUIYXNzZXRfaWQFB3Bvb2xBZHIEBWJSYXRlCQENdHJ5R2V0SW50ZWdlcgIJAQdrX2JSYXRlAQUIYXNzZXRfaWQFB3Bvb2xBZHIEDXRvdGFsU3VwcGxpZWQJAQ10cnlHZXRJbnRlZ2VyAgkBEGtfdG90YWxfc3VwcGxpZWQBBQhhc3NldF9pZAUHcG9vbEFkcgQNdG90YWxCb3Jyb3dlZAkBDXRyeUdldEludGVnZXICCQEQa190b3RhbF9ib3Jyb3dlZAEFCGFzc2V0X2lkBQdwb29sQWRyBAltYXhTdXBwbHkJAQx0cnlHZXRTdHJpbmcCCQELa19tYXhTdXBwbHkBBQhhc3NldF9pZAUHcG9vbEFkcgQKbGFzdEhlaWdodAkBDXRyeUdldEludGVnZXICBRBrX2xhc3RSYXRlSGVpZ2h0BQdwb29sQWRyBAljdXJIZWlnaHQFBmhlaWdodAQFcHJpY2UJAQhnZXRQcmljZQEFCGFzc2V0X2lkBAhkZWNpbWFscwkBEGdldEFzc2V0RGVjaW1hbHMBBQhhc3NldF9pZAkAnQoLBQhhc3NldF9pZAUJcGxUb2tlbklkBQVzUmF0ZQUFYlJhdGUFDXRvdGFsU3VwcGxpZWQFDXRvdGFsQm9ycm93ZWQFCW1heFN1cHBseQUKbGFzdEhlaWdodAUJY3VySGVpZ2h0BQVwcmljZQUIZGVjaW1hbHMBCXRlc3RfbG9vcAIGcmVzdWx0A2VsZQkAzAgCBQNlbGUFBnJlc3VsdAEOZ2V0QmFsYW5jZXNTdHICCWFzc2V0c1N0cgdhZGRyZXNzBAZhc3NldHMJALwJAgUJYXNzZXRzU3RyAgEsBANyZXMKAAIkbAUGYXNzZXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUHYWRkcmVzcwoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKZ2V0QmFsYW5jZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIECGJhbGFuY2VzCQCwAgIFA3JlcwAjBARiYWxzCQCzAgIFCGJhbGFuY2VzAAEFBGJhbHMBCXByb2Nlc3NXWAIGcmVzdWx0B2FkZHJlc3MECyR0MDk0NjU5NTA4CQEJZ2V0V3hEYXRhAQUHYWRkcmVzcwQJYXNzZXRzU3RyCAULJHQwOTQ2NTk1MDgCXzEEBWRhdGFzCAULJHQwOTQ2NTk1MDgCXzIEDGFzc2V0c1N0cmluZwkBDmdldEJhbGFuY2VzU3RyAgUJYXNzZXRzU3RyBQdhZGRyZXNzBAdyZXNJdGVtCQCsAgIJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MCAS8FDGFzc2V0c1N0cmluZwIBLwUFZGF0YXMJAMwIAgUHcmVzSXRlbQUGcmVzdWx0AQlwcm9jZXNzU1cCBnJlc3VsdAdhZGRyZXNzBAxhc3NldHNTdHJpbmcJAQlnZXRTd0RhdGEBBQdhZGRyZXNzBAdyZXNJdGVtCQCsAgIJAKwCAgUHYWRkcmVzcwIBLwUMYXNzZXRzU3RyaW5nCQDMCAIFB3Jlc0l0ZW0FBnJlc3VsdAEJcHJvY2Vzc1BaAgZyZXN1bHQHYWRkcmVzcwQLJHQwOTkwODk5NjIJAQlnZXRQekRhdGEBBQdhZGRyZXNzBANmZWUIBQskdDA5OTA4OTk2MgJfMQQIZmVlVG9rZW4IBQskdDA5OTA4OTk2MgJfMgQMYXNzZXRzU3RyaW5nCAULJHQwOTkwODk5NjICXzMEB3Jlc0l0ZW0JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MCAS8JAKQDAQUDZmVlAgEvBQhmZWVUb2tlbgIBLwUMYXNzZXRzU3RyaW5nCQDMCAIFB3Jlc0l0ZW0FBnJlc3VsdAEKcHJvY2Vzc1RTTgIGcmVzdWx0BWxhYmVsBANhcnIJALUJAgUFbGFiZWwCAV8EDSR0MDEwMTc5MTAyMjEJAJQKAgkAkQMCBQNhcnIAAAkAkQMCBQNhcnIAAQQHYWRkcmVzcwgFDSR0MDEwMTc5MTAyMjECXzEECGFzc2V0X2lkCAUNJHQwMTAxNzkxMDIyMQJfMgQNJHQwMTAyMjcxMDQyNgkBCmdldFRzbkRhdGECBQdhZGRyZXNzBQhhc3NldF9pZAQGYnNBc3RSCAUNJHQwMTAyMjcxMDQyNgJfMQQGYnNBc3RXCAUNJHQwMTAyMjcxMDQyNgJfMgQGcXRBc3RSCAUNJHQwMTAyMjcxMDQyNgJfMwQGcXRBc3RXCAUNJHQwMTAyMjcxMDQyNgJfNAQRdG90YWxQb3NpdGlvblNpemUIBQ0kdDAxMDIyNzEwNDI2Al81BA5tYXhQcmljZUltcGFjdAgFDSR0MDEwMjI3MTA0MjYCXzYEDm1heFByaWNlU3ByZWFkCAUNJHQwMTAyMjcxMDQyNgJfNwQLb3JhY2xlUHJpY2UIBQ0kdDAxMDIyNzEwNDI2Al84BA1leGNlc3NCYWxhbmNlCAUNJHQwMTAyMjcxMDQyNgJfOQQLZnJlZUJhbGFuY2UIBQ0kdDAxMDIyNzEwNDI2A18xMAQSbWF4U3BvdFV0aWxpemF0aW9uCAUNJHQwMTAyMjcxMDQyNgNfMTEEC3RvdGFsU3VwcGx5CAUNJHQwMTAyMjcxMDQyNgNfMTIEBHJhdGUIBQ0kdDAxMDIyNzEwNDI2A18xMwQOYXNzZXRfZGVjaW1hbHMDCQAAAgUIYXNzZXRfaWQCBVdBVkVTAAgICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQhhc3NldF9pZAkArAICAg1JdmFsaWQgYXNzZXQgBQhhc3NldF9pZAhkZWNpbWFscwQHcmVzSXRlbQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBLAUIYXNzZXRfaWQCASwJAKQDAQUOYXNzZXRfZGVjaW1hbHMCASwJAKQDAQUGYnNBc3RSAgEsCQCkAwEFBmJzQXN0VwIBLAkApAMBBQZxdEFzdFICASwJAKQDAQUGcXRBc3RXAgEsCQCkAwEFEXRvdGFsUG9zaXRpb25TaXplAgEsCQCkAwEFDm1heFByaWNlSW1wYWN0AgEsCQCkAwEFDm1heFByaWNlU3ByZWFkAgEsCQCkAwEFC29yYWNsZVByaWNlAgEsCQCkAwEFDWV4Y2Vzc0JhbGFuY2UCASwJAKQDAQULZnJlZUJhbGFuY2UCASwJAKQDAQUSbWF4U3BvdFV0aWxpemF0aW9uAgEsCQCkAwEFC3RvdGFsU3VwcGx5AgEsCQCkAwEFBHJhdGUJAMwIAgUHcmVzSXRlbQUGcmVzdWx0AQlwcm9jZXNzUEwCBnJlc3VsdAVsYWJlbAQDYXJyCQC1CQIFBWxhYmVsAgEtBA0kdDAxMTIyMzExMjcwCQCUCgIJAJEDAgUDYXJyAAAJAJEDAgUDYXJyAAEEDHBvb2xfYWRkcmVzcwgFDSR0MDExMjIzMTEyNzACXzEECGFzc2V0X2lkCAUNJHQwMTEyMjMxMTI3MAJfMgQNJHQwMTEyNzYxMTQzMwkBCWdldFBMRGF0YQIFDHBvb2xfYWRkcmVzcwUIYXNzZXRfaWQECWFzc2V0X2lkZAgFDSR0MDExMjc2MTE0MzMCXzEECXBsVG9rZW5JZAgFDSR0MDExMjc2MTE0MzMCXzIEBXNSYXRlCAUNJHQwMTEyNzYxMTQzMwJfMwQFYlJhdGUIBQ0kdDAxMTI3NjExNDMzAl80BA10b3RhbFN1cHBsaWVkCAUNJHQwMTEyNzYxMTQzMwJfNQQNdG90YWxCb3Jyb3dlZAgFDSR0MDExMjc2MTE0MzMCXzYECW1heFN1cHBseQgFDSR0MDExMjc2MTE0MzMCXzcECmxhc3RIZWlnaHQIBQ0kdDAxMTI3NjExNDMzAl84BAljdXJIZWlnaHQIBQ0kdDAxMTI3NjExNDMzAl85BAVwcmljZQgFDSR0MDExMjc2MTE0MzMDXzEwBAhkZWNpbWFscwgFDSR0MDExMjc2MTE0MzMDXzExBAdyZXNJdGVtCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkA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cmVzdWx0CQC7CQIFBnJlc0FycgIBfAUGcmVzdWx0AQZnZXRUU04BBnBhcmFtcwQNdmF1bHRzX2xhYmVscwkAtQkCBQZwYXJhbXMCASwEBnJlc0FycgoAAiRsBQ12YXVsdHNfbGFiZWxzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpwcm9jZXNzVFNOAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBAZyZXN1bHQJALoJAgUGcmVzQXJyAgF8BANmZWUJAQ10cnlHZXRJbnRlZ2VyAgUFa19mZWUFEHRzbl9zd2FwcGVyX2FkZHIEBnJlYmF0ZQkBDXRyeUdldEludGVnZXICBQhrX3JlYmF0ZQUQdHNuX3N3YXBwZXJfYWRkcgQTZmVlVG9TdGFrZXJzUGVyY2VudAkBDXRyeUdldEludGVnZXICBRVrX2ZlZVRvU3Rha2Vyc1BlcmNlbnQFEHRzbl9zd2FwcGVyX2FkZHIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUDZmVlAgEsCQCkAwEFBnJlYmF0ZQIBLAkApAMBBRNmZWVUb1N0YWtlcnNQZXJjZW50AgEvBQZyZXN1bHQBBWdldFBMAQZwYXJhbXMEBXBvb2xzCQC1CQIFBnBhcmFtcwIBLAQGcmVzQXJyCgACJGwFBXBvb2xzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlwcm9jZXNzUEwCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEBnJlc3VsdAkAugkCBQZyZXNBcnICAXwFBnJlc3VsdAEBaQEEdGVzdAEBcwQBcgkBCnRyeUdldEJvb2wCAi5kZXByZWNhdGVkXzNQMjg2VGtUSEFSdHJKenhVaFBvSFhhcmR2dXRDMzdhOXJNCQEHQWRkcmVzcwEJANkEAQUNc3dvcGZpX29yYWNsZQkAAgEJAKUDAQUBcgDlk+77", "height": 2856334, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FLsVwa6FbPRYBnCWnKMn2x3oeRqd2D3jAJzhrVTDmxbH Next: J5g3KKLs3WMX772PxSgyL9Ryp7Fpu7DGfPyjkaWN6DdS Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let pool1 = "3N5Ju64uTPuaR4M4f9YB5LRYRNJ382MWrat"
4+let rex = "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU"
55
6-let pool2 = "3MyRvoZJL2s56N6TK8RX1iJZcCXZkc77hcX"
6+let swopfi_oracle = "3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom"
77
8-let farm2 = "3N2HHZXXVn914QuTxTANx6vizuZgeKRJMvj"
8+let pl_proxy = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
99
10-func func3 (caller,origin) = if (true)
11- then throw(((("caller: " + caller) + ", origin: ") + origin))
12- else 0
10+let orcl = "3P8d1E1BLKoD52y3bQJ1bDTd2TD1gpaLn9t"
11+
12+let K_am_as_id = "%s__amountAsset"
13+
14+let K_pr_as_id = "%s__priceAsset"
15+
16+let K_amp = "%s__amp"
17+
18+let K_share = "%s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7"
19+
20+let K_staked = "%s%s__stakedBalance__WAVES"
21+
22+let K_a_as_id = "A_asset_id"
23+
24+let K_b_as_id = "B_asset_id"
25+
26+let K_a_as_bal = "A_asset_balance"
27+
28+let K_b_as_bal = "B_asset_balance"
29+
30+let K_fee = "commission"
31+
32+let K_asset_ids = "static_tokenIds"
33+
34+let K_fee_puz = "static_fee"
35+
36+let K_feeToken = "static_feeToken"
37+
38+let tsn_swapper = "3PKz5jnJLohF2GjShQ7bG5H4BebdoA98zZ2"
39+
40+let tsn_swapper_addr = Address(fromBase58String(tsn_swapper))
41+
42+let k_fee = "k_fee"
43+
44+let k_rebate = "k_rebate"
45+
46+let k_feeToStakersPercent = "k_feeToStakersPercent"
47+
48+let k_excessBalance = "k_excessBalance"
49+
50+let k_freeBalance = "k_freeBalance"
51+
52+let k_maxSpotUtilization = "k_maxSpotUtilization"
53+
54+let k_totalSupply = "k_totalSupply"
55+
56+let k_rate = "k_rate"
57+
58+let k_bsAstR = "k_bsAstR"
59+
60+let k_bsAstW = "k_bsAstW"
61+
62+let k_qtAstR = "k_qtAstR"
63+
64+let k_qtAstW = "k_qtAstW"
65+
66+let k_maxPriceImpact = "k_maxPriceImpact"
67+
68+let k_maxPriceSpread = "k_maxPriceSpread"
69+
70+let k_totalPositionSize = "k_totalPositionSize"
71+
72+let k_baseOracle = "k_baseOracle"
73+
74+func get_domain (poolAddress) = match poolAddress {
75+ case _ =>
76+ if (("3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH" == $match0))
77+ then "1"
78+ else "0"
79+}
80+
81+
82+func k_plToken (asset_id,domain) = ((("setup_pl_" + asset_id) + "_") + domain)
83+
84+
85+func k_total_supplied (asset_id) = ("total_supplied_" + asset_id)
86+
87+
88+func k_sRate (asset_id) = (asset_id + "_sRate")
89+
90+
91+func k_total_borrowed (asset_id) = ("total_borrowed_" + asset_id)
92+
93+
94+func k_bRate (asset_id) = (asset_id + "_bRate")
95+
96+
97+func k_maxSupply (asset_id) = ("setup_maxSupply_" + asset_id)
98+
99+
100+let k_lastRateHeight = "lastRateHeight"
101+
102+func getPuzBalanceKey (assetId) = (("global_" + assetId) + "_balance")
103+
104+
105+func getPuzWeightKey (assetId) = (("static_" + assetId) + "_weight")
106+
107+
108+func getBPAK (address) = (address + "_staticAssetsIds")
109+
110+
111+func tryGetString (key,address) = match getString(address, key) {
112+ case b: String =>
113+ b
114+ case _ =>
115+ ""
116+}
117+
118+
119+func tryGetBool (key,address) = match getBoolean(address, key) {
120+ case b: Boolean =>
121+ b
122+ case _ =>
123+ false
124+}
125+
126+
127+func tryGetInteger (key,address) = match getInteger(address, key) {
128+ case b: Int =>
129+ b
130+ case _ =>
131+ 0
132+}
133+
134+
135+func tryGetIntegerWithDef (key,address,def) = match getInteger(address, key) {
136+ case b: Int =>
137+ b
138+ case _ =>
139+ def
140+}
141+
142+
143+func getAssetBalance (address,assetId) = {
144+ let a = assetBalance(address, assetId)
145+ a
146+ }
147+
148+
149+func getWavesBalance (address) = {
150+ let w = wavesBalance(address).available
151+ w
152+ }
153+
154+
155+func getBalance (result,assetId) = {
156+ let address = take(result, 35)
157+ let addr = Address(fromBase58String(address))
158+ let balance = if ((assetId == "WAVES"))
159+ then getWavesBalance(addr)
160+ else {
161+ let aId = fromBase58String(assetId)
162+ getAssetBalance(addr, aId)
163+ }
164+ let len = size(result)
165+ (((((address + drop(result, 35)) + assetId) + ":") + toString(balance)) + ",")
166+ }
167+
168+
169+func getAddressBalance (addr,assetId) = {
170+ let balance = if ((assetId == "WAVES"))
171+ then getWavesBalance(addr)
172+ else {
173+ let aId = fromBase58String(assetId)
174+ getAssetBalance(addr, aId)
175+ }
176+ balance
177+ }
178+
179+
180+func getAssetDecimals (assetIdStr) = {
181+ let decimals = if ((assetIdStr == "WAVES"))
182+ then 8
183+ else value(assetInfo(fromBase58String(assetIdStr))).decimals
184+ decimals
185+ }
186+
187+
188+func getWxData (address) = {
189+ let addr = Address(fromBase58String(address))
190+ let amountId = tryGetString(K_am_as_id, addr)
191+ let priceId = tryGetString(K_pr_as_id, addr)
192+ let amp = tryGetString(K_amp, addr)
193+ let share = tryGetInteger(K_share, addr)
194+ let stake = tryGetInteger(K_staked, addr)
195+ $Tuple2(((amountId + ",") + priceId), ((((amp + ",") + toString(share)) + ",") + toString(stake)))
196+ }
197+
198+
199+func getSwData (address) = {
200+ let addr = Address(fromBase58String(address))
201+ let A_id = tryGetString(K_a_as_id, addr)
202+ let B_id = tryGetString(K_b_as_id, addr)
203+ let A_balance = tryGetInteger(K_a_as_bal, addr)
204+ let B_balance = tryGetInteger(K_b_as_bal, addr)
205+ let fee = tryGetIntegerWithDef(K_fee, addr, 6000)
206+ let deprecated = tryGetBool(("deprecated_" + address), Address(fromBase58String(swopfi_oracle)))
207+ ((((((((((A_id + ":") + toString(A_balance)) + ",") + B_id) + ":") + toString(B_balance)) + ",") + toString(fee)) + ",") + toString(deprecated))
208+ }
209+
210+
211+func collectPuzAssetsData (result,assetId) = {
212+ let len = size(result)
213+ let address = result[(len - 1)]
214+ let addr = Address(fromBase58String(address))
215+ let balanceKey = getPuzBalanceKey(assetId)
216+ let weightKey = getPuzWeightKey(assetId)
217+ let balance = tryGetInteger(balanceKey, addr)
218+ let weight = tryGetInteger(weightKey, addr)
219+ let realBalance = getAddressBalance(addr, assetId)
220+ let res = ((((((assetId + ",") + toString(balance)) + ",") + toString(weight)) + ",") + toString(realBalance))
221+res :: result
222+ }
223+
224+
225+func getPzData (address) = {
226+ let addr = Address(fromBase58String(address))
227+ let fee1 = tryGetInteger(K_fee_puz, addr)
228+ let feeToken = tryGetString(K_feeToken, addr)
229+ let assetsStr1 = tryGetString(K_asset_ids, addr)
230+ let $t061716324 = if ((assetsStr1 == ""))
231+ then $Tuple2(tryGetString(getBPAK(address), this), 200)
232+ else $Tuple2(assetsStr1, fee1)
233+ let assetsStr = $t061716324._1
234+ let fee = $t061716324._2
235+ let assets = split(assetsStr, ",")
236+ let assetsData = {
237+ let $l = assets
238+ let $s = size($l)
239+ let $acc0 = [address]
240+ func $f0_1 ($a,$i) = if (($i >= $s))
241+ then $a
242+ else collectPuzAssetsData($a, $l[$i])
243+
244+ func $f0_2 ($a,$i) = if (($i >= $s))
245+ then $a
246+ else throw("List size exceeds 10")
247+
248+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
249+ }
250+ let len = size(assetsData)
251+ let assetsArr = removeByIndex(assetsData, (len - 1))
252+ let assetsDataStr = makeString_2C(assetsArr, ";")
253+ $Tuple3(fee, feeToken, assetsDataStr)
254+ }
255+
256+
257+func getTsnData (address,asset_id) = {
258+ let addr = Address(fromBase58String(address))
259+ let bsAstR = tryGetInteger(k_bsAstR, addr)
260+ let bsAstW = tryGetInteger(k_bsAstW, addr)
261+ let qtAstR = tryGetInteger(k_qtAstR, addr)
262+ let qtAstW = tryGetInteger(k_qtAstW, addr)
263+ let maxPriceImpact = tryGetInteger(k_maxPriceImpact, addr)
264+ let maxPriceSpread = tryGetInteger(k_maxPriceSpread, addr)
265+ let totalPositionSize = tryGetInteger(k_totalPositionSize, addr)
266+ let oracleString = tryGetString(k_baseOracle, addr)
267+ let arr = split(oracleString, ",")
268+ let $t072217269 = $Tuple2(arr[0], arr[1])
269+ let oracleAddress = $t072217269._1
270+ let priceKey = $t072217269._2
271+ let oracleAddr = Address(fromBase58String(oracleAddress))
272+ let oraclePrice = tryGetInteger(priceKey, oracleAddr)
273+ let vault = tryGetString(("k_asset_vault_" + asset_id), tsn_swapper_addr)
274+ let vault_addr = Address(fromBase58String(vault))
275+ let excessBalance = tryGetInteger(k_excessBalance, vault_addr)
276+ let freeBalance = tryGetInteger(k_freeBalance, vault_addr)
277+ let maxSpotUtilization = tryGetInteger(k_maxSpotUtilization, vault_addr)
278+ let totalSupply = tryGetInteger(k_totalSupply, vault_addr)
279+ let rate = tryGetInteger(k_rate, vault_addr)
280+ $Tuple13(bsAstR, bsAstW, qtAstR, qtAstW, totalPositionSize, maxPriceImpact, maxPriceSpread, oraclePrice, excessBalance, freeBalance, maxSpotUtilization, totalSupply, rate)
281+ }
282+
283+
284+func getPrice (assetId) = {
285+ let price = tryGetInteger((assetId + "_twap5B"), Address(fromBase58String(orcl)))
286+ price
287+ }
288+
289+
290+func getPLData (pool_address,asset_id) = {
291+ let domain = get_domain(pool_address)
292+ let poolAdr = Address(fromBase58String(pool_address))
293+ let plTokenId = tryGetString(k_plToken(asset_id, domain), Address(fromBase58String(pl_proxy)))
294+ let sRate = tryGetInteger(k_sRate(asset_id), poolAdr)
295+ let bRate = tryGetInteger(k_bRate(asset_id), poolAdr)
296+ let totalSupplied = tryGetInteger(k_total_supplied(asset_id), poolAdr)
297+ let totalBorrowed = tryGetInteger(k_total_borrowed(asset_id), poolAdr)
298+ let maxSupply = tryGetString(k_maxSupply(asset_id), poolAdr)
299+ let lastHeight = tryGetInteger(k_lastRateHeight, poolAdr)
300+ let curHeight = height
301+ let price = getPrice(asset_id)
302+ let decimals = getAssetDecimals(asset_id)
303+ $Tuple11(asset_id, plTokenId, sRate, bRate, totalSupplied, totalBorrowed, maxSupply, lastHeight, curHeight, price, decimals)
304+ }
305+
306+
307+func test_loop (result,ele) = ele :: result
308+
309+
310+func getBalancesStr (assetsStr,address) = {
311+ let assets = split_4C(assetsStr, ",")
312+ let res = {
313+ let $l = assets
314+ let $s = size($l)
315+ let $acc0 = address
316+ func $f0_1 ($a,$i) = if (($i >= $s))
317+ then $a
318+ else getBalance($a, $l[$i])
319+
320+ func $f0_2 ($a,$i) = if (($i >= $s))
321+ then $a
322+ else throw("List size exceeds 2")
323+
324+ $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
325+ }
326+ let balances = drop(res, 35)
327+ let bals = dropRight(balances, 1)
328+ bals
329+ }
330+
331+
332+func processWX (result,address) = {
333+ let $t094659508 = getWxData(address)
334+ let assetsStr = $t094659508._1
335+ let datas = $t094659508._2
336+ let assetsString = getBalancesStr(assetsStr, address)
337+ let resItem = ((((address + "/") + assetsString) + "/") + datas)
338+resItem :: result
339+ }
340+
341+
342+func processSW (result,address) = {
343+ let assetsString = getSwData(address)
344+ let resItem = ((address + "/") + assetsString)
345+resItem :: result
346+ }
347+
348+
349+func processPZ (result,address) = {
350+ let $t099089962 = getPzData(address)
351+ let fee = $t099089962._1
352+ let feeToken = $t099089962._2
353+ let assetsString = $t099089962._3
354+ let resItem = ((((((address + "/") + toString(fee)) + "/") + feeToken) + "/") + assetsString)
355+resItem :: result
356+ }
357+
358+
359+func processTSN (result,label) = {
360+ let arr = split(label, "_")
361+ let $t01017910221 = $Tuple2(arr[0], arr[1])
362+ let address = $t01017910221._1
363+ let asset_id = $t01017910221._2
364+ let $t01022710426 = getTsnData(address, asset_id)
365+ let bsAstR = $t01022710426._1
366+ let bsAstW = $t01022710426._2
367+ let qtAstR = $t01022710426._3
368+ let qtAstW = $t01022710426._4
369+ let totalPositionSize = $t01022710426._5
370+ let maxPriceImpact = $t01022710426._6
371+ let maxPriceSpread = $t01022710426._7
372+ let oraclePrice = $t01022710426._8
373+ let excessBalance = $t01022710426._9
374+ let freeBalance = $t01022710426._10
375+ let maxSpotUtilization = $t01022710426._11
376+ let totalSupply = $t01022710426._12
377+ let rate = $t01022710426._13
378+ let asset_decimals = if ((asset_id == "WAVES"))
379+ then 8
380+ else valueOrErrorMessage(assetInfo(fromBase58String(asset_id)), ("Ivalid asset " + asset_id)).decimals
381+ let resItem = ((((((((((((((((((((((((((((((address + ",") + asset_id) + ",") + toString(asset_decimals)) + ",") + toString(bsAstR)) + ",") + toString(bsAstW)) + ",") + toString(qtAstR)) + ",") + toString(qtAstW)) + ",") + toString(totalPositionSize)) + ",") + toString(maxPriceImpact)) + ",") + toString(maxPriceSpread)) + ",") + toString(oraclePrice)) + ",") + toString(excessBalance)) + ",") + toString(freeBalance)) + ",") + toString(maxSpotUtilization)) + ",") + toString(totalSupply)) + ",") + toString(rate))
382+resItem :: result
383+ }
384+
385+
386+func processPL (result,label) = {
387+ let arr = split(label, "-")
388+ let $t01122311270 = $Tuple2(arr[0], arr[1])
389+ let pool_address = $t01122311270._1
390+ let asset_id = $t01122311270._2
391+ let $t01127611433 = getPLData(pool_address, asset_id)
392+ let asset_idd = $t01127611433._1
393+ let plTokenId = $t01127611433._2
394+ let sRate = $t01127611433._3
395+ let bRate = $t01127611433._4
396+ let totalSupplied = $t01127611433._5
397+ let totalBorrowed = $t01127611433._6
398+ let maxSupply = $t01127611433._7
399+ let lastHeight = $t01127611433._8
400+ let curHeight = $t01127611433._9
401+ let price = $t01127611433._10
402+ let decimals = $t01127611433._11
403+ let resItem = ((((((((((((((((((((((label + ",") + asset_idd) + ",") + plTokenId) + ",") + toString(sRate)) + ",") + toString(bRate)) + ",") + toString(totalSupplied)) + ",") + toString(totalBorrowed)) + ",") + maxSupply) + ",") + toString(lastHeight)) + ",") + toString(curHeight)) + ",") + toString(price)) + ",") + toString(decimals))
404+resItem :: result
405+ }
406+
407+
408+func getWX (params) = {
409+ let pools = split_51C(params, ",")
410+ let resArr = {
411+ let $l = pools
412+ let $s = size($l)
413+ let $acc0 = nil
414+ func $f0_1 ($a,$i) = if (($i >= $s))
415+ then $a
416+ else processWX($a, $l[$i])
417+
418+ func $f0_2 ($a,$i) = if (($i >= $s))
419+ then $a
420+ else throw("List size exceeds 120")
421+
422+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120)
423+ }
424+ let result = makeString_11C(resArr, "|")
425+ result
426+ }
427+
428+
429+func getSW (params) = {
430+ let pools = split_4C(params, ",")
431+ let resArr = {
432+ let $l = pools
433+ let $s = size($l)
434+ let $acc0 = nil
435+ func $f0_1 ($a,$i) = if (($i >= $s))
436+ then $a
437+ else processSW($a, $l[$i])
438+
439+ func $f0_2 ($a,$i) = if (($i >= $s))
440+ then $a
441+ else throw("List size exceeds 100")
442+
443+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
444+ }
445+ let result = makeString_11C(resArr, "|")
446+ result
447+ }
448+
449+
450+func getPZ (params) = {
451+ let pools = split_4C(params, ",")
452+ let resArr = {
453+ let $l = pools
454+ let $s = size($l)
455+ let $acc0 = nil
456+ func $f0_1 ($a,$i) = if (($i >= $s))
457+ then $a
458+ else processPZ($a, $l[$i])
459+
460+ func $f0_2 ($a,$i) = if (($i >= $s))
461+ then $a
462+ else throw("List size exceeds 100")
463+
464+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
465+ }
466+ let result = makeString_11C(resArr, "|")
467+ result
468+ }
469+
470+
471+func getTSN (params) = {
472+ let vaults_labels = split(params, ",")
473+ let resArr = {
474+ let $l = vaults_labels
475+ let $s = size($l)
476+ let $acc0 = nil
477+ func $f0_1 ($a,$i) = if (($i >= $s))
478+ then $a
479+ else processTSN($a, $l[$i])
480+
481+ func $f0_2 ($a,$i) = if (($i >= $s))
482+ then $a
483+ else throw("List size exceeds 10")
484+
485+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
486+ }
487+ let result = makeString_2C(resArr, "|")
488+ let fee = tryGetInteger(k_fee, tsn_swapper_addr)
489+ let rebate = tryGetInteger(k_rebate, tsn_swapper_addr)
490+ let feeToStakersPercent = tryGetInteger(k_feeToStakersPercent, tsn_swapper_addr)
491+ ((((((toString(fee) + ",") + toString(rebate)) + ",") + toString(feeToStakersPercent)) + "/") + result)
492+ }
493+
494+
495+func getPL (params) = {
496+ let pools = split(params, ",")
497+ let resArr = {
498+ let $l = pools
499+ let $s = size($l)
500+ let $acc0 = nil
501+ func $f0_1 ($a,$i) = if (($i >= $s))
502+ then $a
503+ else processPL($a, $l[$i])
504+
505+ func $f0_2 ($a,$i) = if (($i >= $s))
506+ then $a
507+ else throw("List size exceeds 10")
508+
509+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
510+ }
511+ let result = makeString_2C(resArr, "|")
512+ result
513+ }
13514
14515
15516 @Callable(i)
16-func func2 () = {
17- let caller = toString(i.caller)
18- let origin = toString(i.originCaller)
19- if (true)
20- then throw(((("caller: " + caller) + ", origin: ") + origin))
21- else nil
22- }
23-
24-
25-
26-@Callable(i)
27-func func1 () = {
28- let nn = invoke(Address(fromBase58String(pool2)), "func2", nil, nil)
29- if ((nn == nn))
30- then nil
31- else throw("Strict value is not equal to itself.")
517+func test (s) = {
518+ let r = tryGetBool("deprecated_3P286TkTHARtrJzxUhPoHXardvutC37a9rM", Address(fromBase58String(swopfi_oracle)))
519+ throw(toString(r))
32520 }
33521
34522

github/deemru/w8io/169f3d6 
42.13 ms