tx · FbFj5cXk9NM5fSrjpJ2PFWDeYSS7zSG5kTGpZzdbJoQ7

3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1:  -0.02200000 Waves

2023.12.20 19:27 [3961174] smart account 3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1 > SELF 0.00000000 Waves

{ "type": 13, "id": "FbFj5cXk9NM5fSrjpJ2PFWDeYSS7zSG5kTGpZzdbJoQ7", "fee": 2200000, "feeAssetId": null, "timestamp": 1703089654507, "version": 2, "chainId": 87, "sender": "3P7VznyyJc91e2SXpWTgc9Zp2d9XWHdwLJ1", "senderPublicKey": "DiCe6VGgddpG7YfGhT4XXsPuQtiyzaV68EZUB8GNT3hs", "proofs": [ "3QTiNPb1cqXwpeeYEj1HSkhxwnaZmNS7xHKVkvZnaa4WnaEK8MzhnmpKXA4ByQfPv6JMoeQjeqsqi7wJ18oVyWga" ], "script": "base64:BgIHCAISAwoBCGwAA3JleAIjM1BHRkh6VkdUNE5UaWd3Q0tQMU5jd29Ya29kVlp3dkJ1dVUADXN3b3BmaV9vcmFjbGUCIzNQRWJxVmlFUkNvS25tY1NVTGg2bjJhaU12VWRTUWRDc29tAAhwbF9wcm94eQIjM1BKRVNWRFRIUnY4aTgzWGJtSHJSR1FoRGM1cmdSM2F6UXMABG9yY2wCIzNQOGQxRTFCTEtvRDUyeTNiUUoxYkRUZDJURDFncGFMbjl0AA53eF9mYWN0b3J5X3N0cgIjM1BDdUhzVFU1OFdLaENxb3RiY1N3QUJ2ZFB6cXFWQWJiVHYAC3d4X3N3YXBfc3RyAiMzUDY4ek5pdWZzdTF2aVpwdTFhWTNjZGFoUlJLY3ZWNU45MwAKd3hfZmFjdG9yeQkBB0FkZHJlc3MBCQDZBAEFDnd4X2ZhY3Rvcnlfc3RyAAd3eF9zd2FwCQEHQWRkcmVzcwEJANkEAQULd3hfc3dhcF9zdHIACktfYW1fYXNfaWQCDyVzX19hbW91bnRBc3NldAAKS19wcl9hc19pZAIOJXNfX3ByaWNlQXNzZXQABUtfYW1wAgclc19fYW1wAAdLX3NoYXJlAkQlcyVzX19zaGFyZUFzc2V0QmFsYW5jZV9fWWlOYm9mRnpDMTdqRUhIQ013clJjcHk5TXJyamFiTU1MWnhnOGc1eG1mNwAIS19zdGFrZWQCGiVzJXNfX3N0YWtlZEJhbGFuY2VfX1dBVkVTAAlLX2FfYXNfaWQCCkFfYXNzZXRfaWQACUtfYl9hc19pZAIKQl9hc3NldF9pZAAKS19hX2FzX2JhbAIPQV9hc3NldF9iYWxhbmNlAApLX2JfYXNfYmFsAg9CX2Fzc2V0X2JhbGFuY2UABUtfZmVlAgpjb21taXNzaW9uAAtLX2Fzc2V0X2lkcwIPc3RhdGljX3Rva2VuSWRzAAlLX2ZlZV9wdXoCCnN0YXRpY19mZWUACktfZmVlVG9rZW4CD3N0YXRpY19mZWVUb2tlbgAWS190bXBfcmVibGFuY2VBc3NldElkcwIVdG1wX3JlYmFsYW5jZUFzc2V0SWRzABZLX3JlYmFsYW5jZV9pblByb2dyZXNzAhRyZWJhbGFuY2VfaW5Qcm9ncmVzcwAVS19yZWJhbGFuY2Vfc3RlcHNEb25lAhNyZWJhbGFuY2Vfc3RlcHNEb25lABdLX3JlYmFsYW5jZV9zdGVwc0Ftb3VudAIVcmViYWxhbmNlX3N0ZXBzQW1vdW50ABdLX3JlYmFsYW5jZV9hc3NldERlbHRhcwIVcmViYWxhbmNlX2Fzc2V0RGVsdGFzABtLX3JlYmFsYW5jZV9hdHRhY2hlZFBheW1lbnQCGnJlYmFsYW5jZV9hdHRhY2hlZFBheW1lbnRfAAt0c25fc3dhcHBlcgIjM1BLejVqbkpMb2hGMkdqU2hRN2JHNUg0QmViZG9BOTh6WjIAEHRzbl9zd2FwcGVyX2FkZHIJAQdBZGRyZXNzAQkA2QQBBQt0c25fc3dhcHBlcgAFa19mZWUCBWtfZmVlAAhrX3JlYmF0ZQIIa19yZWJhdGUAFWtfZmVlVG9TdGFrZXJzUGVyY2VudAIVa19mZWVUb1N0YWtlcnNQZXJjZW50AA9rX2V4Y2Vzc0JhbGFuY2UCD2tfZXhjZXNzQmFsYW5jZQANa19mcmVlQmFsYW5jZQINa19mcmVlQmFsYW5jZQAUa19tYXhTcG90VXRpbGl6YXRpb24CFGtfbWF4U3BvdFV0aWxpemF0aW9uAA1rX3RvdGFsU3VwcGx5Ag1rX3RvdGFsU3VwcGx5AAZrX3JhdGUCBmtfcmF0ZQAIa19ic0FzdFICCGtfYnNBc3RSAAhrX2JzQXN0VwIIa19ic0FzdFcACGtfcXRBc3RSAghrX3F0QXN0UgAIa19xdEFzdFcCCGtfcXRBc3RXABBrX21heFByaWNlSW1wYWN0AhBrX21heFByaWNlSW1wYWN0ABBrX21heFByaWNlU3ByZWFkAhBrX21heFByaWNlU3ByZWFkABNrX3RvdGFsUG9zaXRpb25TaXplAhNrX3RvdGFsUG9zaXRpb25TaXplAAxrX2Jhc2VPcmFjbGUCDGtfYmFzZU9yYWNsZQAQa19tYXhPcmFjbGVEZWxheQIQa19tYXhPcmFjbGVEZWxheQAJa19zdG9yYWdlAgdTVE9SQUdFAAhrX2Fzc2V0cwIGQVNTRVRTAAhrX3N0YXR1cwIGU1RBVFVTAAhrX3BhdXNlZAIGUEFVU0VEABBrX2Fzc2V0X2JhbGFuY2VzAg5BU1NFVF9CQUxBTkNFUwAPa19hc3NldF93ZWlnaHRzAg1BU1NFVF9XRUlHSFRTAAhrX2xwX2ZlZQIGTFBfRkVFAA5rX3Byb3RvY29sX2ZlZQIMUFJPVE9DT0xfRkVFAAtrX3ByZWNpc2lvbgIJUFJFQ0lTSU9OABJrX3NpZ21hX2ZlZV9wZXJfbHACEFNJR01BX0ZFRV9QRVJfTFAAF2tfdXNlcl9zaWdtYV9mZWVfcGVyX2xwAhVVU0VSX1NJR01BX0ZFRV9QRVJfTFAACWtfdXNlcl9scAIHVVNFUl9MUAAKa190b3RhbF9scAIIVE9UQUxfTFAADmtfdXNlcl9wcm9maXRzAgxVU0VSX1BST0ZJVFMBCmdldF9kb21haW4BC3Bvb2xBZGRyZXNzBAckbWF0Y2gwBQtwb29sQWRkcmVzcwMJAAACAiMzUDR1QTVldG5aaTRBbUJhYktpbnEyYk1pV1U4S2NuSFpkSAUHJG1hdGNoMAIBMQIBMAEJa19wbFRva2VuAghhc3NldF9pZAZkb21haW4JAKwCAgkArAICCQCsAgICCXNldHVwX3BsXwUIYXNzZXRfaWQCAV8FBmRvbWFpbgEQa190b3RhbF9zdXBwbGllZAEIYXNzZXRfaWQJAKwCAgIPdG90YWxfc3VwcGxpZWRfBQhhc3NldF9pZAEHa19zUmF0ZQEIYXNzZXRfaWQJAKwCAgUIYXNzZXRfaWQCBl9zUmF0ZQEQa190b3RhbF9ib3Jyb3dlZAEIYXNzZXRfaWQJAKwCAgIPdG90YWxfYm9ycm93ZWRfBQhhc3NldF9pZAEHa19iUmF0ZQEIYXNzZXRfaWQJAKwCAgUIYXNzZXRfaWQCBl9iUmF0ZQELa19tYXhTdXBwbHkBCGFzc2V0X2lkCQCsAgICEHNldHVwX21heFN1cHBseV8FCGFzc2V0X2lkABBrX2xhc3RSYXRlSGVpZ2h0Ag5sYXN0UmF0ZUhlaWdodAEQZ2V0UHV6QmFsYW5jZUtleQEHYXNzZXRJZAkArAICCQCsAgICB2dsb2JhbF8FB2Fzc2V0SWQCCF9iYWxhbmNlAQ9nZXRQdXpXZWlnaHRLZXkBB2Fzc2V0SWQJAKwCAgkArAICAgdzdGF0aWNfBQdhc3NldElkAgdfd2VpZ2h0AQdnZXRCUEFLAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCEF9zdGF0aWNBc3NldHNJZHMBDHRyeUdldFN0cmluZwIDa2V5B2FkZHJlc3MEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIAAQp0cnlHZXRCb29sAgNrZXkHYWRkcmVzcwQHJG1hdGNoMAkAmwgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAUBYgcBDXRyeUdldEludGVnZXICA2tleQdhZGRyZXNzBAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEUdHJ5R2V0SW50ZWdlcldpdGhEZWYDA2tleQdhZGRyZXNzA2RlZgQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiBQNkZWYBEGdldFd4RGVmYXVsdEZlZXMABAdwb29sRmVlCQEUdHJ5R2V0SW50ZWdlcldpdGhEZWYDAgslc19fcG9vbEZlZQUHd3hfc3dhcADAmgwEC3Byb3RvY29sRmVlCQEUdHJ5R2V0SW50ZWdlcldpdGhEZWYDAg8lc19fcHJvdG9jb2xGZWUFB3d4X3N3YXAAwJoMCQCUCgIJAKQDAQUHcG9vbEZlZQkApAMBBQtwcm90b2NvbEZlZQENZ2V0V3hQb29sRmVlcwEHYWRkcmVzcwQHZmVlc0tleQkArAICAg8lcyVzX19zd2FwRmVlX18FB2FkZHJlc3MEBGZlZXMJAQx0cnlHZXRTdHJpbmcCBQdmZWVzS2V5BQp3eF9mYWN0b3J5AwkAAAIFBGZlZXMCAAkBEGdldFd4RGVmYXVsdEZlZXMABAxzcGxpdHRlZEZlZXMJALUJAgUEZmVlcwICX18JAJQKAgkAkQMCBQxzcGxpdHRlZEZlZXMAAQkAkQMCBQxzcGxpdHRlZEZlZXMAAgEPZ2V0QXNzZXRCYWxhbmNlAgdhZGRyZXNzB2Fzc2V0SWQEAWEJAPAHAgUHYWRkcmVzcwUHYXNzZXRJZAUBYQEPZ2V0V2F2ZXNCYWxhbmNlAQdhZGRyZXNzBAF3CAkA7wcBBQdhZGRyZXNzCWF2YWlsYWJsZQUBdwEKZ2V0QmFsYW5jZQIGcmVzdWx0B2Fzc2V0SWQEB2FkZHJlc3MJAK8CAgUGcmVzdWx0ACMEBGFkZHIJAQdBZGRyZXNzAQkA2QQBBQdhZGRyZXNzBAdiYWxhbmNlAwkAAAIFB2Fzc2V0SWQCBVdBVkVTCQEPZ2V0V2F2ZXNCYWxhbmNlAQUEYWRkcgQDYUlkCQDZBAEFB2Fzc2V0SWQJAQ9nZXRBc3NldEJhbGFuY2UCBQRhZGRyBQNhSWQEA2xlbgkAsQIBBQZyZXN1bHQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQdhZGRyZXNzCQCwAgIFBnJlc3VsdAAjBQdhc3NldElkAgE6CQCkAwEFB2JhbGFuY2UCASwBEWdldEFkZHJlc3NCYWxhbmNlAgRhZGRyB2Fzc2V0SWQEB2JhbGFuY2UDCQAAAgUHYXNzZXRJZAIFV0FWRVMJAQ9nZXRXYXZlc0JhbGFuY2UBBQRhZGRyBANhSWQJANkEAQUHYXNzZXRJZAkBD2dldEFzc2V0QmFsYW5jZQIFBGFkZHIFA2FJZAUHYmFsYW5jZQEQZ2V0QXNzZXREZWNpbWFscwEKYXNzZXRJZFN0cgQIZGVjaW1hbHMDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMACAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQphc3NldElkU3RyCGRlY2ltYWxzBQhkZWNpbWFscwEJZ2V0V3hEYXRhAQdhZGRyZXNzBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQIYW1vdW50SWQJAQx0cnlHZXRTdHJpbmcCBQpLX2FtX2FzX2lkBQRhZGRyBAdwcmljZUlkCQEMdHJ5R2V0U3RyaW5nAgUKS19wcl9hc19pZAUEYWRkcgQDYW1wCQEMdHJ5R2V0U3RyaW5nAgUFS19hbXAFBGFkZHIEBXNoYXJlCQENdHJ5R2V0SW50ZWdlcgIFB0tfc2hhcmUFBGFkZHIEBXN0YWtlCQENdHJ5R2V0SW50ZWdlcgIFCEtfc3Rha2VkBQRhZGRyBAskdDA2MzQ0NjM5NQkBDWdldFd4UG9vbEZlZXMBBQdhZGRyZXNzBAdwb29sRmVlCAULJHQwNjM0NDYzOTUCXzEEC3Byb3RvY29sRmVlCAULJHQwNjM0NDYzOTUCXzIJAJQKAgkArAICCQCsAgIFCGFtb3VudElkAgEsBQdwcmljZUlkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUDYW1wAgEsCQCkAwEFBXNoYXJlAgEsCQCkAwEFBXN0YWtlAgEsBQdwb29sRmVlAgEsBQtwcm90b2NvbEZlZQEJZ2V0U3dEYXRhAQdhZGRyZXNzBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQEQV9pZAkBDHRyeUdldFN0cmluZwIFCUtfYV9hc19pZAUEYWRkcgQEQl9pZAkBDHRyeUdldFN0cmluZwIFCUtfYl9hc19pZAUEYWRkcgQJQV9iYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgIFCktfYV9hc19iYWwFBGFkZHIECUJfYmFsYW5jZQkBDXRyeUdldEludGVnZXICBQpLX2JfYXNfYmFsBQRhZGRyBANmZWUJARR0cnlHZXRJbnRlZ2VyV2l0aERlZgMFBUtfZmVlBQRhZGRyAPAuBApkZXByZWNhdGVkCQEKdHJ5R2V0Qm9vbAIJAKwCAgILZGVwcmVjYXRlZF8FB2FkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQ1zd29wZmlfb3JhY2xlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBEFfaWQCAToJAKQDAQUJQV9iYWxhbmNlAgEsBQRCX2lkAgE6CQCkAwEFCUJfYmFsYW5jZQIBLAkApAMBBQNmZWUCASwJAKUDAQUKZGVwcmVjYXRlZAESZ2V0UHpSZWJhbGFuY2VEYXRhAQdhZGRyZXNzBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQMdG1wQXNzZXRzU3RyCQELdmFsdWVPckVsc2UCCQCdCAIFBGFkZHIFFktfdG1wX3JlYmxhbmNlQXNzZXRJZHMCAAQKaW5Qcm9ncmVzcwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQRhZGRyBRZLX3JlYmFsYW5jZV9pblByb2dyZXNzBwQJc3RlcHNEb25lCQELdmFsdWVPckVsc2UCCQCaCAIFBGFkZHIFFUtfcmViYWxhbmNlX3N0ZXBzRG9uZQAABAtzdGVwc0Ftb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQRhZGRyBRdLX3JlYmFsYW5jZV9zdGVwc0Ftb3VudAAABAthc3NldERlbHRhcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQRhZGRyBRdLX3JlYmFsYW5jZV9hc3NldERlbHRhcwIABAl0bXBBc3NldHMJALUJAgUMdG1wQXNzZXRzU3RyAgEsCgEPY29sbGVjdFBheW1lbnRzAgVhY2N1bQdhc3NldElkBANrZXkJAKwCAgUbS19yZWJhbGFuY2VfYXR0YWNoZWRQYXltZW50BQdhc3NldElkBAN2YWwJAQ10cnlHZXRJbnRlZ2VyAgUDa2V5BQRhZGRyAwkBAiE9AgUDdmFsAAAJAM4IAgUFYWNjdW0JAMwIAgkArAICCQCsAgIFA2tleQIBKgkApAMBBQN2YWwFA25pbAUFYWNjdW0EEXJlYmFsYW5jZVBheW1lbnRzCgACJGwFCXRtcEFzc2V0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEPY29sbGVjdFBheW1lbnRzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBBRyZWJhbGFuY2VQYXltZW50c1N0cgkAuQkCBRFyZWJhbGFuY2VQYXltZW50cwIBLAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQx0bXBBc3NldHNTdHICATsJAKUDAQUKaW5Qcm9ncmVzcwIBOwkApAMBBQlzdGVwc0RvbmUCATsJAKQDAQULc3RlcHNBbW91bnQCATsFC2Fzc2V0RGVsdGFzAgE7BRRyZWJhbGFuY2VQYXltZW50c1N0cgEUY29sbGVjdFB1ekFzc2V0c0RhdGECBnJlc3VsdAdhc3NldElkBANsZW4JAJADAQUGcmVzdWx0BAdhZGRyZXNzCQCRAwIFBnJlc3VsdAkAZQIFA2xlbgABBARhZGRyCQEHQWRkcmVzcwEJANkEAQUHYWRkcmVzcwQKYmFsYW5jZUtleQkBEGdldFB1ekJhbGFuY2VLZXkBBQdhc3NldElkBAl3ZWlnaHRLZXkJAQ9nZXRQdXpXZWlnaHRLZXkBBQdhc3NldElkBAdiYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgIFCmJhbGFuY2VLZXkFBGFkZHIEBndlaWdodAkBDXRyeUdldEludGVnZXICBQl3ZWlnaHRLZXkFBGFkZHIEC3JlYWxCYWxhbmNlCQERZ2V0QWRkcmVzc0JhbGFuY2UCBQRhZGRyBQdhc3NldElkBANyZXMJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFB2Fzc2V0SWQCASwJAKQDAQUHYmFsYW5jZQIBLAkApAMBBQZ3ZWlnaHQCASwJAKQDAQULcmVhbEJhbGFuY2UJAMwIAgUDcmVzBQZyZXN1bHQBCWdldFB6RGF0YQEHYWRkcmVzcwQEYWRkcgkBB0FkZHJlc3MBCQDZBAEFB2FkZHJlc3MEBGZlZTEJAQ10cnlHZXRJbnRlZ2VyAgUJS19mZWVfcHV6BQRhZGRyBAhmZWVUb2tlbgkBDHRyeUdldFN0cmluZwIFCktfZmVlVG9rZW4FBGFkZHIECmFzc2V0c1N0cjEJAQx0cnlHZXRTdHJpbmcCBQtLX2Fzc2V0X2lkcwUEYWRkcgQLJHQwOTAzMTkxODQDCQAAAgUKYXNzZXRzU3RyMQIACQCUCgIJAQx0cnlHZXRTdHJpbmcCCQEHZ2V0QlBBSwEFB2FkZHJlc3MFBHRoaXMAyAEJAJQKAgUKYXNzZXRzU3RyMQUEZmVlMQQJYXNzZXRzU3RyCAULJHQwOTAzMTkxODQCXzEEA2ZlZQgFCyR0MDkwMzE5MTg0Al8yBAZhc3NldHMJALUJAgUJYXNzZXRzU3RyAgEsBAphc3NldHNEYXRhCgACJGwFBmFzc2V0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAMwIAgUHYWRkcmVzcwUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARRjb2xsZWN0UHV6QXNzZXRzRGF0YQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQDbGVuCQCQAwEFCmFzc2V0c0RhdGEECWFzc2V0c0FycgkA0QgCBQphc3NldHNEYXRhCQBlAgUDbGVuAAEEDWFzc2V0c0RhdGFTdHIJALoJAgUJYXNzZXRzQXJyAgE7CQCVCgMFA2ZlZQUIZmVlVG9rZW4FDWFzc2V0c0RhdGFTdHIBCmdldFRzbkRhdGECB2FkZHJlc3MIYXNzZXRfaWQEBGFkZHIJAQdBZGRyZXNzAQkA2QQBBQdhZGRyZXNzBAZic0FzdFIJAQ10cnlHZXRJbnRlZ2VyAgUIa19ic0FzdFIFBGFkZHIEBmJzQXN0VwkBDXRyeUdldEludGVnZXICBQhrX2JzQXN0VwUEYWRkcgQGcXRBc3RSCQENdHJ5R2V0SW50ZWdlcgIFCGtfcXRBc3RSBQRhZGRyBAZxdEFzdFcJAQ10cnlHZXRJbnRlZ2VyAgUIa19xdEFzdFcFBGFkZHIEDm1heFByaWNlSW1wYWN0CQENdHJ5R2V0SW50ZWdlcgIFEGtfbWF4UHJpY2VJbXBhY3QFBGFkZHIEDm1heFByaWNlU3ByZWFkCQENdHJ5R2V0SW50ZWdlcgIFEGtfbWF4UHJpY2VTcHJlYWQFBGFkZHIEEXRvdGFsUG9zaXRpb25TaXplCQENdHJ5R2V0SW50ZWdlcgIFE2tfdG90YWxQb3NpdGlvblNpemUFBGFkZHIEDm1heE9yYWNsZURlbGF5CQENdHJ5R2V0SW50ZWdlcgIFEGtfbWF4T3JhY2xlRGVsYXkFBGFkZHIEDG9yYWNsZVN0cmluZwkBDHRyeUdldFN0cmluZwIFDGtfYmFzZU9yYWNsZQUEYWRkcgQDYXJyCQC1CQIFDG9yYWNsZVN0cmluZwIBLAQNJHQwMTAxNDUxMDIxMQkAlQoDCQCRAwIFA2FycgAACQCRAwIFA2FycgABCQCRAwIFA2FycgACBA1vcmFjbGVBZGRyZXNzCAUNJHQwMTAxNDUxMDIxMQJfMQQIcHJpY2VLZXkIBQ0kdDAxMDE0NTEwMjExAl8yBAhibG9ja0tleQgFDSR0MDEwMTQ1MTAyMTECXzMECm9yYWNsZUFkZHIJAQdBZGRyZXNzAQkA2QQBBQ1vcmFjbGVBZGRyZXNzBAtvcmFjbGVQcmljZQkBDXRyeUdldEludGVnZXICBQhwcmljZUtleQUKb3JhY2xlQWRkcgQJY3VySGVpZ2h0BQZoZWlnaHQECmxhc3RIZWlnaHQDCQECIT0CBQhibG9ja0tleQIACQENdHJ5R2V0SW50ZWdlcgIFCGJsb2NrS2V5BQpvcmFjbGVBZGRyBQljdXJIZWlnaHQEBXZhdWx0CQEMdHJ5R2V0U3RyaW5nAgkArAICAg5rX2Fzc2V0X3ZhdWx0XwUIYXNzZXRfaWQFEHRzbl9zd2FwcGVyX2FkZHIECnZhdWx0X2FkZHIJAQdBZGRyZXNzAQkA2QQBBQV2YXVsdAQNZXhjZXNzQmFsYW5jZQkBDXRyeUdldEludGVnZXICBQ9rX2V4Y2Vzc0JhbGFuY2UFCnZhdWx0X2FkZHIEC2ZyZWVCYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgIFDWtfZnJlZUJhbGFuY2UFCnZhdWx0X2FkZHIEEm1heFNwb3RVdGlsaXphdGlvbgkBDXRyeUdldEludGVnZXICBRRrX21heFNwb3RVdGlsaXphdGlvbgUKdmF1bHRfYWRkcgQLdG90YWxTdXBwbHkJAQ10cnlHZXRJbnRlZ2VyAgUNa190b3RhbFN1cHBseQUKdmF1bHRfYWRkcgQEcmF0ZQkBDXRyeUdldEludGVnZXICBQZrX3JhdGUFCnZhdWx0X2FkZHIJAKIKEAUGYnNBc3RSBQZic0FzdFcFBnF0QXN0UgUGcXRBc3RXBRF0b3RhbFBvc2l0aW9uU2l6ZQUObWF4UHJpY2VJbXBhY3QFDm1heFByaWNlU3ByZWFkBQtvcmFjbGVQcmljZQUNZXhjZXNzQmFsYW5jZQULZnJlZUJhbGFuY2UFEm1heFNwb3RVdGlsaXphdGlvbgULdG90YWxTdXBwbHkFBHJhdGUFCWN1ckhlaWdodAUKbGFzdEhlaWdodAUObWF4T3JhY2xlRGVsYXkBCGdldFByaWNlAQdhc3NldElkBAVwcmljZQkBDXRyeUdldEludGVnZXICCQCsAgIFB2Fzc2V0SWQCB190d2FwNUIJAQdBZGRyZXNzAQkA2QQBBQRvcmNsBQVwcmljZQEJZ2V0UExEYXRhAgxwb29sX2FkZHJlc3MIYXNzZXRfaWQEBmRvbWFpbgkBCmdldF9kb21haW4BBQxwb29sX2FkZHJlc3MEB3Bvb2xBZHIJAQdBZGRyZXNzAQkA2QQBBQxwb29sX2FkZHJlc3MECXBsVG9rZW5JZAkBDHRyeUdldFN0cmluZwIJAQlrX3BsVG9rZW4CBQhhc3NldF9pZAUGZG9tYWluCQEHQWRkcmVzcwEJANkEAQUIcGxfcHJveHkEBXNSYXRlCQENdHJ5R2V0SW50ZWdlcgIJAQdrX3NSYXRlAQUIYXNzZXRfaWQFB3Bvb2xBZHIEBWJSYXRlCQENdHJ5R2V0SW50ZWdlcgIJAQdrX2JSYXRlAQUIYXNzZXRfaWQFB3Bvb2xBZHIEDXRvdGFsU3VwcGxpZWQJAQ10cnlHZXRJbnRlZ2VyAgkBEGtfdG90YWxfc3VwcGxpZWQBBQhhc3NldF9pZAUHcG9vbEFkcgQNdG90YWxCb3Jyb3dlZAkBDXRyeUdldEludGVnZXICCQEQa190b3RhbF9ib3Jyb3dlZAEFCGFzc2V0X2lkBQdwb29sQWRyBAltYXhTdXBwbHkJAQx0cnlHZXRTdHJpbmcCCQELa19tYXhTdXBwbHkBBQhhc3NldF9pZAUHcG9vbEFkcgQKbGFzdEhlaWdodAkBDXRyeUdldEludGVnZXICBRBrX2xhc3RSYXRlSGVpZ2h0BQdwb29sQWRyBAljdXJIZWlnaHQFBmhlaWdodAQFcHJpY2UJAQhnZXRQcmljZQEFCGFzc2V0X2lkBAhkZWNpbWFscwkBEGdldEFzc2V0RGVjaW1hbHMBBQhhc3NldF9pZAkAnQoLBQhhc3NldF9pZAUJcGxUb2tlbklkBQVzUmF0ZQUFYlJhdGUFDXRvdGFsU3VwcGxpZWQFDXRvdGFsQm9ycm93ZWQFCW1heFN1cHBseQUKbGFzdEhlaWdodAUJY3VySGVpZ2h0BQVwcmljZQUIZGVjaW1hbHMBCXRlc3RfbG9vcAIGcmVzdWx0A2VsZQkAzAgCBQNlbGUFBnJlc3VsdAEOZ2V0QmFsYW5jZXNTdHICCWFzc2V0c1N0cgdhZGRyZXNzBAZhc3NldHMJALwJAgUJYXNzZXRzU3RyAgEsBANyZXMKAAIkbAUGYXNzZXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUHYWRkcmVzcwoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKZ2V0QmFsYW5jZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIECGJhbGFuY2VzCQCwAgIFA3JlcwAjBARiYWxzCQCzAgIFCGJhbGFuY2VzAAEFBGJhbHMBCXByb2Nlc3NXWAIGcmVzdWx0B2FkZHJlc3MEDSR0MDEyNTg3MTI2MzAJAQlnZXRXeERhdGEBBQdhZGRyZXNzBAlhc3NldHNTdHIIBQ0kdDAxMjU4NzEyNjMwAl8xBAVkYXRhcwgFDSR0MDEyNTg3MTI2MzACXzIEDGFzc2V0c1N0cmluZwkBDmdldEJhbGFuY2VzU3RyAgUJYXNzZXRzU3RyBQdhZGRyZXNzBAdyZXNJdGVtCQCsAgIJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MCAS8FDGFzc2V0c1N0cmluZwIBLwUFZGF0YXMJAMwIAgUHcmVzSXRlbQUGcmVzdWx0AQlwcm9jZXNzU1cCBnJlc3VsdAdhZGRyZXNzBAxhc3NldHNTdHJpbmcJAQlnZXRTd0RhdGEBBQdhZGRyZXNzBAdyZXNJdGVtCQCsAgIJAKwCAgUHYWRkcmVzcwIBLwUMYXNzZXRzU3RyaW5nCQDMCAIFB3Jlc0l0ZW0FBnJlc3VsdAEJcHJvY2Vzc1BaAgZyZXN1bHQHYWRkcmVzcwQNJHQwMTMwMzAxMzA4NAkBCWdldFB6RGF0YQEFB2FkZHJlc3MEA2ZlZQgFDSR0MDEzMDMwMTMwODQCXzEECGZlZVRva2VuCAUNJHQwMTMwMzAxMzA4NAJfMgQMYXNzZXRzU3RyaW5nCAUNJHQwMTMwMzAxMzA4NAJfMwQIcmViYURhdGEJARJnZXRQelJlYmFsYW5jZURhdGEBBQdhZGRyZXNzBAdyZXNJdGVtCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBLwkApAMBBQNmZWUCAS8FCGZlZVRva2VuAgEvBQxhc3NldHNTdHJpbmcCAS8FCHJlYmFEYXRhCQDMCAIFB3Jlc0l0ZW0FBnJlc3VsdAEKcHJvY2Vzc1RTTgIGcmVzdWx0BWxhYmVsBANhcnIJALUJAgUFbGFiZWwCAV8EDSR0MDEzMzY2MTM0MDgJAJQKAgkAkQMCBQNhcnIAAAkAkQMCBQNhcnIAAQQHYWRkcmVzcwgFDSR0MDEzMzY2MTM0MDgCXzEECGFzc2V0X2lkCAUNJHQwMTMzNjYxMzQwOAJfMgQNJHQwMTM0MTQxMzY1MgkBCmdldFRzbkRhdGECBQdhZGRyZXNzBQhhc3NldF9pZAQGYnNBc3RSCAUNJHQwMTM0MTQxMzY1MgJfMQQGYnNBc3RXCAUNJHQwMTM0MTQxMzY1MgJfMgQGcXRBc3RSCAUNJHQwMTM0MTQxMzY1MgJfMwQGcXRBc3RXCAUNJHQwMTM0MTQxMzY1MgJfNAQRdG90YWxQb3NpdGlvblNpemUIBQ0kdDAxMzQxNDEzNjUyAl81BA5tYXhQcmljZUltcGFjdAgFDSR0MDEzNDE0MTM2NTICXzYEDm1heFByaWNlU3ByZWFkCAUNJHQwMTM0MTQxMzY1MgJfNwQLb3JhY2xlUHJpY2UIBQ0kdDAxMzQxNDEzNjUyAl84BA1leGNlc3NCYWxhbmNlCAUNJHQwMTM0MTQxMzY1MgJfOQQLZnJlZUJhbGFuY2UIBQ0kdDAxMzQxNDEzNjUyA18xMAQSbWF4U3BvdFV0aWxpemF0aW9uCAUNJHQwMTM0MTQxMzY1MgNfMTEEC3RvdGFsU3VwcGx5CAUNJHQwMTM0MTQxMzY1MgNfMTIEBHJhdGUIBQ0kdDAxMzQxNDEzNjUyA18xMwQJY3VySGVpZ2h0CAUNJHQwMTM0MTQxMzY1MgNfMTQECmxhc3RIZWlnaHQIBQ0kdDAxMzQxNDEzNjUyA18xNQQObWF4T3JhY2xlRGVsYXkIBQ0kdDAxMzQxNDEzNjUyA18xNgQOYXNzZXRfZGVjaW1hbHMDCQAAAgUIYXNzZXRfaWQCBVdBVkVTAAgICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA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MF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRm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dEludGVnZXICBRVrX2ZlZVRvU3Rha2Vyc1BlcmNlbnQFEHRzbl9zd2FwcGVyX2FkZHIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUDZmVlAgEsCQCkAwEFBnJlYmF0ZQIBLAkApAMBBRNmZWVUb1N0YWtlcnNQZXJjZW50AgEvBQZyZXN1bHQBBWdldFBMAQZwYXJhbXMEBXBvb2xzCQC1CQIFBnBhcmFtcwIBLAQGcmVzQXJyCgACJGwFBXBvb2xzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlwcm9jZXNzUEwCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEBnJlc3VsdAkAugkCBQZyZXNBcnICAXwFBnJlc3VsdAEObG9hZFBlcGVBc3NldHMBC3BlcGVfbWFya2V0BAZhc3NldHMJAQx0cnlHZXRTdHJpbmcCBQhrX2Fzc2V0cwULcGVwZV9tYXJrZXQJALwJAgUGYXNzZXRzAgJfXwEVbG9hZFBlcGVBc3NldEJhbGFuY2VzAQtwZXBlX21hcmtldAoBCGZvbGRGdW5jAgNhY2MEZWxlbQQHYmFsYW5jZQkBDXBhcnNlSW50VmFsdWUBBQRlbGVtCQCUCgIJAM0IAggFA2FjYwJfMQUEZWxlbQkAZAIIBQNhY2MCXzIFB2JhbGFuY2UEDWFzc2V0QmFsYW5jZXMJAQx0cnlHZXRTdHJpbmcCBRBrX2Fzc2V0X2JhbGFuY2VzBQtwZXBlX21hcmtldAoAAiRsCQC9CQIFDWFzc2V0QmFsYW5jZXMCAl9fCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIZm9sZEZ1bmMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBFGxvYWRQZXBlQXNzZXRXZWlnaHRzAQtwZXBlX21hcmtldAoBCGZvbGRGdW5jAgNhY2MEZWxlbQQGd2VpZ2h0CQENcGFyc2VJbnRWYWx1ZQEFBGVsZW0JAJQKAgkAzQgCCAUDYWNjAl8xBQRlbGVtCQBkAggFA2FjYwJfMgUGd2VpZ2h0BAxhc3NldFdlaWdodHMJAQx0cnlHZXRTdHJpbmcCBQ9rX2Fzc2V0X3dlaWdodHMFC3BlcGVfbWFya2V0CgACJGwJALwJAgUMYXNzZXRXZWlnaHRzAgJfXwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUDbmlsAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGZvbGRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARBsb2FkUGVwZURlY2ltYWxzAQZhc3NldHMKAQdnZXREZWNzAgNhY2MEaXRlbQQIZGVjaW1hbHMJARBnZXRBc3NldERlY2ltYWxzAQUEaXRlbQkAzQgCBQNhY2MJAKQDAQUIZGVjaW1hbHMKAAIkbAUGYXNzZXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdnZXREZWNzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsBC3Byb2Nlc3NQZXBlAgZyZXN1bHQPcGVwZV9tYXJrZXRfc3RyBAtwZXBlX21hcmtldAkBB0FkZHJlc3MBCQDZBAEFD3BlcGVfbWFya2V0X3N0cgQHc3RvcmFnZQkBDHRyeUdldFN0cmluZwIFCWtfc3RvcmFnZQULcGVwZV9tYXJrZXQEBHNhcnIJALwJAgUHc3RvcmFnZQICX18EDSR0MDE5MTEwMTkzMzEJAJsKCQkAkQMCBQRzYXJyAAAJAAACCQCRAwIFBHNhcnIAAQIBMQkAkQMCBQRzYXJyAAIJAJEDAgUEc2FycgADCQCRAwIFBHNhcnIABAkAkQMCBQRzYXJyAAUJAJEDAgUEc2FycgAGCQCRAwIFBHNhcnIABwkAkQMCBQRzYXJyAAgECWxwQXNzZXRJZAgFDSR0MDE5MTEwMTkzMzECXzEECHVubG9ja2VkCAUNJHQwMTkxMTAxOTMzMQJfMgQNbHBUb3RhbFN1cHBseQgFDSR0MDE5MTEwMTkzMzECXzMECWxwRmVlUmF0ZQgFDSR0MDE5MTEwMTkzMzECXzQED3Byb3RvY29sRmVlUmF0ZQgFDSR0MDE5MTEwMTkzMzECXzUEEW1heEFsbG9jQW1wbGlmaWVyCAUNJHQwMTkxMTAxOTMzMQJfNgQPd2VpZ2h0QW1wbGlmaWVyCAUNJHQwMTkxMTAxOTMzMQJfNwQMc2xpcHBhZ2VSYXRlCAUNJHQwMTkxMTAxOTMzMQJfOAQKZmVlTWF4UmF0ZQgFDSR0MDE5MTEwMTkzMzECXzkECXByZWNpc2lvbgkBDXRyeUdldEludGVnZXICBQtrX3ByZWNpc2lvbgULcGVwZV9tYXJrZXQEDXNpZ21hRmVlUGVyTHAJAQx0cnlHZXRTdHJpbmcCBRJrX3NpZ21hX2ZlZV9wZXJfbHAFC3BlcGVfbWFya2V0BAZwYXVzZWQJAQp0cnlHZXRCb29sAgUIa19wYXVzZWQFC3BlcGVfbWFya2V0BAd0b3RhbExwCQENdHJ5R2V0SW50ZWdlcgIFCmtfdG90YWxfbHAFC3BlcGVfbWFya2V0BApscERlY2ltYWxzCQEQZ2V0QXNzZXREZWNpbWFscwEFCWxwQXNzZXRJZAQGYXNzZXRzCQEObG9hZFBlcGVBc3NldHMBBQtwZXBlX21hcmtldAQMZGVjaW1hbHNfYXJyCQEQbG9hZFBlcGVEZWNpbWFscwEFBmFzc2V0cwQNJHQwMTk3MjQxOTc5MQkBFGxvYWRQZXBlQXNzZXRXZWlnaHRzAQULcGVwZV9tYXJrZXQEDGFzc2V0V2VpZ2h0cwgFDSR0MDE5NzI0MTk3OTECXzEEC3NpZ21hV2VpZ2h0CAUNJHQwMTk3MjQxOTc5MQJfMgQNJHQwMTk3OTcxOTg4MAkBFWxvYWRQZXBlQXNzZXRCYWxhbmNlcwEFC3BlcGVfbWFya2V0BBFwcmV2QXNzZXRCYWxhbmNlcwgFDSR0MDE5Nzk3MTk4ODACXzEEFHByZXZBc3NldFRvdGFsU3VwcGx5CAUNJHQwMTk3OTcxOTg4MAJfMgQIbWFpbl9zdHIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQlscEFzc2V0SWQCASwJAKUDAQUIdW5sb2NrZWQCASwFDWxwVG90YWxTdXBwbHkCASwFCWxwRmVlUmF0ZQIBLAUPcHJvdG9jb2xGZWVSYXRlAgEsBRFtYXhBbGxvY0FtcGxpZmllcgIBLAUPd2VpZ2h0QW1wbGlmaWVyAgEsBQxzbGlwcGFnZVJhdGUCASwFCmZlZU1heFJhdGUCASwJAKQDAQULc2lnbWFXZWlnaHQCASwJAKQDAQUUcHJldkFzc2V0VG90YWxTdXBwbHkCASwJAKQDAQUJcHJlY2lzaW9uAgEsBQ1zaWdtYUZlZVBlckxwAgEsCQCkAwEFB3RvdGFsTHACASwJAKUDAQUGcGF1c2VkAgEsCQCkAwEFCmxwRGVjaW1hbHMCASwFD3BlcGVfbWFya2V0X3N0cgQKYXNzZXRzX2lkcwkAuwkCBQZhc3NldHMCASwEDmFzc2V0c193ZWlnaHRzCQC7CQIFDGFzc2V0V2VpZ2h0cwIBLAQPYXNzZXRzX2JhbGFuY2VzCQC7CQIFEXByZXZBc3NldEJhbGFuY2VzAgEsBA9hc3NldHNfZGVjaW1hbHMJALsJAgUMZGVjaW1hbHNfYXJyAgEsBANyZXMJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQhtYWluX3N0cgIBfAUKYXNzZXRzX2lkcwIBfAUOYXNzZXRzX3dlaWdodHMCAXwFD2Fzc2V0c19iYWxhbmNlcwIBfAUPYXNzZXRzX2RlY2ltYWxzCQDNCAIFBnJlc3VsdAUDcmVzAQdnZXRQZXBlAQZwYXJhbXMECWFkZHJlc3NlcwkAtQkCBQZwYXJhbXMCASwEBnJlc0FycgoAAiRsBQlhZGRyZXNzZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBC3Byb2Nlc3NQZXBlAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBAZyZXN1bHQJALsJAgUGcmVzQXJyAgE7BQZyZXN1bHQBAWkBBHRlc3QBAXMEAXIJAQp0cnlHZXRCb29sAgIuZGVwcmVjYXRlZF8zUDI4NlRrVEhBUnRySnp4VWhQb0hYYXJkdnV0QzM3YTlyTQkBB0FkZHJlc3MBCQDZBAEFDXN3b3BmaV9vcmFjbGUJAAIBCQClAwEFAXIA7cVv5Q==", "height": 3961174, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ADFTpia1juFDYePHE3bgmeTeBmonJEqHeCYpp2oQBwNU Next: 3KEMXjcq4QrWhPX9QLNfcYHcMo3TGpFxAeXf93BYX2dd Diff:
OldNewDifferences
4242 let K_fee_puz = "static_fee"
4343
4444 let K_feeToken = "static_feeToken"
45+
46+let K_tmp_reblanceAssetIds = "tmp_rebalanceAssetIds"
47+
48+let K_rebalance_inProgress = "rebalance_inProgress"
49+
50+let K_rebalance_stepsDone = "rebalance_stepsDone"
51+
52+let K_rebalance_stepsAmount = "rebalance_stepsAmount"
53+
54+let K_rebalance_assetDeltas = "rebalance_assetDeltas"
55+
56+let K_rebalance_attachedPayment = "rebalance_attachedPayment_"
4557
4658 let tsn_swapper = "3PKz5jnJLohF2GjShQ7bG5H4BebdoA98zZ2"
4759
249261 let amp = tryGetString(K_amp, addr)
250262 let share = tryGetInteger(K_share, addr)
251263 let stake = tryGetInteger(K_staked, addr)
252- let $t060106061 = getWxPoolFees(address)
253- let poolFee = $t060106061._1
254- let protocolFee = $t060106061._2
255- let swapDisabled = {
256- let @ = invoke(wx_factory, "isPoolSwapDisabledREADONLY", [address], nil)
257- if ($isInstanceOf(@, "Boolean"))
258- then @
259- else throw(($getType(@) + " couldn't be cast to Boolean"))
260- }
261- $Tuple2(((amountId + ",") + priceId), ((((((((((amp + ",") + toString(share)) + ",") + toString(stake)) + ",") + poolFee) + ",") + protocolFee) + ",") + toString(swapDisabled)))
264+ let $t063446395 = getWxPoolFees(address)
265+ let poolFee = $t063446395._1
266+ let protocolFee = $t063446395._2
267+ $Tuple2(((amountId + ",") + priceId), ((((((((amp + ",") + toString(share)) + ",") + toString(stake)) + ",") + poolFee) + ",") + protocolFee))
262268 }
263269
264270
271277 let fee = tryGetIntegerWithDef(K_fee, addr, 6000)
272278 let deprecated = tryGetBool(("deprecated_" + address), Address(fromBase58String(swopfi_oracle)))
273279 ((((((((((A_id + ":") + toString(A_balance)) + ",") + B_id) + ":") + toString(B_balance)) + ",") + toString(fee)) + ",") + toString(deprecated))
280+ }
281+
282+
283+func getPzRebalanceData (address) = {
284+ let addr = Address(fromBase58String(address))
285+ let tmpAssetsStr = valueOrElse(getString(addr, K_tmp_reblanceAssetIds), "")
286+ let inProgress = valueOrElse(getBoolean(addr, K_rebalance_inProgress), false)
287+ let stepsDone = valueOrElse(getInteger(addr, K_rebalance_stepsDone), 0)
288+ let stepsAmount = valueOrElse(getInteger(addr, K_rebalance_stepsAmount), 0)
289+ let assetDeltas = valueOrElse(getString(addr, K_rebalance_assetDeltas), "")
290+ let tmpAssets = split(tmpAssetsStr, ",")
291+ func collectPayments (accum,assetId) = {
292+ let key = (K_rebalance_attachedPayment + assetId)
293+ let val = tryGetInteger(key, addr)
294+ if ((val != 0))
295+ then (accum ++ [((key + "*") + toString(val))])
296+ else accum
297+ }
298+
299+ let rebalancePayments = {
300+ let $l = tmpAssets
301+ let $s = size($l)
302+ let $acc0 = nil
303+ func $f0_1 ($a,$i) = if (($i >= $s))
304+ then $a
305+ else collectPayments($a, $l[$i])
306+
307+ func $f0_2 ($a,$i) = if (($i >= $s))
308+ then $a
309+ else throw("List size exceeds 10")
310+
311+ $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)
312+ }
313+ let rebalancePaymentsStr = makeString(rebalancePayments, ",")
314+ ((((((((((tmpAssetsStr + ";") + toString(inProgress)) + ";") + toString(stepsDone)) + ";") + toString(stepsAmount)) + ";") + assetDeltas) + ";") + rebalancePaymentsStr)
274315 }
275316
276317
293334 let fee1 = tryGetInteger(K_fee_puz, addr)
294335 let feeToken = tryGetString(K_feeToken, addr)
295336 let assetsStr1 = tryGetString(K_asset_ids, addr)
296- let $t077377890 = if ((assetsStr1 == ""))
337+ let $t090319184 = if ((assetsStr1 == ""))
297338 then $Tuple2(tryGetString(getBPAK(address), this), 200)
298339 else $Tuple2(assetsStr1, fee1)
299- let assetsStr = $t077377890._1
300- let fee = $t077377890._2
340+ let assetsStr = $t090319184._1
341+ let fee = $t090319184._2
301342 let assets = split(assetsStr, ",")
302343 let assetsData = {
303344 let $l = assets
332373 let maxOracleDelay = tryGetInteger(k_maxOracleDelay, addr)
333374 let oracleString = tryGetString(k_baseOracle, addr)
334375 let arr = split(oracleString, ",")
335- let $t088518917 = $Tuple3(arr[0], arr[1], arr[2])
336- let oracleAddress = $t088518917._1
337- let priceKey = $t088518917._2
338- let blockKey = $t088518917._3
376+ let $t01014510211 = $Tuple3(arr[0], arr[1], arr[2])
377+ let oracleAddress = $t01014510211._1
378+ let priceKey = $t01014510211._2
379+ let blockKey = $t01014510211._3
339380 let oracleAddr = Address(fromBase58String(oracleAddress))
340381 let oraclePrice = tryGetInteger(priceKey, oracleAddr)
341382 let curHeight = height
402443
403444
404445 func processWX (result,address) = {
405- let $t01129311336 = getWxData(address)
406- let assetsStr = $t01129311336._1
407- let datas = $t01129311336._2
446+ let $t01258712630 = getWxData(address)
447+ let assetsStr = $t01258712630._1
448+ let datas = $t01258712630._2
408449 let assetsString = getBalancesStr(assetsStr, address)
409450 let resItem = ((((address + "/") + assetsString) + "/") + datas)
410451 resItem :: result
419460
420461
421462 func processPZ (result,address) = {
422- let $t01173611790 = getPzData(address)
423- let fee = $t01173611790._1
424- let feeToken = $t01173611790._2
425- let assetsString = $t01173611790._3
426- let resItem = ((((((address + "/") + toString(fee)) + "/") + feeToken) + "/") + assetsString)
463+ let $t01303013084 = getPzData(address)
464+ let fee = $t01303013084._1
465+ let feeToken = $t01303013084._2
466+ let assetsString = $t01303013084._3
467+ let rebaData = getPzRebalanceData(address)
468+ let resItem = ((((((((address + "/") + toString(fee)) + "/") + feeToken) + "/") + assetsString) + "/") + rebaData)
427469 resItem :: result
428470 }
429471
430472
431473 func processTSN (result,label) = {
432474 let arr = split(label, "_")
433- let $t01200712049 = $Tuple2(arr[0], arr[1])
434- let address = $t01200712049._1
435- let asset_id = $t01200712049._2
436- let $t01205512293 = getTsnData(address, asset_id)
437- let bsAstR = $t01205512293._1
438- let bsAstW = $t01205512293._2
439- let qtAstR = $t01205512293._3
440- let qtAstW = $t01205512293._4
441- let totalPositionSize = $t01205512293._5
442- let maxPriceImpact = $t01205512293._6
443- let maxPriceSpread = $t01205512293._7
444- let oraclePrice = $t01205512293._8
445- let excessBalance = $t01205512293._9
446- let freeBalance = $t01205512293._10
447- let maxSpotUtilization = $t01205512293._11
448- let totalSupply = $t01205512293._12
449- let rate = $t01205512293._13
450- let curHeight = $t01205512293._14
451- let lastHeight = $t01205512293._15
452- let maxOracleDelay = $t01205512293._16
475+ let $t01336613408 = $Tuple2(arr[0], arr[1])
476+ let address = $t01336613408._1
477+ let asset_id = $t01336613408._2
478+ let $t01341413652 = getTsnData(address, asset_id)
479+ let bsAstR = $t01341413652._1
480+ let bsAstW = $t01341413652._2
481+ let qtAstR = $t01341413652._3
482+ let qtAstW = $t01341413652._4
483+ let totalPositionSize = $t01341413652._5
484+ let maxPriceImpact = $t01341413652._6
485+ let maxPriceSpread = $t01341413652._7
486+ let oraclePrice = $t01341413652._8
487+ let excessBalance = $t01341413652._9
488+ let freeBalance = $t01341413652._10
489+ let maxSpotUtilization = $t01341413652._11
490+ let totalSupply = $t01341413652._12
491+ let rate = $t01341413652._13
492+ let curHeight = $t01341413652._14
493+ let lastHeight = $t01341413652._15
494+ let maxOracleDelay = $t01341413652._16
453495 let asset_decimals = if ((asset_id == "WAVES"))
454496 then 8
455497 else valueOrErrorMessage(assetInfo(fromBase58String(asset_id)), ("Ivalid asset " + asset_id)).decimals
460502
461503 func processPL (result,label) = {
462504 let arr = split(label, "-")
463- let $t01318313230 = $Tuple2(arr[0], arr[1])
464- let pool_address = $t01318313230._1
465- let asset_id = $t01318313230._2
466- let $t01323613393 = getPLData(pool_address, asset_id)
467- let asset_idd = $t01323613393._1
468- let plTokenId = $t01323613393._2
469- let sRate = $t01323613393._3
470- let bRate = $t01323613393._4
471- let totalSupplied = $t01323613393._5
472- let totalBorrowed = $t01323613393._6
473- let maxSupply = $t01323613393._7
474- let lastHeight = $t01323613393._8
475- let curHeight = $t01323613393._9
476- let price = $t01323613393._10
477- let decimals = $t01323613393._11
505+ let $t01454214589 = $Tuple2(arr[0], arr[1])
506+ let pool_address = $t01454214589._1
507+ let asset_id = $t01454214589._2
508+ let $t01459514752 = getPLData(pool_address, asset_id)
509+ let asset_idd = $t01459514752._1
510+ let plTokenId = $t01459514752._2
511+ let sRate = $t01459514752._3
512+ let bRate = $t01459514752._4
513+ let totalSupplied = $t01459514752._5
514+ let totalBorrowed = $t01459514752._6
515+ let maxSupply = $t01459514752._7
516+ let lastHeight = $t01459514752._8
517+ let curHeight = $t01459514752._9
518+ let price = $t01459514752._10
519+ let decimals = $t01459514752._11
478520 let resItem = ((((((((((((((((((((((label + ",") + asset_idd) + ",") + plTokenId) + ",") + toString(sRate)) + ",") + toString(bRate)) + ",") + toString(totalSupplied)) + ",") + toString(totalBorrowed)) + ",") + maxSupply) + ",") + toString(lastHeight)) + ",") + toString(curHeight)) + ",") + toString(price)) + ",") + toString(decimals))
479521 resItem :: result
480522 }
663705 let pepe_market = Address(fromBase58String(pepe_market_str))
664706 let storage = tryGetString(k_storage, pepe_market)
665707 let sarr = split_4C(storage, "__")
666- let $t01760717828 = $Tuple9(sarr[0], (sarr[1] == "1"), sarr[2], sarr[3], sarr[4], sarr[5], sarr[6], sarr[7], sarr[8])
667- let lpAssetId = $t01760717828._1
668- let unlocked = $t01760717828._2
669- let lpTotalSupply = $t01760717828._3
670- let lpFeeRate = $t01760717828._4
671- let protocolFeeRate = $t01760717828._5
672- let maxAllocAmplifier = $t01760717828._6
673- let weightAmplifier = $t01760717828._7
674- let slippageRate = $t01760717828._8
675- let feeMaxRate = $t01760717828._9
708+ let $t01911019331 = $Tuple9(sarr[0], (sarr[1] == "1"), sarr[2], sarr[3], sarr[4], sarr[5], sarr[6], sarr[7], sarr[8])
709+ let lpAssetId = $t01911019331._1
710+ let unlocked = $t01911019331._2
711+ let lpTotalSupply = $t01911019331._3
712+ let lpFeeRate = $t01911019331._4
713+ let protocolFeeRate = $t01911019331._5
714+ let maxAllocAmplifier = $t01911019331._6
715+ let weightAmplifier = $t01911019331._7
716+ let slippageRate = $t01911019331._8
717+ let feeMaxRate = $t01911019331._9
676718 let precision = tryGetInteger(k_precision, pepe_market)
677719 let sigmaFeePerLp = tryGetString(k_sigma_fee_per_lp, pepe_market)
678720 let paused = tryGetBool(k_paused, pepe_market)
680722 let lpDecimals = getAssetDecimals(lpAssetId)
681723 let assets = loadPepeAssets(pepe_market)
682724 let decimals_arr = loadPepeDecimals(assets)
683- let $t01822118288 = loadPepeAssetWeights(pepe_market)
684- let assetWeights = $t01822118288._1
685- let sigmaWeight = $t01822118288._2
686- let $t01829418377 = loadPepeAssetBalances(pepe_market)
687- let prevAssetBalances = $t01829418377._1
688- let prevAssetTotalSupply = $t01829418377._2
725+ let $t01972419791 = loadPepeAssetWeights(pepe_market)
726+ let assetWeights = $t01972419791._1
727+ let sigmaWeight = $t01972419791._2
728+ let $t01979719880 = loadPepeAssetBalances(pepe_market)
729+ let prevAssetBalances = $t01979719880._1
730+ let prevAssetTotalSupply = $t01979719880._2
689731 let main_str = ((((((((((((((((((((((((((((((((lpAssetId + ",") + toString(unlocked)) + ",") + lpTotalSupply) + ",") + lpFeeRate) + ",") + protocolFeeRate) + ",") + maxAllocAmplifier) + ",") + weightAmplifier) + ",") + slippageRate) + ",") + feeMaxRate) + ",") + toString(sigmaWeight)) + ",") + toString(prevAssetTotalSupply)) + ",") + toString(precision)) + ",") + sigmaFeePerLp) + ",") + toString(totalLp)) + ",") + toString(paused)) + ",") + toString(lpDecimals)) + ",") + pepe_market_str)
690732 let assets_ids = makeString_11C(assets, ",")
691733 let assets_weights = makeString_11C(assetWeights, ",")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let rex = "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU"
55
66 let swopfi_oracle = "3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom"
77
88 let pl_proxy = "3PJESVDTHRv8i83XbmHrRGQhDc5rgR3azQs"
99
1010 let orcl = "3P8d1E1BLKoD52y3bQJ1bDTd2TD1gpaLn9t"
1111
1212 let wx_factory_str = "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv"
1313
1414 let wx_swap_str = "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93"
1515
1616 let wx_factory = Address(fromBase58String(wx_factory_str))
1717
1818 let wx_swap = Address(fromBase58String(wx_swap_str))
1919
2020 let K_am_as_id = "%s__amountAsset"
2121
2222 let K_pr_as_id = "%s__priceAsset"
2323
2424 let K_amp = "%s__amp"
2525
2626 let K_share = "%s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7"
2727
2828 let K_staked = "%s%s__stakedBalance__WAVES"
2929
3030 let K_a_as_id = "A_asset_id"
3131
3232 let K_b_as_id = "B_asset_id"
3333
3434 let K_a_as_bal = "A_asset_balance"
3535
3636 let K_b_as_bal = "B_asset_balance"
3737
3838 let K_fee = "commission"
3939
4040 let K_asset_ids = "static_tokenIds"
4141
4242 let K_fee_puz = "static_fee"
4343
4444 let K_feeToken = "static_feeToken"
45+
46+let K_tmp_reblanceAssetIds = "tmp_rebalanceAssetIds"
47+
48+let K_rebalance_inProgress = "rebalance_inProgress"
49+
50+let K_rebalance_stepsDone = "rebalance_stepsDone"
51+
52+let K_rebalance_stepsAmount = "rebalance_stepsAmount"
53+
54+let K_rebalance_assetDeltas = "rebalance_assetDeltas"
55+
56+let K_rebalance_attachedPayment = "rebalance_attachedPayment_"
4557
4658 let tsn_swapper = "3PKz5jnJLohF2GjShQ7bG5H4BebdoA98zZ2"
4759
4860 let tsn_swapper_addr = Address(fromBase58String(tsn_swapper))
4961
5062 let k_fee = "k_fee"
5163
5264 let k_rebate = "k_rebate"
5365
5466 let k_feeToStakersPercent = "k_feeToStakersPercent"
5567
5668 let k_excessBalance = "k_excessBalance"
5769
5870 let k_freeBalance = "k_freeBalance"
5971
6072 let k_maxSpotUtilization = "k_maxSpotUtilization"
6173
6274 let k_totalSupply = "k_totalSupply"
6375
6476 let k_rate = "k_rate"
6577
6678 let k_bsAstR = "k_bsAstR"
6779
6880 let k_bsAstW = "k_bsAstW"
6981
7082 let k_qtAstR = "k_qtAstR"
7183
7284 let k_qtAstW = "k_qtAstW"
7385
7486 let k_maxPriceImpact = "k_maxPriceImpact"
7587
7688 let k_maxPriceSpread = "k_maxPriceSpread"
7789
7890 let k_totalPositionSize = "k_totalPositionSize"
7991
8092 let k_baseOracle = "k_baseOracle"
8193
8294 let k_maxOracleDelay = "k_maxOracleDelay"
8395
8496 let k_storage = "STORAGE"
8597
8698 let k_assets = "ASSETS"
8799
88100 let k_status = "STATUS"
89101
90102 let k_paused = "PAUSED"
91103
92104 let k_asset_balances = "ASSET_BALANCES"
93105
94106 let k_asset_weights = "ASSET_WEIGHTS"
95107
96108 let k_lp_fee = "LP_FEE"
97109
98110 let k_protocol_fee = "PROTOCOL_FEE"
99111
100112 let k_precision = "PRECISION"
101113
102114 let k_sigma_fee_per_lp = "SIGMA_FEE_PER_LP"
103115
104116 let k_user_sigma_fee_per_lp = "USER_SIGMA_FEE_PER_LP"
105117
106118 let k_user_lp = "USER_LP"
107119
108120 let k_total_lp = "TOTAL_LP"
109121
110122 let k_user_profits = "USER_PROFITS"
111123
112124 func get_domain (poolAddress) = match poolAddress {
113125 case _ =>
114126 if (("3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH" == $match0))
115127 then "1"
116128 else "0"
117129 }
118130
119131
120132 func k_plToken (asset_id,domain) = ((("setup_pl_" + asset_id) + "_") + domain)
121133
122134
123135 func k_total_supplied (asset_id) = ("total_supplied_" + asset_id)
124136
125137
126138 func k_sRate (asset_id) = (asset_id + "_sRate")
127139
128140
129141 func k_total_borrowed (asset_id) = ("total_borrowed_" + asset_id)
130142
131143
132144 func k_bRate (asset_id) = (asset_id + "_bRate")
133145
134146
135147 func k_maxSupply (asset_id) = ("setup_maxSupply_" + asset_id)
136148
137149
138150 let k_lastRateHeight = "lastRateHeight"
139151
140152 func getPuzBalanceKey (assetId) = (("global_" + assetId) + "_balance")
141153
142154
143155 func getPuzWeightKey (assetId) = (("static_" + assetId) + "_weight")
144156
145157
146158 func getBPAK (address) = (address + "_staticAssetsIds")
147159
148160
149161 func tryGetString (key,address) = match getString(address, key) {
150162 case b: String =>
151163 b
152164 case _ =>
153165 ""
154166 }
155167
156168
157169 func tryGetBool (key,address) = match getBoolean(address, key) {
158170 case b: Boolean =>
159171 b
160172 case _ =>
161173 false
162174 }
163175
164176
165177 func tryGetInteger (key,address) = match getInteger(address, key) {
166178 case b: Int =>
167179 b
168180 case _ =>
169181 0
170182 }
171183
172184
173185 func tryGetIntegerWithDef (key,address,def) = match getInteger(address, key) {
174186 case b: Int =>
175187 b
176188 case _ =>
177189 def
178190 }
179191
180192
181193 func getWxDefaultFees () = {
182194 let poolFee = tryGetIntegerWithDef("%s__poolFee", wx_swap, 200000)
183195 let protocolFee = tryGetIntegerWithDef("%s__protocolFee", wx_swap, 200000)
184196 $Tuple2(toString(poolFee), toString(protocolFee))
185197 }
186198
187199
188200 func getWxPoolFees (address) = {
189201 let feesKey = ("%s%s__swapFee__" + address)
190202 let fees = tryGetString(feesKey, wx_factory)
191203 if ((fees == ""))
192204 then getWxDefaultFees()
193205 else {
194206 let splittedFees = split(fees, "__")
195207 $Tuple2(splittedFees[1], splittedFees[2])
196208 }
197209 }
198210
199211
200212 func getAssetBalance (address,assetId) = {
201213 let a = assetBalance(address, assetId)
202214 a
203215 }
204216
205217
206218 func getWavesBalance (address) = {
207219 let w = wavesBalance(address).available
208220 w
209221 }
210222
211223
212224 func getBalance (result,assetId) = {
213225 let address = take(result, 35)
214226 let addr = Address(fromBase58String(address))
215227 let balance = if ((assetId == "WAVES"))
216228 then getWavesBalance(addr)
217229 else {
218230 let aId = fromBase58String(assetId)
219231 getAssetBalance(addr, aId)
220232 }
221233 let len = size(result)
222234 (((((address + drop(result, 35)) + assetId) + ":") + toString(balance)) + ",")
223235 }
224236
225237
226238 func getAddressBalance (addr,assetId) = {
227239 let balance = if ((assetId == "WAVES"))
228240 then getWavesBalance(addr)
229241 else {
230242 let aId = fromBase58String(assetId)
231243 getAssetBalance(addr, aId)
232244 }
233245 balance
234246 }
235247
236248
237249 func getAssetDecimals (assetIdStr) = {
238250 let decimals = if ((assetIdStr == "WAVES"))
239251 then 8
240252 else value(assetInfo(fromBase58String(assetIdStr))).decimals
241253 decimals
242254 }
243255
244256
245257 func getWxData (address) = {
246258 let addr = Address(fromBase58String(address))
247259 let amountId = tryGetString(K_am_as_id, addr)
248260 let priceId = tryGetString(K_pr_as_id, addr)
249261 let amp = tryGetString(K_amp, addr)
250262 let share = tryGetInteger(K_share, addr)
251263 let stake = tryGetInteger(K_staked, addr)
252- let $t060106061 = getWxPoolFees(address)
253- let poolFee = $t060106061._1
254- let protocolFee = $t060106061._2
255- let swapDisabled = {
256- let @ = invoke(wx_factory, "isPoolSwapDisabledREADONLY", [address], nil)
257- if ($isInstanceOf(@, "Boolean"))
258- then @
259- else throw(($getType(@) + " couldn't be cast to Boolean"))
260- }
261- $Tuple2(((amountId + ",") + priceId), ((((((((((amp + ",") + toString(share)) + ",") + toString(stake)) + ",") + poolFee) + ",") + protocolFee) + ",") + toString(swapDisabled)))
264+ let $t063446395 = getWxPoolFees(address)
265+ let poolFee = $t063446395._1
266+ let protocolFee = $t063446395._2
267+ $Tuple2(((amountId + ",") + priceId), ((((((((amp + ",") + toString(share)) + ",") + toString(stake)) + ",") + poolFee) + ",") + protocolFee))
262268 }
263269
264270
265271 func getSwData (address) = {
266272 let addr = Address(fromBase58String(address))
267273 let A_id = tryGetString(K_a_as_id, addr)
268274 let B_id = tryGetString(K_b_as_id, addr)
269275 let A_balance = tryGetInteger(K_a_as_bal, addr)
270276 let B_balance = tryGetInteger(K_b_as_bal, addr)
271277 let fee = tryGetIntegerWithDef(K_fee, addr, 6000)
272278 let deprecated = tryGetBool(("deprecated_" + address), Address(fromBase58String(swopfi_oracle)))
273279 ((((((((((A_id + ":") + toString(A_balance)) + ",") + B_id) + ":") + toString(B_balance)) + ",") + toString(fee)) + ",") + toString(deprecated))
280+ }
281+
282+
283+func getPzRebalanceData (address) = {
284+ let addr = Address(fromBase58String(address))
285+ let tmpAssetsStr = valueOrElse(getString(addr, K_tmp_reblanceAssetIds), "")
286+ let inProgress = valueOrElse(getBoolean(addr, K_rebalance_inProgress), false)
287+ let stepsDone = valueOrElse(getInteger(addr, K_rebalance_stepsDone), 0)
288+ let stepsAmount = valueOrElse(getInteger(addr, K_rebalance_stepsAmount), 0)
289+ let assetDeltas = valueOrElse(getString(addr, K_rebalance_assetDeltas), "")
290+ let tmpAssets = split(tmpAssetsStr, ",")
291+ func collectPayments (accum,assetId) = {
292+ let key = (K_rebalance_attachedPayment + assetId)
293+ let val = tryGetInteger(key, addr)
294+ if ((val != 0))
295+ then (accum ++ [((key + "*") + toString(val))])
296+ else accum
297+ }
298+
299+ let rebalancePayments = {
300+ let $l = tmpAssets
301+ let $s = size($l)
302+ let $acc0 = nil
303+ func $f0_1 ($a,$i) = if (($i >= $s))
304+ then $a
305+ else collectPayments($a, $l[$i])
306+
307+ func $f0_2 ($a,$i) = if (($i >= $s))
308+ then $a
309+ else throw("List size exceeds 10")
310+
311+ $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)
312+ }
313+ let rebalancePaymentsStr = makeString(rebalancePayments, ",")
314+ ((((((((((tmpAssetsStr + ";") + toString(inProgress)) + ";") + toString(stepsDone)) + ";") + toString(stepsAmount)) + ";") + assetDeltas) + ";") + rebalancePaymentsStr)
274315 }
275316
276317
277318 func collectPuzAssetsData (result,assetId) = {
278319 let len = size(result)
279320 let address = result[(len - 1)]
280321 let addr = Address(fromBase58String(address))
281322 let balanceKey = getPuzBalanceKey(assetId)
282323 let weightKey = getPuzWeightKey(assetId)
283324 let balance = tryGetInteger(balanceKey, addr)
284325 let weight = tryGetInteger(weightKey, addr)
285326 let realBalance = getAddressBalance(addr, assetId)
286327 let res = ((((((assetId + ",") + toString(balance)) + ",") + toString(weight)) + ",") + toString(realBalance))
287328 res :: result
288329 }
289330
290331
291332 func getPzData (address) = {
292333 let addr = Address(fromBase58String(address))
293334 let fee1 = tryGetInteger(K_fee_puz, addr)
294335 let feeToken = tryGetString(K_feeToken, addr)
295336 let assetsStr1 = tryGetString(K_asset_ids, addr)
296- let $t077377890 = if ((assetsStr1 == ""))
337+ let $t090319184 = if ((assetsStr1 == ""))
297338 then $Tuple2(tryGetString(getBPAK(address), this), 200)
298339 else $Tuple2(assetsStr1, fee1)
299- let assetsStr = $t077377890._1
300- let fee = $t077377890._2
340+ let assetsStr = $t090319184._1
341+ let fee = $t090319184._2
301342 let assets = split(assetsStr, ",")
302343 let assetsData = {
303344 let $l = assets
304345 let $s = size($l)
305346 let $acc0 = [address]
306347 func $f0_1 ($a,$i) = if (($i >= $s))
307348 then $a
308349 else collectPuzAssetsData($a, $l[$i])
309350
310351 func $f0_2 ($a,$i) = if (($i >= $s))
311352 then $a
312353 else throw("List size exceeds 10")
313354
314355 $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)
315356 }
316357 let len = size(assetsData)
317358 let assetsArr = removeByIndex(assetsData, (len - 1))
318359 let assetsDataStr = makeString_2C(assetsArr, ";")
319360 $Tuple3(fee, feeToken, assetsDataStr)
320361 }
321362
322363
323364 func getTsnData (address,asset_id) = {
324365 let addr = Address(fromBase58String(address))
325366 let bsAstR = tryGetInteger(k_bsAstR, addr)
326367 let bsAstW = tryGetInteger(k_bsAstW, addr)
327368 let qtAstR = tryGetInteger(k_qtAstR, addr)
328369 let qtAstW = tryGetInteger(k_qtAstW, addr)
329370 let maxPriceImpact = tryGetInteger(k_maxPriceImpact, addr)
330371 let maxPriceSpread = tryGetInteger(k_maxPriceSpread, addr)
331372 let totalPositionSize = tryGetInteger(k_totalPositionSize, addr)
332373 let maxOracleDelay = tryGetInteger(k_maxOracleDelay, addr)
333374 let oracleString = tryGetString(k_baseOracle, addr)
334375 let arr = split(oracleString, ",")
335- let $t088518917 = $Tuple3(arr[0], arr[1], arr[2])
336- let oracleAddress = $t088518917._1
337- let priceKey = $t088518917._2
338- let blockKey = $t088518917._3
376+ let $t01014510211 = $Tuple3(arr[0], arr[1], arr[2])
377+ let oracleAddress = $t01014510211._1
378+ let priceKey = $t01014510211._2
379+ let blockKey = $t01014510211._3
339380 let oracleAddr = Address(fromBase58String(oracleAddress))
340381 let oraclePrice = tryGetInteger(priceKey, oracleAddr)
341382 let curHeight = height
342383 let lastHeight = if ((blockKey != ""))
343384 then tryGetInteger(blockKey, oracleAddr)
344385 else curHeight
345386 let vault = tryGetString(("k_asset_vault_" + asset_id), tsn_swapper_addr)
346387 let vault_addr = Address(fromBase58String(vault))
347388 let excessBalance = tryGetInteger(k_excessBalance, vault_addr)
348389 let freeBalance = tryGetInteger(k_freeBalance, vault_addr)
349390 let maxSpotUtilization = tryGetInteger(k_maxSpotUtilization, vault_addr)
350391 let totalSupply = tryGetInteger(k_totalSupply, vault_addr)
351392 let rate = tryGetInteger(k_rate, vault_addr)
352393 $Tuple16(bsAstR, bsAstW, qtAstR, qtAstW, totalPositionSize, maxPriceImpact, maxPriceSpread, oraclePrice, excessBalance, freeBalance, maxSpotUtilization, totalSupply, rate, curHeight, lastHeight, maxOracleDelay)
353394 }
354395
355396
356397 func getPrice (assetId) = {
357398 let price = tryGetInteger((assetId + "_twap5B"), Address(fromBase58String(orcl)))
358399 price
359400 }
360401
361402
362403 func getPLData (pool_address,asset_id) = {
363404 let domain = get_domain(pool_address)
364405 let poolAdr = Address(fromBase58String(pool_address))
365406 let plTokenId = tryGetString(k_plToken(asset_id, domain), Address(fromBase58String(pl_proxy)))
366407 let sRate = tryGetInteger(k_sRate(asset_id), poolAdr)
367408 let bRate = tryGetInteger(k_bRate(asset_id), poolAdr)
368409 let totalSupplied = tryGetInteger(k_total_supplied(asset_id), poolAdr)
369410 let totalBorrowed = tryGetInteger(k_total_borrowed(asset_id), poolAdr)
370411 let maxSupply = tryGetString(k_maxSupply(asset_id), poolAdr)
371412 let lastHeight = tryGetInteger(k_lastRateHeight, poolAdr)
372413 let curHeight = height
373414 let price = getPrice(asset_id)
374415 let decimals = getAssetDecimals(asset_id)
375416 $Tuple11(asset_id, plTokenId, sRate, bRate, totalSupplied, totalBorrowed, maxSupply, lastHeight, curHeight, price, decimals)
376417 }
377418
378419
379420 func test_loop (result,ele) = ele :: result
380421
381422
382423 func getBalancesStr (assetsStr,address) = {
383424 let assets = split_4C(assetsStr, ",")
384425 let res = {
385426 let $l = assets
386427 let $s = size($l)
387428 let $acc0 = address
388429 func $f0_1 ($a,$i) = if (($i >= $s))
389430 then $a
390431 else getBalance($a, $l[$i])
391432
392433 func $f0_2 ($a,$i) = if (($i >= $s))
393434 then $a
394435 else throw("List size exceeds 2")
395436
396437 $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
397438 }
398439 let balances = drop(res, 35)
399440 let bals = dropRight(balances, 1)
400441 bals
401442 }
402443
403444
404445 func processWX (result,address) = {
405- let $t01129311336 = getWxData(address)
406- let assetsStr = $t01129311336._1
407- let datas = $t01129311336._2
446+ let $t01258712630 = getWxData(address)
447+ let assetsStr = $t01258712630._1
448+ let datas = $t01258712630._2
408449 let assetsString = getBalancesStr(assetsStr, address)
409450 let resItem = ((((address + "/") + assetsString) + "/") + datas)
410451 resItem :: result
411452 }
412453
413454
414455 func processSW (result,address) = {
415456 let assetsString = getSwData(address)
416457 let resItem = ((address + "/") + assetsString)
417458 resItem :: result
418459 }
419460
420461
421462 func processPZ (result,address) = {
422- let $t01173611790 = getPzData(address)
423- let fee = $t01173611790._1
424- let feeToken = $t01173611790._2
425- let assetsString = $t01173611790._3
426- let resItem = ((((((address + "/") + toString(fee)) + "/") + feeToken) + "/") + assetsString)
463+ let $t01303013084 = getPzData(address)
464+ let fee = $t01303013084._1
465+ let feeToken = $t01303013084._2
466+ let assetsString = $t01303013084._3
467+ let rebaData = getPzRebalanceData(address)
468+ let resItem = ((((((((address + "/") + toString(fee)) + "/") + feeToken) + "/") + assetsString) + "/") + rebaData)
427469 resItem :: result
428470 }
429471
430472
431473 func processTSN (result,label) = {
432474 let arr = split(label, "_")
433- let $t01200712049 = $Tuple2(arr[0], arr[1])
434- let address = $t01200712049._1
435- let asset_id = $t01200712049._2
436- let $t01205512293 = getTsnData(address, asset_id)
437- let bsAstR = $t01205512293._1
438- let bsAstW = $t01205512293._2
439- let qtAstR = $t01205512293._3
440- let qtAstW = $t01205512293._4
441- let totalPositionSize = $t01205512293._5
442- let maxPriceImpact = $t01205512293._6
443- let maxPriceSpread = $t01205512293._7
444- let oraclePrice = $t01205512293._8
445- let excessBalance = $t01205512293._9
446- let freeBalance = $t01205512293._10
447- let maxSpotUtilization = $t01205512293._11
448- let totalSupply = $t01205512293._12
449- let rate = $t01205512293._13
450- let curHeight = $t01205512293._14
451- let lastHeight = $t01205512293._15
452- let maxOracleDelay = $t01205512293._16
475+ let $t01336613408 = $Tuple2(arr[0], arr[1])
476+ let address = $t01336613408._1
477+ let asset_id = $t01336613408._2
478+ let $t01341413652 = getTsnData(address, asset_id)
479+ let bsAstR = $t01341413652._1
480+ let bsAstW = $t01341413652._2
481+ let qtAstR = $t01341413652._3
482+ let qtAstW = $t01341413652._4
483+ let totalPositionSize = $t01341413652._5
484+ let maxPriceImpact = $t01341413652._6
485+ let maxPriceSpread = $t01341413652._7
486+ let oraclePrice = $t01341413652._8
487+ let excessBalance = $t01341413652._9
488+ let freeBalance = $t01341413652._10
489+ let maxSpotUtilization = $t01341413652._11
490+ let totalSupply = $t01341413652._12
491+ let rate = $t01341413652._13
492+ let curHeight = $t01341413652._14
493+ let lastHeight = $t01341413652._15
494+ let maxOracleDelay = $t01341413652._16
453495 let asset_decimals = if ((asset_id == "WAVES"))
454496 then 8
455497 else valueOrErrorMessage(assetInfo(fromBase58String(asset_id)), ("Ivalid asset " + asset_id)).decimals
456498 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)) + ",") + toString(curHeight)) + ",") + toString(lastHeight)) + ",") + toString(maxOracleDelay))
457499 resItem :: result
458500 }
459501
460502
461503 func processPL (result,label) = {
462504 let arr = split(label, "-")
463- let $t01318313230 = $Tuple2(arr[0], arr[1])
464- let pool_address = $t01318313230._1
465- let asset_id = $t01318313230._2
466- let $t01323613393 = getPLData(pool_address, asset_id)
467- let asset_idd = $t01323613393._1
468- let plTokenId = $t01323613393._2
469- let sRate = $t01323613393._3
470- let bRate = $t01323613393._4
471- let totalSupplied = $t01323613393._5
472- let totalBorrowed = $t01323613393._6
473- let maxSupply = $t01323613393._7
474- let lastHeight = $t01323613393._8
475- let curHeight = $t01323613393._9
476- let price = $t01323613393._10
477- let decimals = $t01323613393._11
505+ let $t01454214589 = $Tuple2(arr[0], arr[1])
506+ let pool_address = $t01454214589._1
507+ let asset_id = $t01454214589._2
508+ let $t01459514752 = getPLData(pool_address, asset_id)
509+ let asset_idd = $t01459514752._1
510+ let plTokenId = $t01459514752._2
511+ let sRate = $t01459514752._3
512+ let bRate = $t01459514752._4
513+ let totalSupplied = $t01459514752._5
514+ let totalBorrowed = $t01459514752._6
515+ let maxSupply = $t01459514752._7
516+ let lastHeight = $t01459514752._8
517+ let curHeight = $t01459514752._9
518+ let price = $t01459514752._10
519+ let decimals = $t01459514752._11
478520 let resItem = ((((((((((((((((((((((label + ",") + asset_idd) + ",") + plTokenId) + ",") + toString(sRate)) + ",") + toString(bRate)) + ",") + toString(totalSupplied)) + ",") + toString(totalBorrowed)) + ",") + maxSupply) + ",") + toString(lastHeight)) + ",") + toString(curHeight)) + ",") + toString(price)) + ",") + toString(decimals))
479521 resItem :: result
480522 }
481523
482524
483525 func getWX (params) = {
484526 let pools = split_51C(params, ",")
485527 let resArr = {
486528 let $l = pools
487529 let $s = size($l)
488530 let $acc0 = nil
489531 func $f0_1 ($a,$i) = if (($i >= $s))
490532 then $a
491533 else processWX($a, $l[$i])
492534
493535 func $f0_2 ($a,$i) = if (($i >= $s))
494536 then $a
495537 else throw("List size exceeds 120")
496538
497539 $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)
498540 }
499541 let result = makeString_11C(resArr, "|")
500542 result
501543 }
502544
503545
504546 func getSW (params) = {
505547 let pools = split_4C(params, ",")
506548 let resArr = {
507549 let $l = pools
508550 let $s = size($l)
509551 let $acc0 = nil
510552 func $f0_1 ($a,$i) = if (($i >= $s))
511553 then $a
512554 else processSW($a, $l[$i])
513555
514556 func $f0_2 ($a,$i) = if (($i >= $s))
515557 then $a
516558 else throw("List size exceeds 100")
517559
518560 $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)
519561 }
520562 let result = makeString_11C(resArr, "|")
521563 result
522564 }
523565
524566
525567 func getPZ (params) = {
526568 let pools = split_4C(params, ",")
527569 let resArr = {
528570 let $l = pools
529571 let $s = size($l)
530572 let $acc0 = nil
531573 func $f0_1 ($a,$i) = if (($i >= $s))
532574 then $a
533575 else processPZ($a, $l[$i])
534576
535577 func $f0_2 ($a,$i) = if (($i >= $s))
536578 then $a
537579 else throw("List size exceeds 100")
538580
539581 $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)
540582 }
541583 let result = makeString_11C(resArr, "|")
542584 result
543585 }
544586
545587
546588 func getTSN (params) = {
547589 let vaults_labels = split(params, ",")
548590 let resArr = {
549591 let $l = vaults_labels
550592 let $s = size($l)
551593 let $acc0 = nil
552594 func $f0_1 ($a,$i) = if (($i >= $s))
553595 then $a
554596 else processTSN($a, $l[$i])
555597
556598 func $f0_2 ($a,$i) = if (($i >= $s))
557599 then $a
558600 else throw("List size exceeds 10")
559601
560602 $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)
561603 }
562604 let result = makeString_2C(resArr, "|")
563605 let fee = tryGetInteger(k_fee, tsn_swapper_addr)
564606 let rebate = tryGetInteger(k_rebate, tsn_swapper_addr)
565607 let feeToStakersPercent = tryGetInteger(k_feeToStakersPercent, tsn_swapper_addr)
566608 ((((((toString(fee) + ",") + toString(rebate)) + ",") + toString(feeToStakersPercent)) + "/") + result)
567609 }
568610
569611
570612 func getPL (params) = {
571613 let pools = split(params, ",")
572614 let resArr = {
573615 let $l = pools
574616 let $s = size($l)
575617 let $acc0 = nil
576618 func $f0_1 ($a,$i) = if (($i >= $s))
577619 then $a
578620 else processPL($a, $l[$i])
579621
580622 func $f0_2 ($a,$i) = if (($i >= $s))
581623 then $a
582624 else throw("List size exceeds 10")
583625
584626 $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)
585627 }
586628 let result = makeString_2C(resArr, "|")
587629 result
588630 }
589631
590632
591633 func loadPepeAssets (pepe_market) = {
592634 let assets = tryGetString(k_assets, pepe_market)
593635 split_4C(assets, "__")
594636 }
595637
596638
597639 func loadPepeAssetBalances (pepe_market) = {
598640 func foldFunc (acc,elem) = {
599641 let balance = parseIntValue(elem)
600642 $Tuple2((acc._1 :+ elem), (acc._2 + balance))
601643 }
602644
603645 let assetBalances = tryGetString(k_asset_balances, pepe_market)
604646 let $l = split_51C(assetBalances, "__")
605647 let $s = size($l)
606648 let $acc0 = $Tuple2(nil, 0)
607649 func $f0_1 ($a,$i) = if (($i >= $s))
608650 then $a
609651 else foldFunc($a, $l[$i])
610652
611653 func $f0_2 ($a,$i) = if (($i >= $s))
612654 then $a
613655 else throw("List size exceeds 10")
614656
615657 $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)
616658 }
617659
618660
619661 func loadPepeAssetWeights (pepe_market) = {
620662 func foldFunc (acc,elem) = {
621663 let weight = parseIntValue(elem)
622664 $Tuple2((acc._1 :+ elem), (acc._2 + weight))
623665 }
624666
625667 let assetWeights = tryGetString(k_asset_weights, pepe_market)
626668 let $l = split_4C(assetWeights, "__")
627669 let $s = size($l)
628670 let $acc0 = $Tuple2(nil, 0)
629671 func $f0_1 ($a,$i) = if (($i >= $s))
630672 then $a
631673 else foldFunc($a, $l[$i])
632674
633675 func $f0_2 ($a,$i) = if (($i >= $s))
634676 then $a
635677 else throw("List size exceeds 10")
636678
637679 $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)
638680 }
639681
640682
641683 func loadPepeDecimals (assets) = {
642684 func getDecs (acc,item) = {
643685 let decimals = getAssetDecimals(item)
644686 (acc :+ toString(decimals))
645687 }
646688
647689 let $l = assets
648690 let $s = size($l)
649691 let $acc0 = nil
650692 func $f0_1 ($a,$i) = if (($i >= $s))
651693 then $a
652694 else getDecs($a, $l[$i])
653695
654696 func $f0_2 ($a,$i) = if (($i >= $s))
655697 then $a
656698 else throw("List size exceeds 11")
657699
658700 $f0_2($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)
659701 }
660702
661703
662704 func processPepe (result,pepe_market_str) = {
663705 let pepe_market = Address(fromBase58String(pepe_market_str))
664706 let storage = tryGetString(k_storage, pepe_market)
665707 let sarr = split_4C(storage, "__")
666- let $t01760717828 = $Tuple9(sarr[0], (sarr[1] == "1"), sarr[2], sarr[3], sarr[4], sarr[5], sarr[6], sarr[7], sarr[8])
667- let lpAssetId = $t01760717828._1
668- let unlocked = $t01760717828._2
669- let lpTotalSupply = $t01760717828._3
670- let lpFeeRate = $t01760717828._4
671- let protocolFeeRate = $t01760717828._5
672- let maxAllocAmplifier = $t01760717828._6
673- let weightAmplifier = $t01760717828._7
674- let slippageRate = $t01760717828._8
675- let feeMaxRate = $t01760717828._9
708+ let $t01911019331 = $Tuple9(sarr[0], (sarr[1] == "1"), sarr[2], sarr[3], sarr[4], sarr[5], sarr[6], sarr[7], sarr[8])
709+ let lpAssetId = $t01911019331._1
710+ let unlocked = $t01911019331._2
711+ let lpTotalSupply = $t01911019331._3
712+ let lpFeeRate = $t01911019331._4
713+ let protocolFeeRate = $t01911019331._5
714+ let maxAllocAmplifier = $t01911019331._6
715+ let weightAmplifier = $t01911019331._7
716+ let slippageRate = $t01911019331._8
717+ let feeMaxRate = $t01911019331._9
676718 let precision = tryGetInteger(k_precision, pepe_market)
677719 let sigmaFeePerLp = tryGetString(k_sigma_fee_per_lp, pepe_market)
678720 let paused = tryGetBool(k_paused, pepe_market)
679721 let totalLp = tryGetInteger(k_total_lp, pepe_market)
680722 let lpDecimals = getAssetDecimals(lpAssetId)
681723 let assets = loadPepeAssets(pepe_market)
682724 let decimals_arr = loadPepeDecimals(assets)
683- let $t01822118288 = loadPepeAssetWeights(pepe_market)
684- let assetWeights = $t01822118288._1
685- let sigmaWeight = $t01822118288._2
686- let $t01829418377 = loadPepeAssetBalances(pepe_market)
687- let prevAssetBalances = $t01829418377._1
688- let prevAssetTotalSupply = $t01829418377._2
725+ let $t01972419791 = loadPepeAssetWeights(pepe_market)
726+ let assetWeights = $t01972419791._1
727+ let sigmaWeight = $t01972419791._2
728+ let $t01979719880 = loadPepeAssetBalances(pepe_market)
729+ let prevAssetBalances = $t01979719880._1
730+ let prevAssetTotalSupply = $t01979719880._2
689731 let main_str = ((((((((((((((((((((((((((((((((lpAssetId + ",") + toString(unlocked)) + ",") + lpTotalSupply) + ",") + lpFeeRate) + ",") + protocolFeeRate) + ",") + maxAllocAmplifier) + ",") + weightAmplifier) + ",") + slippageRate) + ",") + feeMaxRate) + ",") + toString(sigmaWeight)) + ",") + toString(prevAssetTotalSupply)) + ",") + toString(precision)) + ",") + sigmaFeePerLp) + ",") + toString(totalLp)) + ",") + toString(paused)) + ",") + toString(lpDecimals)) + ",") + pepe_market_str)
690732 let assets_ids = makeString_11C(assets, ",")
691733 let assets_weights = makeString_11C(assetWeights, ",")
692734 let assets_balances = makeString_11C(prevAssetBalances, ",")
693735 let assets_decimals = makeString_11C(decimals_arr, ",")
694736 let res = ((((((((main_str + "|") + assets_ids) + "|") + assets_weights) + "|") + assets_balances) + "|") + assets_decimals)
695737 (result :+ res)
696738 }
697739
698740
699741 func getPepe (params) = {
700742 let addresses = split(params, ",")
701743 let resArr = {
702744 let $l = addresses
703745 let $s = size($l)
704746 let $acc0 = nil
705747 func $f0_1 ($a,$i) = if (($i >= $s))
706748 then $a
707749 else processPepe($a, $l[$i])
708750
709751 func $f0_2 ($a,$i) = if (($i >= $s))
710752 then $a
711753 else throw("List size exceeds 10")
712754
713755 $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)
714756 }
715757 let result = makeString_11C(resArr, ";")
716758 result
717759 }
718760
719761
720762 @Callable(i)
721763 func test (s) = {
722764 let r = tryGetBool("deprecated_3P286TkTHARtrJzxUhPoHXardvutC37a9rM", Address(fromBase58String(swopfi_oracle)))
723765 throw(toString(r))
724766 }
725767
726768

github/deemru/w8io/3ef1775 
96.40 ms