tx · 5Q4sY49apvAUgv1caA55zV47WLFUbUVcHmoAVNLppp8r 3NAfzeA3URU6oCV6HvtAiNwqGXsTs87ZpHh: -0.02400000 Waves 2023.02.10 10:54 [2443255] smart account 3NAfzeA3URU6oCV6HvtAiNwqGXsTs87ZpHh > SELF 0.00000000 Waves
{ "type": 13, "id": "5Q4sY49apvAUgv1caA55zV47WLFUbUVcHmoAVNLppp8r", "fee": 2400000, "feeAssetId": null, "timestamp": 1676015664219, "version": 2, "chainId": 84, "sender": "3NAfzeA3URU6oCV6HvtAiNwqGXsTs87ZpHh", "senderPublicKey": "HiTi1JT7GQRqLNxg4yZhD1mV42y1Mv2AYvRx92JQRbwX", "proofs": [ "15QzAudUttPoiQacDAJmLJqGbgWm8MwFnrEdd9DdeKvgpmVEwwDhx3QpoKyjFx9QqfCgggNtNm9DhTRTPsNQtjp" ], "script": "base64:BgJWCAISBAoCAQQSBQoDCAEBEgUKAwgBARIDCgEIEgMKAQgSBAoCCAESBQoDCAEIEgUKAwgBCBIFCgMIAQgSAwoBARIDCgEBEgQKAgEBEgMKAQESBAoCAQFwAAZFVUxFUjgA1onPgQEABU1VTFQ2AMCEPQAGTVVMVFg2CQC2AgEAwIQ9AAVNVUxUOACAwtcvAAZNVUxUWDgJALYCAQCAwtcvAAdNVUxUWDEwCQC2AgEAgMivoCUABk1VTFQxMgCAoJSljR0AB01VTFRYMTYJALYCAQCAgIT+pt7hEQAGTVVMVDE4CQC2AgEAgICQu7rWrfANAANTRVACAl9fABFERUZBVUxUU1dBUEZFRU4yVwCIJwARREVGQVVMVFNXQVBGRUVXMk4AoJwBAAtCUlBST1RFQ1RFRACgjQYAB1dBVkVTSUQJANkEAQIFV0FWRVMACURBWU1JTExJUwCAuJkpARJrZXlOZXV0cmlub0Fzc2V0SWQAAhFuZXV0cmlub19hc3NldF9pZAEOa2V5TnNidEFzc2V0SWQAAg1ib25kX2Fzc2V0X2lkAQ5rZXlTdXJmQXNzZXRJZAACDXN1cmZfYXNzZXRfaWQBFWtleU1pbldhdmVzU3dhcEFtb3VudAACFW1pbl93YXZlc19zd2FwX2Ftb3VudAEYa2V5TWluTmV1dHJpbm9Td2FwQW1vdW50AAIYbWluX25ldXRyaW5vX3N3YXBfYW1vdW50ARJrZXlXYXZlc091dEZlZVBhcnQAAhV3YXZlc091dF9zd2FwX2ZlZVBhcnQBFWtleU5ldXRyaW5vT3V0RmVlUGFydAACGG5ldXRyaW5vT3V0X3N3YXBfZmVlUGFydAETa2V5U3dhcEFtb3VudEFQYXJhbQACGCVzJXNfX2NvbmZpZ19fc3dhcEFQYXJhbQETa2V5U3dhcEFtb3VudEJQYXJhbQACGCVzJXNfX2NvbmZpZ19fc3dhcEJQYXJhbQEXa2V5VXNkblN3YXBBbW91bnRBUGFyYW0AAhwlcyVzX19jb25maWdfX3VzZG5Td2FwQVBhcmFtARdrZXlVc2RuU3dhcEFtb3VudEJQYXJhbQACHCVzJXNfX2NvbmZpZ19fdXNkblN3YXBCUGFyYW0BE2tleU5zYnRMb2NrQ29udHJhY3QAAhQlc19fbnNidExvY2tDb250cmFjdAEPa2V5TWF0aENvbnRyYWN0AAIQJXNfX21hdGhDb250cmFjdAEba2V5QmFsYW5jZVdhdmVzTG9ja0ludGVydmFsAAIbYmFsYW5jZV93YXZlc19sb2NrX2ludGVydmFsAR5rZXlCYWxhbmNlTmV1dHJpbm9Mb2NrSW50ZXJ2YWwAAh5iYWxhbmNlX25ldXRyaW5vX2xvY2tfaW50ZXJ2YWwBD2Jhc2tldEFzc2V0c0tleQACGiVzJXNfX2NvbW1vbl9fYmFza2V0QXNzZXRzAQhrZXlQcmljZQACBXByaWNlARZrZXlMb2NrUGFyYW1TdGFydEJsb2NrAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgtwYXJhbUJ5VXNlcgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCAgVzdGFydAUDbmlsBQNTRVABC2tleUhhbGZMaWZlAAIMJXNfX2hhbGZMaWZlARBrZXlNaW5Mb2NrQW1vdW50AAIRJXNfX21pbkxvY2tBbW91bnQBFWtleU1pbldhdmVzRm9yTnNidEJ1eQACEm1pbl93YXZlc19uc2J0X2J1eQEOa2V5TWluTnNidFNlbGwAAg1taW5fbnNidF9zZWxsARdrZXlTdGF0c0RlcG9zaXRBbXRCeURheQEJdGltZXN0YW1wCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICBXN0YXRzCQDMCAICD2RlcG9zaXRBbXRCeURheQkAzAgCCQCkAwEFCXRpbWVzdGFtcAUDbmlsBQNTRVABDHRvU3RhcnRPZkRheQEJdGltZXN0YW1wCQBoAgkAaQIFCXRpbWVzdGFtcAUJREFZTUlMTElTBQlEQVlNSUxMSVMBD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQxnZXRJbnRPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUHYWRkcmVzcwUDa2V5CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgIBLgkAzAgCBQNrZXkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAENZ2V0Qm9vbE9yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmwgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQxnZXRJbnRPckVsc2UDB2FkZHJlc3MDa2V5CmRlZmF1bHRWYWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUHYWRkcmVzcwUDa2V5BQpkZWZhdWx0VmFsAQxnZXRTdHJPckVsc2UDB2FkZHJlc3MDa2V5CmRlZmF1bHRWYWwJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUHYWRkcmVzcwUDa2V5BQpkZWZhdWx0VmFsARZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAgZhbW91bnQFcHJpY2UJAGsDBQZhbW91bnQFBU1VTFQ4BQVwcmljZQEWY29udmVydFdhdmVzVG9OZXV0cmlubwIGYW1vdW50BXByaWNlCQBrAwUGYW1vdW50BQVwcmljZQUFTVVMVDgBCWFzQW55TGlzdAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIJTGlzdFtBbnldBAp2YWxBbnlMaXN0BQckbWF0Y2gwBQp2YWxBbnlMaXN0CQACAQIbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQVhc0ludAEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIDSW50BAZ2YWxJbnQFByRtYXRjaDAFBnZhbEludAkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEIYXNTdHJpbmcBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACBlN0cmluZwQGdmFsU3RyBQckbWF0Y2gwBQZ2YWxTdHIJAAIBAhhmYWlsIHRvIGNhc3QgaW50byBTdHJpbmcBDGFzVHVwbGUySW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIKKEludCwgSW50KQQBdgUHJG1hdGNoMAUBdgkAAgECHWZhaWwgdG8gY2FzdCBpbnRvIFR1cGxlMiBpbnRzARJhc1N3YXBQYXJhbXNTVFJVQ1QBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACIyhJbnQsIEludCwgSW50LCBJbnQsIEludCwgSW50LCBJbnQpBAZzdHJ1Y3QFByRtYXRjaDAFBnN0cnVjdAkAAgECImZhaWwgdG8gY2FzdCBpbnRvIFN3YXBQYXJhbXNTVFJVQ1QBFmFzV2l0aGRyYXdSZXN1bHRTVFJVQ1QBA3ZhbAQHJG1hdGNoMAUDdmFsAwMJAAECBQckbWF0Y2gwAjEoSW50LCBVbml0LCBJbnQsIEludCwgSW50LCBJbnQsIEludCwgSW50LCBTdHJpbmcpBgkAAQIFByRtYXRjaDACNyhJbnQsIEJ5dGVWZWN0b3IsIEludCwgSW50LCBJbnQsIEludCwgSW50LCBJbnQsIFN0cmluZykEBnN0cnVjdAUHJG1hdGNoMAUGc3RydWN0CQACAQIgZmFpbCB0byBjYXN0IGludG8gV2l0aGRyYXdSZXN1bHQBC3RvVGltZXN0YW1wAQVzdGFydAMJAGYCAAAFBXN0YXJ0AP///////////wEEByRtYXRjaDAJAO0HAQUFc3RhcnQDCQABAgUHJG1hdGNoMAIJQmxvY2tJbmZvBAVibG9jawUHJG1hdGNoMAgFBWJsb2NrCXRpbWVzdGFtcAD///////////8BAQV0b1gxOAIHb3JpZ1ZhbA1vcmlnU2NhbGVNdWx0CQC8AgMJALYCAQUHb3JpZ1ZhbAUGTVVMVDE4CQC2AgEFDW9yaWdTY2FsZU11bHQBB2Zyb21YMTgCA3ZhbA9yZXN1bHRTY2FsZU11bHQJAKADAQkAvAIDBQN2YWwJALYCAQUPcmVzdWx0U2NhbGVNdWx0BQZNVUxUMTgAD25NZXRyaWNJZHhQcmljZQAAABtuTWV0cmljSWR4VXNkbkxvY2tlZEJhbGFuY2UAAQAcbk1ldHJpY0lkeFdhdmVzTG9ja2VkQmFsYW5jZQACABFuTWV0cmljSWR4UmVzZXJ2ZQADABduTWV0cmljSWR4UmVzZXJ2ZUluVXNkbgAEABRuTWV0cmljSWR4VXNkblN1cHBseQAFABFuTWV0cmljSWR4U3VycGx1cwAGABhuTWV0cmljSWR4U3VycGx1c1BlcmNlbnQABwAMbk1ldHJpY0lkeEJSAAgAFG5NZXRyaWNJZHhOc2J0U3VwcGx5AAkAF25NZXRyaWNJZHhNYXhOc2J0U3VwcGx5AAoAFG5NZXRyaWNJZHhTdXJmU3VwcGx5AAsAGUlkeENvbnRyb2xDZmdOZXV0cmlub0RhcHAAAQAYSWR4Q29udHJvbENmZ0F1Y3Rpb25EYXBwAAIAFElkeENvbnRyb2xDZmdScGREYXBwAAMAFUlkeENvbnRyb2xDZmdNYXRoRGFwcAAEABxJZHhDb250cm9sQ2ZnTGlxdWlkYXRpb25EYXBwAAUAFUlkeENvbnRyb2xDZmdSZXN0RGFwcAAGAB1JZHhDb250cm9sQ2ZnTm9kZVJlZ2lzdHJ5RGFwcAAHABxJZHhDb250cm9sQ2ZnTnNidFN0YWtpbmdEYXBwAAgAGUlkeENvbnRyb2xDZmdNZWRpYXRvckRhcHAACQAcSWR4Q29udHJvbENmZ1N1cmZTdGFraW5nRGFwcAAKACBJZHhDb250cm9sQ2ZnR25zYnRDb250cm9sbGVyRGFwcAALAAxiRnVuY0lkeFN1cmYAAAANYkZ1bmNJZHhXYXZlcwABAAxiRnVuY0lkeFVzZG4AAgAUYkZ1bmNJZHhSZXNlcnZlU3RhcnQAAwATYkZ1bmNJZHhTdXBwbHlTdGFydAAEAA9iRnVuY0lkeEJSU3RhcnQABQASYkZ1bmNJZHhSZXNlcnZlRW5kAAYAEWJGdW5jSWR4U3VwcGx5RW5kAAcADWJGdW5jSWR4QlJFbmQACAAMYkZ1bmNJZHhSZXN0AAkAEmJGdW5jSWR4V2F2ZXNQcmljZQAKARFrZXlDb250cm9sQWRkcmVzcwACHCVzJXNfX2NvbmZpZ19fY29udHJvbEFkZHJlc3MBDWtleUNvbnRyb2xDZmcAAhElc19fY29udHJvbENvbmZpZwEUcmVhZENvbnRyb2xDZmdPckZhaWwBB2NvbnRyb2wJALwJAgkBD2dldFN0cmluZ09yRmFpbAIFB2NvbnRyb2wJAQ1rZXlDb250cm9sQ2ZnAAUDU0VQARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCCmNvbnRyb2xDZmcDaWR4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQpjb250cm9sQ2ZnBQNpZHgJAKwCAgItQ29udHJvbCBjZmcgZG9lc24ndCBjb250YWluIGFkZHJlc3MgYXQgaW5kZXggCQCkAwEFA2lkeAAPY29udHJvbENvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARFrZXlDb250cm9sQWRkcmVzcwACIzNONE5TN2Q0Sm85YTZGMTRMaUZVS0tZVmRVa2tmMmVQNFp4AApjb250cm9sQ2ZnCQEUcmVhZENvbnRyb2xDZmdPckZhaWwBBQ9jb250cm9sQ29udHJhY3QADG1hdGhDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFFUlkeENvbnRyb2xDZmdNYXRoRGFwcAAQbmV1dHJpbm9Db250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFGUlkeENvbnRyb2xDZmdOZXV0cmlub0RhcHAAD2F1Y3Rpb25Db250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFGElkeENvbnRyb2xDZmdBdWN0aW9uRGFwcAATbGlxdWlkYXRpb25Db250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCmNvbnRyb2xDZmcFHElkeENvbnRyb2xDZmdMaXF1aWRhdGlvbkRhcHAAC3JwZENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUUSWR4Q29udHJvbENmZ1JwZERhcHAAE25zYnRTdGFraW5nQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBRxJZHhDb250cm9sQ2ZnTnNidFN0YWtpbmdEYXBwABNzdXJmU3Rha2luZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUKY29udHJvbENmZwUcSWR4Q29udHJvbENmZ1N1cmZTdGFraW5nRGFwcAAXZ25zYnRDb250cm9sbGVyQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQpjb250cm9sQ2ZnBSBJZHhDb250cm9sQ2ZnR25zYnRDb250cm9sbGVyRGFwcAAVbmV1dHJpbm9Bc3NldElkU3RyaW5nCQEPZ2V0U3RyaW5nT3JGYWlsAgUQbmV1dHJpbm9Db250cmFjdAkBEmtleU5ldXRyaW5vQXNzZXRJZAAAD25ldXRyaW5vQXNzZXRJZAkA2QQBBRVuZXV0cmlub0Fzc2V0SWRTdHJpbmcADm5zYnRBc3NldElkU3RyCQERQGV4dHJOYXRpdmUoMTA1MykCBRBuZXV0cmlub0NvbnRyYWN0CQEOa2V5TnNidEFzc2V0SWQAAAtuc2J0QXNzZXRJZAkA2QQBBQ5uc2J0QXNzZXRJZFN0cgAOc3VyZkFzc2V0SWRTdHIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFD2F1Y3Rpb25Db250cmFjdAkBDmtleVN1cmZBc3NldElkAAALc3VyZkFzc2V0SWQJANkEAQUOc3VyZkFzc2V0SWRTdHIBFHJlYWRVc2RuSW5jb21lRm9yRGF5AwpzdGFraW5nQWNjE3N0YXJ0T2ZEYXlUaW1lc3RhbXAPbmV1dHJpbm9NZXRyaWNzBAthbXRCeURheUtFWQkBF2tleVN0YXRzRGVwb3NpdEFtdEJ5RGF5AQUTc3RhcnRPZkRheVRpbWVzdGFtcAQJaW5jb21lU3RyCQEMZ2V0U3RyT3JFbHNlAwUKc3Rha2luZ0FjYwULYW10QnlEYXlLRVkCCiVzJXNfXzBfXzAEC2luY29tZUFycmF5CQC1CQIFCWluY29tZVN0cgUDU0VQBAh3YXZlc0FtdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC2luY29tZUFycmF5AAEEB3VzZG5BbXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtpbmNvbWVBcnJheQACBAxjdXJyZW50UHJpY2UJAQVhc0ludAEJAJEDAgUPbmV1dHJpbm9NZXRyaWNzBQ9uTWV0cmljSWR4UHJpY2UEDndhdmVzQXNVc2RuQW10CQBrAwUId2F2ZXNBbXQFDGN1cnJlbnRQcmljZQUFTVVMVDgJAGQCBQ53YXZlc0FzVXNkbkFtdAUHdXNkbkFtdAEXY2FsY1VzZG5JbmNvbWVGb3JQZXJpb2QCCnN0YWtpbmdBY2MEZGF5cwQPbmV1dHJpbm9NZXRyaWNzCQEJYXNBbnlMaXN0AQkA/AcEBQxtYXRoQ29udHJhY3QCGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQNuaWwFA25pbAQOY3VyclN0YXJ0T2ZEYXkJAQx0b1N0YXJ0T2ZEYXkBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQOc3RhcnRUaW1lc3RhbXAJAGUCBQ5jdXJyU3RhcnRPZkRheQkAaAIFCURBWU1JTExJUwkAZAIFBGRheXMAAQQMZW5kVGltZXN0YW1wCQBlAgUOY3VyclN0YXJ0T2ZEYXkFCURBWU1JTExJUwQPc3RhcnRVc2RuQW10VE1QCQEUcmVhZFVzZG5JbmNvbWVGb3JEYXkDBQpzdGFraW5nQWNjBQ5zdGFydFRpbWVzdGFtcAUPbmV1dHJpbm9NZXRyaWNzBAplbmRVc2RuQW10CQEUcmVhZFVzZG5JbmNvbWVGb3JEYXkDBQpzdGFraW5nQWNjBQxlbmRUaW1lc3RhbXAFD25ldXRyaW5vTWV0cmljcwQMc3RhcnRVc2RuQW10AwkAAAIFD3N0YXJ0VXNkbkFtdFRNUAAABQplbmRVc2RuQW10BQ9zdGFydFVzZG5BbXRUTVAJAGUCBQplbmRVc2RuQW10BQxzdGFydFVzZG5BbXQBB2NhbGNBcHIECnN0YWtpbmdBY2MMcGVyaW9kSW5EYXlzD2luY29tZUZvclBlcmlvZBlzdGFraW5nQXNzZXRQcmljZVRvVXNkblg2BAt0b3RhbFN0YWtlZAkBDGdldEludE9yRWxzZQMFCnN0YWtpbmdBY2MCHiVzJXNfX3N0YXRzX19hY3RpdmVUb3RhbExvY2tlZAABBBF0b3RhbFN0YWtlZEluVXNkbgkAawMFC3RvdGFsU3Rha2VkBRlzdGFraW5nQXNzZXRQcmljZVRvVXNkblg2BQVNVUxUNgMJAGYCAAAFD2luY29tZUZvclBlcmlvZAAACQBrAwkAaAIFD2luY29tZUZvclBlcmlvZAUFTVVMVDYA7QIJAGgCBRF0b3RhbFN0YWtlZEluVXNkbgUMcGVyaW9kSW5EYXlzDgFpARhyZXZlcnNlU3dhcExpbWl0UkVBRE9OTFkCA2xpbQtpc1dhdmVzU3dhcAQCQlIJAQVhc0ludAEJAJEDAgkBCWFzQW55TGlzdAEJAPwHBAUMbWF0aENvbnRyYWN0AhpjYWxjTmV1dGlub01ldHJpY3NSRUFET05MWQUDbmlsBQNuaWwFDG5NZXRyaWNJZHhCUgQFZ05zYnQDCQBnAgAABQNsaW0AAAQIYVBhcmFtWDgJALYCAQkBDGdldEludE9yRmFpbAIFDG1hdGhDb250cmFjdAMFC2lzV2F2ZXNTd2FwCQETa2V5U3dhcEFtb3VudEFQYXJhbQAJARdrZXlVc2RuU3dhcEFtb3VudEFQYXJhbQAECWJQYXJhbVgxNgkAtgIBCQEMZ2V0SW50T3JGYWlsAgUMbWF0aENvbnRyYWN0AwULaXNXYXZlc1N3YXAJARNrZXlTd2FwQW1vdW50QlBhcmFtAAkBF2tleVVzZG5Td2FwQW1vdW50QlBhcmFtAAQJbGltRGl2QVg4AwULaXNXYXZlc1N3YXAJALwCAwkAtgIBBQNsaW0FB01VTFRYMTAFCGFQYXJhbVg4CQC8AgMJALwCAwkAtgIBBQNsaW0FB01VTFRYMTAFCGFQYXJhbVg4BQZNVUxUWDYJALYCAQUCQlIEB3JldkJYMTYJALwCAwUHTVVMVFgxNgUHTVVMVFgxNgUJYlBhcmFtWDE2CQCgAwEJAHYGBQlsaW1EaXZBWDgACAUHcmV2QlgxNgAQAAYFB0NFSUxJTkcJAJQKAgUDbmlsBQVnTnNidAFpARFnbnNidEluZm9JTlRFUk5BTAMVdXNlckFkZHJlc3NTdHJPckVtcHR5G2FkZGl0aW9uYWxOc2J0VG9TdGFrZU9yWmVybxthZGRpdGlvbmFsU3VyZlRvU3Rha2VPclplcm8EEXVzZXJBZGRyZXNzT3JUaGlzAwkBAiE9AgUVdXNlckFkZHJlc3NTdHJPckVtcHR5AgAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQUEdGhpcwQMY3VycmVudFByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQ9jb250cm9sQ29udHJhY3QJAQhrZXlQcmljZQAEEWduc2J0RnJvbU5zYnREaWZmBRthZGRpdGlvbmFsTnNidFRvU3Rha2VPclplcm8EEWduc2J0RnJvbVN1cmZEaWZmCQEFYXNJbnQBCQD8BwQFE3N1cmZTdGFraW5nQ29udHJhY3QCGGduc2J0RnJvbVN1cmZTWVNSRUFET05MWQkAzAgCBRthZGRpdGlvbmFsU3VyZlRvU3Rha2VPclplcm8FA25pbAUDbmlsBAlnTnNidERpZmYJAGQCBRFnbnNidEZyb21Oc2J0RGlmZgURZ25zYnRGcm9tU3VyZkRpZmYED3N3YXBQYXJhbXNUdXBsZQkBEmFzU3dhcFBhcmFtc1NUUlVDVAEJAPwHBAUQbmV1dHJpbm9Db250cmFjdAIbc3dhcFBhcmFtc0J5VXNlclNZU1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQkAzAgCAAAFA25pbAUDbmlsBA5ibGNrczJMbXRSZXNldAgFD3N3YXBQYXJhbXNUdXBsZQJfMwQIZ25zYnRBbXQIBQ9zd2FwUGFyYW1zVHVwbGUCXzQEDWduc2J0QW10VG90YWwIBQ9zd2FwUGFyYW1zVHVwbGUCXzUEDWxpbWl0TWF4V2F2ZXMIBQ9zd2FwUGFyYW1zVHVwbGUCXzYEDGxpbWl0TWF4VXNkbggFD3N3YXBQYXJhbXNUdXBsZQJfNwQSc3dhcFBhcmFtc1R1cGxlTkVXCQESYXNTd2FwUGFyYW1zU1RSVUNUAQkA/AcEBRBuZXV0cmlub0NvbnRyYWN0Ahtzd2FwUGFyYW1zQnlVc2VyU1lTUkVBRE9OTFkJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5CQDMCAIFCWdOc2J0RGlmZgUDbmlsBQNuaWwEEWJsY2tzMkxtdFJlc2V0TkVXCAUSc3dhcFBhcmFtc1R1cGxlTkVXAl8zBAtnbnNidEFtdE5FVwgFEnN3YXBQYXJhbXNUdXBsZU5FVwJfNAQQZ25zYnRBbXRUb3RhbE5FVwgFEnN3YXBQYXJhbXNUdXBsZU5FVwJfNQQQbGltaXRNYXhXYXZlc05FVwgFEnN3YXBQYXJhbXNUdXBsZU5FVwJfNgQPbGltaXRNYXhVc2RuTkVXCAUSc3dhcFBhcmFtc1R1cGxlTkVXAl83BAtuc2J0QmFsYW5jZQMJAQIhPQIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQIACQDwBwIFEXVzZXJBZGRyZXNzT3JUaGlzBQtuc2J0QXNzZXRJZAAABAtzdXJmQmFsYW5jZQMJAQIhPQIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQIACQDwBwIFEXVzZXJBZGRyZXNzT3JUaGlzBQtzdXJmQXNzZXRJZAAABA9uc2J0QmFsYW5jZURpZmYDCQBnAgUbYWRkaXRpb25hbE5zYnRUb1N0YWtlT3JaZXJvAAAFG2FkZGl0aW9uYWxOc2J0VG9TdGFrZU9yWmVybwQRbnNidFVuc3Rha2luZ0RhdGEJAQlhc0FueUxpc3QBCQD8BwQFE25zYnRTdGFraW5nQ29udHJhY3QCGG5zYnRVbnN0YWtpbmdTWVNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkJAMwIAgkAaAIA////////////AQUbYWRkaXRpb25hbE5zYnRUb1N0YWtlT3JaZXJvBQNuaWwFA25pbAQRbnNidFJlY2VpdmVBbW91bnQJAQVhc0ludAEJAJEDAgURbnNidFVuc3Rha2luZ0RhdGEAAgQGcmVzdWx0CQEBLQEFEW5zYnRSZWNlaXZlQW1vdW50BQZyZXN1bHQEDm5zYnRCYWxhbmNlTmV3CQBlAgULbnNidEJhbGFuY2UFD25zYnRCYWxhbmNlRGlmZgQOc3VyZkJhbGFuY2VOZXcJAGUCBQtzdXJmQmFsYW5jZQUbYWRkaXRpb25hbFN1cmZUb1N0YWtlT3JaZXJvBAlnbnNidERhdGEJAQlhc0FueUxpc3QBCQD8BwQFF2duc2J0Q29udHJvbGxlckNvbnRyYWN0AhRnbnNidEluZm9TWVNSRUFET05MWQkAzAgCBRV1c2VyQWRkcmVzc1N0ck9yRW1wdHkJAMwIAgUbYWRkaXRpb25hbE5zYnRUb1N0YWtlT3JaZXJvCQDMCAIFG2FkZGl0aW9uYWxTdXJmVG9TdGFrZU9yWmVybwUDbmlsBQNuaWwECWduc2J0VXNlcgkBBWFzSW50AQkAkQMCBQlnbnNidERhdGEAAAQKZ25zYnRUb3RhbAkBBWFzSW50AQkAkQMCBQlnbnNidERhdGEAAQQIbnNidERhdGEJAQlhc0FueUxpc3QBCQCRAwIFCWduc2J0RGF0YQACBAhzdXJmRGF0YQkBCWFzQW55TGlzdAEJAJEDAgUJZ25zYnREYXRhAAMEEXZwRWZmZWN0aXZlSGVpZ2h0CQEFYXNJbnQBCQCRAwIFCWduc2J0RGF0YQAEBBR2cEVmZmVjdGl2ZUhlaWdodE5FVwkBBWFzSW50AQkAkQMCBQlnbnNidERhdGEABQQQZ25zYnRBbXRGcm9tTnNidAkBBWFzSW50AQkAkQMCBQhuc2J0RGF0YQACBBBnbnNidEFtdEZyb21TdXJmCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhAAIEE2duc2J0QW10RnJvbU5zYnRORVcJAGQCBRBnbnNidEFtdEZyb21Oc2J0BRFnbnNidEZyb21Oc2J0RGlmZgQTZ25zYnRBbXRGcm9tU3VyZk5FVwkAZAIFEGduc2J0QW10RnJvbVN1cmYFEWduc2J0RnJvbVN1cmZEaWZmBBJnbnNidEZyb21Oc2J0VG90YWwJAQVhc0ludAEJAJEDAgUIbnNidERhdGEAAwQSZ25zYnRGcm9tU3VyZlRvdGFsCQEFYXNJbnQBCQCRAwIFCHN1cmZEYXRhAAMEGGduc2J0RnJvbVN1cmZBY3RpdmVUb3RhbAAABBhnbnNidEZyb21TdXJmRnJvemVuVG90YWwFEmduc2J0RnJvbVN1cmZUb3RhbAQVZ25zYnRGcm9tTnNidFRvdGFsTkVXCQBkAgUSZ25zYnRGcm9tTnNidFRvdGFsBRFnbnNidEZyb21Oc2J0RGlmZgQVZ25zYnRGcm9tU3VyZlRvdGFsTkVXCQBkAgUSZ25zYnRGcm9tU3VyZlRvdGFsBRFnbnNidEZyb21TdXJmRGlmZgQbZ25zYnRGcm9tU3VyZkZyb3plblRvdGFsTkVXBRVnbnNidEZyb21TdXJmVG90YWxORVcEC3ZvdGluZ1Bvd2VyCQBrAwUQZ25zYnRBbXRGcm9tTnNidAUFTVVMVDgJAGQCBRJnbnNidEZyb21Oc2J0VG90YWwFGGduc2J0RnJvbVN1cmZBY3RpdmVUb3RhbAQOdm90aW5nUG93ZXJOZXcJAGsDBRNnbnNidEFtdEZyb21Oc2J0TkVXBQVNVUxUOAkAZAIFFWduc2J0RnJvbU5zYnRUb3RhbE5FVwUYZ25zYnRGcm9tU3VyZkFjdGl2ZVRvdGFsBA52b3RpbmdQb3dlck1heAkAawMJAGQCBRBnbnNidEFtdEZyb21Oc2J0BRBnbnNidEFtdEZyb21TdXJmBQVNVUxUOAkAZAIJAGQCBRJnbnNidEZyb21Oc2J0VG90YWwFGGduc2J0RnJvbVN1cmZBY3RpdmVUb3RhbAUYZ25zYnRGcm9tU3VyZkZyb3plblRvdGFsBBF2b3RpbmdQb3dlck1heE5ldwkAawMJAGQCBRNnbnNidEFtdEZyb21Oc2J0TkVXBRNnbnNidEFtdEZyb21TdXJmTkVXBQVNVUxUOAkAZAIJAGQCBRVnbnNidEZyb21Oc2J0VG90YWxORVcFGGduc2J0RnJvbVN1cmZBY3RpdmVUb3RhbAUbZ25zYnRGcm9tU3VyZkZyb3plblRvdGFsTkVXBA52b3RpbmdQb3dlckV0YQMJAAACBRF2cEVmZmVjdGl2ZUhlaWdodAAABQZoZWlnaHQFEXZwRWZmZWN0aXZlSGVpZ2h0BBF2b3RpbmdQb3dlckV0YU5ldwMJAAACBRR2cEVmZmVjdGl2ZUhlaWdodE5FVwAABQZoZWlnaHQFFHZwRWZmZWN0aXZlSGVpZ2h0TkVXCQCUCgIFA25pbAkAzAgCAAAJAMwIAgULbnNidEJhbGFuY2UJAMwIAgULc3VyZkJhbGFuY2UJAMwIAgUObnNidEJhbGFuY2VOZXcJAMwIAgUOc3VyZkJhbGFuY2VOZXcJAMwIAgUQZ25zYnRBbXRGcm9tTnNidAkAzAgCBRBnbnNidEFtdEZyb21TdXJmCQDMCAIFE2duc2J0QW10RnJvbU5zYnRORVcJAMwIAgUTZ25zYnRBbXRGcm9tU3VyZk5FVwkAzAgCBRJnbnNidEZyb21Oc2J0VG90YWwJAMwIAgUSZ25zYnRGcm9tU3VyZlRvdGFsCQDMCAIFFWduc2J0RnJvbU5zYnRUb3RhbE5FVwkAzAgCBRVnbnNidEZyb21TdXJmVG90YWxORVcJAMwIAgUMbGltaXRNYXhVc2RuCQDMCAIFDWxpbWl0TWF4V2F2ZXMJAMwIAgUPbGltaXRNYXhVc2RuTkVXCQDMCAIFEGxpbWl0TWF4V2F2ZXNORVcJAMwIAgUOYmxja3MyTG10UmVzZXQJAMwIAgURYmxja3MyTG10UmVzZXRORVcJAMwIAgULdm90aW5nUG93ZXIJAMwIAgUOdm90aW5nUG93ZXJOZXcJAMwIAgUOdm90aW5nUG93ZXJNYXgJAMwIAgURdm90aW5nUG93ZXJNYXhOZXcJAMwIAgUOdm90aW5nUG93ZXJFdGEJAMwIAgURdm90aW5nUG93ZXJFdGFOZXcFA25pbAFpARFnbnNidEluZm9SRUFET05MWQMVdXNlckFkZHJlc3NTdHJPckVtcHR5G2FkZGl0aW9uYWxOc2J0VG9TdGFrZU9yWmVybxthZGRpdGlvbmFsU3VyZlRvU3Rha2VPclplcm8EDWduc2J0SW5mb0RBVEEJAQlhc0FueUxpc3QBCQD8BwQFBHRoaXMCEWduc2J0SW5mb0lOVEVSTkFMCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQkAzAgCBRthZGRpdGlvbmFsTnNidFRvU3Rha2VPclplcm8JAMwIAgUbYWRkaXRpb25hbFN1cmZUb1N0YWtlT3JaZXJvBQNuaWwFA25pbAkAlAoCBQNuaWwJALkJAgkAzAgCAjAlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEAAQkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQACCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAAMJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEABAkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAFCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAAYJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEABwkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAICQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAAkJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEACgkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQALCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAAwJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEADQkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAOCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBAA8JAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEAEAkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQARCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBABIJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEAEwkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAUCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBABUJAMwIAgkApAMBCQEFYXNJbnQBCQCRAwIFDWduc2J0SW5mb0RBVEEAFgkAzAgCCQCkAwEJAQVhc0ludAEJAJEDAgUNZ25zYnRJbmZvREFUQQAXCQDMCAIJAKQDAQkBBWFzSW50AQkAkQMCBQ1nbnNidEluZm9EQVRBABgFA25pbAUDU0VQAWkBFmduc2J0RWZmZWN0aXZlUkVBRE9OTFkBFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQQJZ25zYnREYXRhCQEJYXNBbnlMaXN0AQkA/AcEBRdnbnNidENvbnRyb2xsZXJDb250cmFjdAIUZ25zYnRJbmZvU1lTUkVBRE9OTFkJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5CQDMCAIAAAkAzAgCAAAFA25pbAUDbmlsBAhuc2J0RGF0YQkBCWFzQW55TGlzdAEJAJEDAgUJZ25zYnREYXRhAAIEDHVzZXJGcm9tTnNidAkBBWFzSW50AQkAkQMCBQhuc2J0RGF0YQACBA10b3RhbEZyb21Oc2J0CQEFYXNJbnQBCQCRAwIFCG5zYnREYXRhAAMEEnVzZXJNYXR1cmVGcm9tU3VyZgkBBWFzSW50AQkAkQMCBQlnbnNidERhdGEACQQTdG90YWxNYXR1cmVGcm9tU3VyZgkBBWFzSW50AQkAkQMCBQlnbnNidERhdGEABgkAlAoCBQNuaWwJALkJAgkAzAgCAgQlZCVkCQDMCAIJAKQDAQkAZAIFDXRvdGFsRnJvbU5zYnQFE3RvdGFsTWF0dXJlRnJvbVN1cmYJAMwIAgkApAMBCQBkAgUMdXNlckZyb21Oc2J0BRJ1c2VyTWF0dXJlRnJvbVN1cmYFA25pbAUDU0VQAWkBEnJld2FyZEluZm9SRUFET05MWQEVdXNlckFkZHJlc3NTdHJPckVtcHR5BAtyZXdhcmRzRGF0YQkBCWFzQW55TGlzdAEJAPwHBAUXZ25zYnRDb250cm9sbGVyQ29udHJhY3QCF2duc2J0UmV3YXJkc1NZU1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQUDbmlsBQNuaWwEC3VzZG5SZXdhcmRzCQEIYXNTdHJpbmcBCQD8BwQFC3JwZENvbnRyYWN0Ahh1bmNsYWltZWRSZXdhcmRzUkVBRE9OTFkJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5BQNuaWwFA25pbAkAlAoCBQNuaWwJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgkBCGFzU3RyaW5nAQkAkQMCBQtyZXdhcmRzRGF0YQAACQDMCAIJAQhhc1N0cmluZwEJAJEDAgULcmV3YXJkc0RhdGEAAQkAzAgCBQt1c2RuUmV3YXJkcwUDbmlsBQNTRVABaQERbWVyZ2VOc2J0UkVBRE9OTFkCFHVzZXJBZGRyZXNzTWFuZGF0b3J5CW5ld0Ftb3VudAQIbnNidERhdGEJAQlhc0FueUxpc3QBCQD8BwQFE25zYnRTdGFraW5nQ29udHJhY3QCFm5zYnRTdGFraW5nU1lTUkVBRE9OTFkJAMwIAgUUdXNlckFkZHJlc3NNYW5kYXRvcnkJAMwIAgUJbmV3QW1vdW50BQNuaWwFA25pbAQHYW1vdW50MAkBBWFzSW50AQkAkQMCBQhuc2J0RGF0YQAABAtzdGFydEhlaWdodAMJAGcCAAAFB2Ftb3VudDAA////////////AQkBBWFzSW50AQkAkQMCBQhuc2J0RGF0YQACBA5zdGFydFRpbWVzdGFtcAkBC3RvVGltZXN0YW1wAQULc3RhcnRIZWlnaHQEDnN0YXJ0SGVpZ2h0TmV3AwkAZwIAAAUJbmV3QW1vdW50BQtzdGFydEhlaWdodAMJAGcCAAAFB2Ftb3VudDAFBmhlaWdodAQIaGFsZkxpZmUJAQxnZXRJbnRPckZhaWwCBRNuc2J0U3Rha2luZ0NvbnRyYWN0CQELa2V5SGFsZkxpZmUACQEFYXNJbnQBCQD8BwQFDG1hdGhDb250cmFjdAITbWVyZ2VTdGFrZXNSRUFET05MWQkAzAgCBQdhbW91bnQwCQDMCAIFC3N0YXJ0SGVpZ2h0CQDMCAIFCW5ld0Ftb3VudAkAzAgCBQZoZWlnaHQJAMwIAgUIaGFsZkxpZmUFA25pbAUDbmlsBBFzdGFydFRpbWVzdGFtcE5ldwkBC3RvVGltZXN0YW1wAQUOc3RhcnRIZWlnaHROZXcJAJQKAgUDbmlsCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBQtzdGFydEhlaWdodAkAzAgCCQCkAwEFDnN0YXJ0VGltZXN0YW1wCQDMCAIJAKQDAQUOc3RhcnRIZWlnaHROZXcJAMwIAgkApAMBBRFzdGFydFRpbWVzdGFtcE5ldwUDbmlsBQNTRVABaQEbc3dhcExpbWl0Q2FsY3VsYXRvclJFQURPTkxZAxF1c2VyQWRkcmVzc1N0ck9wdAtsaW1pdFdhbnRlZAphc3NldElkU3RyBAxnTnNidEN1cnJlbnQDCQAAAgURdXNlckFkZHJlc3NTdHJPcHQCAAAACQEFYXNJbnQBCAkBEmFzU3dhcFBhcmFtc1NUUlVDVAEJAPwHBAUQbmV1dHJpbm9Db250cmFjdAIbc3dhcFBhcmFtc0J5VXNlclNZU1JFQURPTkxZCQDMCAIFEXVzZXJBZGRyZXNzU3RyT3B0CQDMCAIAAAUDbmlsBQNuaWwCXzQED2xpbWl0V2FudGVkVXNkbgMJAAACBQphc3NldElkU3RyAgVXQVZFUwkBFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8CBQtsaW1pdFdhbnRlZAkBEUBleHRyTmF0aXZlKDEwNTApAgUPY29udHJvbENvbnRyYWN0CQEIa2V5UHJpY2UABQtsaW1pdFdhbnRlZAQLZ05zYnROZWVkZWQJAQVhc0ludAEJAPwHBAUEdGhpcwIYcmV2ZXJzZVN3YXBMaW1pdFJFQURPTkxZCQDMCAIFD2xpbWl0V2FudGVkVXNkbgkAzAgCCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFA25pbAUDbmlsBApnTnNidERlbHRhCQBlAgULZ05zYnROZWVkZWQFDGdOc2J0Q3VycmVudAkAlAoCBQNuaWwJALkJAgkAzAgCAgQlcyVzCQDMCAIJAKQDAQUMZ05zYnRDdXJyZW50CQDMCAIJAKQDAQUKZ05zYnREZWx0YQUDbmlsBQNTRVABaQEQc3dhcEluZm9SRUFET05MWQMVdXNlckFkZHJlc3NTdHJPckVtcHR5BmFtb3VudAphc3NldElkU3RyBA9uZXV0cmlub01ldHJpY3MJAQlhc0FueUxpc3QBCQD8BwQFDG1hdGhDb250cmFjdAIaY2FsY05ldXRpbm9NZXRyaWNzUkVBRE9OTFkFA25pbAUDbmlsBAVwcmljZQkBBWFzSW50AQkAkQMCBQ9uZXV0cmlub01ldHJpY3MFD25NZXRyaWNJZHhQcmljZQQPc3dhcFBhcmFtc1R1cGxlCQESYXNTd2FwUGFyYW1zU1RSVUNUAQkA/AcEBRBuZXV0cmlub0NvbnRyYWN0Ahtzd2FwUGFyYW1zQnlVc2VyU1lTUkVBRE9OTFkJAMwIAgUVdXNlckFkZHJlc3NTdHJPckVtcHR5CQDMCAIAAAUDbmlsBQNuaWwEDmJsY2tzMkxtdFJlc2V0CAUPc3dhcFBhcmFtc1R1cGxlAl8zBA1saW1pdE1heFdhdmVzCAUPc3dhcFBhcmFtc1R1cGxlAl82BAxsaW1pdE1heFVzZG4IBQ9zd2FwUGFyYW1zVHVwbGUCXzcEB2Fzc2V0SWQJANkEAQUKYXNzZXRJZFN0cgQMYmFza2V0QXNzZXRzCQELdmFsdWVPckVsc2UCCQCdCAIFEG5ldXRyaW5vQ29udHJhY3QJAQ9iYXNrZXRBc3NldHNLZXkAAgVXQVZFUwQIc3dhcFR5cGUDCQEIY29udGFpbnMCBQxiYXNrZXRBc3NldHMFCmFzc2V0SWRTdHICC291dE5ldXRyaW5vAwkAAAIFB2Fzc2V0SWQFD25ldXRyaW5vQXNzZXRJZAIIb3V0TXVsdGkJAAIBCQCsAgICE0Nhbid0IHN3YXAgYXNzZXRJZD0FCmFzc2V0SWRTdHIEDXdpdGhkcmF3VHVwbGUJARZhc1dpdGhkcmF3UmVzdWx0U1RSVUNUAQkA/AcEBRBuZXV0cmlub0NvbnRyYWN0Ah1jYWxjV2l0aGRyYXdSZXN1bHRTWVNSRUFET05MWQkAzAgCBQhzd2FwVHlwZQkAzAgCBQZhbW91bnQJAMwIAgUFcHJpY2UJAMwIAgUKYXNzZXRJZFN0cgUDbmlsBQNuaWwEDG91dE5ldEFtb3VudAgFDXdpdGhkcmF3VHVwbGUCXzEECm91dEFzc2V0SWQIBQ13aXRoZHJhd1R1cGxlAl8yBApvdXRTdXJmQW10CAUNd2l0aGRyYXdUdXBsZQJfMwQPaW5BbXRUb1N1cmZQYXJ0CAUNd2l0aGRyYXdUdXBsZQJfNAQKdW5sZWFzZUFtdAgFDXdpdGhkcmF3VHVwbGUCXzUEDG91dEZlZUFtb3VudAgFDXdpdGhkcmF3VHVwbGUCXzYEC291dEFtdEdyb3NzCAUNd2l0aGRyYXdUdXBsZQJfNwQNd2l0aGRyYXdQcmljZQgFDXdpdGhkcmF3VHVwbGUCXzgJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFDG91dE5ldEFtb3VudAkAzAgCCQCkAwEFCm91dFN1cmZBbXQJAMwIAgkApAMBBQxvdXRGZWVBbW91bnQJAMwIAgkApAMBBQ13aXRoZHJhd1ByaWNlCQDMCAIJAKQDAQUOYmxja3MyTG10UmVzZXQJAMwIAgkApAMBBQ1saW1pdE1heFdhdmVzCQDMCAIJAKQDAQUMbGltaXRNYXhVc2RuCQDMCAIJAKQDAQUPaW5BbXRUb1N1cmZQYXJ0BQNuaWwFA1NFUAFpARJzd2FwSW5mb1YyUkVBRE9OTFkDFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQZhbW91bnQKYXNzZXRJZFN0cgQPbmV1dHJpbm9NZXRyaWNzCQEJYXNBbnlMaXN0AQkA/AcEBQxtYXRoQ29udHJhY3QCGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQNuaWwFA25pbAQFcHJpY2UJAQVhc0ludAEJAJEDAgUPbmV1dHJpbm9NZXRyaWNzBQ9uTWV0cmljSWR4UHJpY2UED3N3YXBQYXJhbXNUdXBsZQkBEmFzU3dhcFBhcmFtc1NUUlVDVAEJAPwHBAUQbmV1dHJpbm9Db250cmFjdAIbc3dhcFBhcmFtc0J5VXNlclNZU1JFQURPTkxZCQDMCAIFFXVzZXJBZGRyZXNzU3RyT3JFbXB0eQkAzAgCAAAFA25pbAUDbmlsBA5ibGNrczJMbXRSZXNldAgFD3N3YXBQYXJhbXNUdXBsZQJfMwQNbGltaXRNYXhXYXZlcwgFD3N3YXBQYXJhbXNUdXBsZQJfNgQMbGltaXRNYXhVc2RuCAUPc3dhcFBhcmFtc1R1cGxlAl83BAdhc3NldElkCQDZBAEFCmFzc2V0SWRTdHIEDGJhc2tldEFzc2V0cwkBC3ZhbHVlT3JFbHNlAgkAnQgCBRBuZXV0cmlub0NvbnRyYWN0CQEPYmFza2V0QXNzZXRzS2V5AAIFV0FWRVMECHN3YXBUeXBlAwkBCGNvbnRhaW5zAgUMYmFza2V0QXNzZXRzBQphc3NldElkU3RyAgtvdXROZXV0cmlubwMJAAACBQdhc3NldElkBQ9uZXV0cmlub0Fzc2V0SWQCCG91dE11bHRpCQACAQkArAICAhNDYW4ndCBzd2FwIGFzc2V0SWQ9BQphc3NldElkU3RyBA13aXRoZHJhd1R1cGxlCQEWYXNXaXRoZHJhd1Jlc3VsdFNUUlVDVAEJAPwHBAUQbmV1dHJpbm9Db250cmFjdAIdY2FsY1dpdGhkcmF3UmVzdWx0U1lTUkVBRE9OTFkJAMwIAgUIc3dhcFR5cGUJAMwIAgUGYW1vdW50CQDMCAIFBXByaWNlCQDMCAIFCmFzc2V0SWRTdHIFA25pbAUDbmlsBAxvdXROZXRBbW91bnQIBQ13aXRoZHJhd1R1cGxlAl8xBApvdXRBc3NldElkCAUNd2l0aGRyYXdUdXBsZQJfMgQKb3V0U3VyZkFtdAgFDXdpdGhkcmF3VHVwbGUCXzMED2luQW10VG9TdXJmUGFydAgFDXdpdGhkcmF3VHVwbGUCXzQECnVubGVhc2VBbXQIBQ13aXRoZHJhd1R1cGxlAl81BAxvdXRGZWVBbW91bnQIBQ13aXRoZHJhd1R1cGxlAl82BAtvdXRBbXRHcm9zcwgFDXdpdGhkcmF3VHVwbGUCXzcEDXdpdGhkcmF3UHJpY2UIBQ13aXRoZHJhd1R1cGxlAl84BA53aXRoZHJhd0Jhc2tldAgFDXdpdGhkcmF3VHVwbGUCXzkJAJQKAgUDbmlsCQC5CQIJAMwIAgISJWQlZCVkJWQlZCVkJWQlZCVzCQDMCAIJAKQDAQUMb3V0TmV0QW1vdW50CQDMCAIJAKQDAQUKb3V0U3VyZkFtdAkAzAgCCQCkAwEFDG91dEZlZUFtb3VudAkAzAgCCQCkAwEFDXdpdGhkcmF3UHJpY2UJAMwIAgkApAMBBQ5ibGNrczJMbXRSZXNldAkAzAgCCQCkAwEFDWxpbWl0TWF4V2F2ZXMJAMwIAgkApAMBBQxsaW1pdE1heFVzZG4JAMwIAgkApAMBBQ9pbkFtdFRvU3VyZlBhcnQJAMwIAgUOd2l0aGRyYXdCYXNrZXQFA25pbAUDU0VQAWkBFnVzZG5TdGFraW5nQXByUkVBRE9OTFkBBGRheXMEB3RtcERheXMAAQQPbmV1dHJpbm9NZXRyaWNzCQEJYXNBbnlMaXN0AQkA/AcEBQxtYXRoQ29udHJhY3QCGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQNuaWwFA25pbAQMY3VycmVudFByaWNlCQEFYXNJbnQBCQCRAwIFD25ldXRyaW5vTWV0cmljcwUPbk1ldHJpY0lkeFByaWNlBAt3YXZlc0luY29tZQkAaAIAAAUFTVVMVDgED2luY29tZUZvclBlcmlvZAkAawMFC3dhdmVzSW5jb21lBQxjdXJyZW50UHJpY2UFBU1VTFQ4BANhcHIJAQdjYWxjQXByBAULcnBkQ29udHJhY3QFB3RtcERheXMFD2luY29tZUZvclBlcmlvZAUFTVVMVDYJAJQKAgUDbmlsCQCsAgICBCVkX18JAKQDAQUDYXByAWkBFnN1cmZTdGFraW5nQXByUkVBRE9OTFkBBGRheXMEB3RtcERheXMAAwQPaW5jb21lRm9yUGVyaW9kCQEXY2FsY1VzZG5JbmNvbWVGb3JQZXJpb2QCBRNzdXJmU3Rha2luZ0NvbnRyYWN0BQd0bXBEYXlzBBFzdXJmUHJpY2VUb1VzZG5YNgCAowUEA2FwcgkBB2NhbGNBcHIEBRNzdXJmU3Rha2luZ0NvbnRyYWN0BQd0bXBEYXlzBQ9pbmNvbWVGb3JQZXJpb2QFEXN1cmZQcmljZVRvVXNkblg2CQCUCgIFA25pbAkArAICAgQlZF9fCQCkAwEFA2FwcgFpARhzdXJmU3Rha2luZ0FwclYyUkVBRE9OTFkCBGRheXMPc3VyZlVzZG5QcmljZVg2BAd0bXBEYXlzAAMED2luY29tZUZvclBlcmlvZAkBF2NhbGNVc2RuSW5jb21lRm9yUGVyaW9kAgUTc3VyZlN0YWtpbmdDb250cmFjdAUHdG1wRGF5cwQDYXByCQEHY2FsY0FwcgQFE3N1cmZTdGFraW5nQ29udHJhY3QFB3RtcERheXMFD2luY29tZUZvclBlcmlvZAUPc3VyZlVzZG5QcmljZVg2CQCUCgIFA25pbAkArAICAgQlZF9fCQCkAwEFA2FwcgFpARZuc2J0U3Rha2luZ0FwclJFQURPTkxZAQRkYXlzBAd0bXBEYXlzAAMEEW5zYnRQcmljZVRvVXNkblg2AICk6AMED2luY29tZUZvclBlcmlvZAkBF2NhbGNVc2RuSW5jb21lRm9yUGVyaW9kAgUTbnNidFN0YWtpbmdDb250cmFjdAUHdG1wRGF5cwQDYXByCQEHY2FsY0FwcgQFE25zYnRTdGFraW5nQ29udHJhY3QFB3RtcERheXMFD2luY29tZUZvclBlcmlvZAURbnNidFByaWNlVG9Vc2RuWDYJAJQKAgUDbmlsCQCsAgICBCVkX18JAKQDAQUDYXByAWkBGG5zYnRTdGFraW5nQXByVjJSRUFET05MWQIEZGF5cw9uc2J0VXNkblByaWNlWDYEB3RtcERheXMAAwQPaW5jb21lRm9yUGVyaW9kCQEXY2FsY1VzZG5JbmNvbWVGb3JQZXJpb2QCBRNuc2J0U3Rha2luZ0NvbnRyYWN0BQd0bXBEYXlzBANhcHIJAQdjYWxjQXByBAUTbnNidFN0YWtpbmdDb250cmFjdAUHdG1wRGF5cwUPaW5jb21lRm9yUGVyaW9kBQ9uc2J0VXNkblByaWNlWDYJAJQKAgUDbmlsCQCsAgICBCVkX18JAKQDAQUDYXByAB2seFg=", "height": 2443255, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C6B1me3ckcGDpGuc2g2E6HnqunrnMsdN8bCpepNqm1Di Next: 9WUGuchhMLgrzNpmgPDNhNTdtWcbxPwXKTnSg3MJ8nFh Diff:
Old | New | Differences | |
---|---|---|---|
40 | 40 | func r () = "surf_asset_id" | |
41 | 41 | ||
42 | 42 | ||
43 | - | func s () = " | |
43 | + | func s () = "min_waves_swap_amount" | |
44 | 44 | ||
45 | 45 | ||
46 | - | func t () = | |
46 | + | func t () = "min_neutrino_swap_amount" | |
47 | 47 | ||
48 | 48 | ||
49 | - | func u () = | |
49 | + | func u () = "wavesOut_swap_feePart" | |
50 | 50 | ||
51 | 51 | ||
52 | - | func v () = " | |
52 | + | func v () = "neutrinoOut_swap_feePart" | |
53 | 53 | ||
54 | 54 | ||
55 | - | func w () = " | |
55 | + | func w () = "%s%s__config__swapAParam" | |
56 | 56 | ||
57 | 57 | ||
58 | - | func x () = " | |
58 | + | func x () = "%s%s__config__swapBParam" | |
59 | 59 | ||
60 | 60 | ||
61 | - | func y () = " | |
61 | + | func y () = "%s%s__config__usdnSwapAParam" | |
62 | 62 | ||
63 | 63 | ||
64 | - | func z () = "%s%s__config__ | |
64 | + | func z () = "%s%s__config__usdnSwapBParam" | |
65 | 65 | ||
66 | 66 | ||
67 | - | func A () = "%s | |
67 | + | func A () = "%s__nsbtLockContract" | |
68 | 68 | ||
69 | 69 | ||
70 | - | func B () = "%s | |
70 | + | func B () = "%s__mathContract" | |
71 | 71 | ||
72 | 72 | ||
73 | - | func C () = " | |
73 | + | func C () = "balance_waves_lock_interval" | |
74 | 74 | ||
75 | 75 | ||
76 | - | func D () = " | |
76 | + | func D () = "balance_neutrino_lock_interval" | |
77 | 77 | ||
78 | 78 | ||
79 | - | func E () = "%s__ | |
79 | + | func E () = "%s%s__common__basketAssets" | |
80 | 80 | ||
81 | 81 | ||
82 | - | func F () = " | |
82 | + | func F () = "price" | |
83 | 83 | ||
84 | 84 | ||
85 | - | func G () = " | |
85 | + | func G (H) = makeString(["%s%s%s", "paramByUser", H, "start"], j) | |
86 | 86 | ||
87 | 87 | ||
88 | - | func | |
88 | + | func I () = "%s__halfLife" | |
89 | 89 | ||
90 | 90 | ||
91 | - | func | |
91 | + | func J () = "%s__minLockAmount" | |
92 | 92 | ||
93 | 93 | ||
94 | - | func K () = " | |
94 | + | func K () = "min_waves_nsbt_buy" | |
95 | 95 | ||
96 | 96 | ||
97 | - | func L () = " | |
97 | + | func L () = "min_nsbt_sell" | |
98 | 98 | ||
99 | 99 | ||
100 | - | func M () = " | |
100 | + | func M (N) = makeString(["%s%s%d", "stats", "depositAmtByDay", toString(N)], j) | |
101 | 101 | ||
102 | 102 | ||
103 | - | func | |
103 | + | func O (N) = ((N / o) * o) | |
104 | 104 | ||
105 | 105 | ||
106 | - | func | |
106 | + | func P (Q,R) = valueOrErrorMessage(getString(Q, R), makeString(["mandatory ", toString(Q), ".", R, " is not defined"], "")) | |
107 | 107 | ||
108 | 108 | ||
109 | - | func | |
109 | + | func S (Q,R) = valueOrErrorMessage(getInteger(Q, R), makeString(["mandatory ", toString(Q), ".", R, " is not defined"], "")) | |
110 | 110 | ||
111 | 111 | ||
112 | - | func | |
112 | + | func T (Q,R) = valueOrErrorMessage(getBoolean(Q, R), makeString(["mandatory ", toString(Q), ".", R, " is not defined"], "")) | |
113 | 113 | ||
114 | 114 | ||
115 | - | func U ( | |
115 | + | func U (Q,R,V) = valueOrElse(getInteger(Q, R), V) | |
116 | 116 | ||
117 | 117 | ||
118 | - | func | |
118 | + | func W (Q,R,V) = valueOrElse(getString(Q, R), V) | |
119 | 119 | ||
120 | 120 | ||
121 | - | func | |
121 | + | func X (Y,Z) = fraction(Y, d, Z) | |
122 | 122 | ||
123 | 123 | ||
124 | - | func | |
124 | + | func aa (Y,Z) = fraction(Y, Z, d) | |
125 | 125 | ||
126 | 126 | ||
127 | - | func Z (aa,ab) = fraction(aa, d, ab) | |
128 | - | ||
129 | - | ||
130 | - | func ac (aa,ab) = fraction(aa, ab, d) | |
131 | - | ||
132 | - | ||
133 | - | func ad (ae) = { | |
134 | - | let af = ae | |
135 | - | if ($isInstanceOf(af, "List[Any]")) | |
127 | + | func ab (ac) = { | |
128 | + | let ad = ac | |
129 | + | if ($isInstanceOf(ad, "List[Any]")) | |
136 | 130 | then { | |
137 | - | let | |
138 | - | | |
131 | + | let ae = ad | |
132 | + | ae | |
139 | 133 | } | |
140 | 134 | else throw("fail to cast into List[Any]") | |
141 | 135 | } | |
142 | 136 | ||
143 | 137 | ||
144 | - | func | |
145 | - | let | |
146 | - | if ($isInstanceOf( | |
138 | + | func af (ac) = { | |
139 | + | let ad = ac | |
140 | + | if ($isInstanceOf(ad, "Int")) | |
147 | 141 | then { | |
148 | - | let | |
149 | - | | |
142 | + | let ag = ad | |
143 | + | ag | |
150 | 144 | } | |
151 | 145 | else throw("fail to cast into Int") | |
152 | 146 | } | |
153 | 147 | ||
154 | 148 | ||
155 | - | func | |
156 | - | let | |
157 | - | if ($isInstanceOf( | |
149 | + | func ah (ac) = { | |
150 | + | let ad = ac | |
151 | + | if ($isInstanceOf(ad, "String")) | |
158 | 152 | then { | |
159 | - | let | |
160 | - | | |
153 | + | let ai = ad | |
154 | + | ai | |
161 | 155 | } | |
162 | 156 | else throw("fail to cast into String") | |
163 | 157 | } | |
164 | 158 | ||
165 | 159 | ||
166 | - | func | |
167 | - | let | |
168 | - | if ($isInstanceOf( | |
160 | + | func aj (ac) = { | |
161 | + | let ad = ac | |
162 | + | if ($isInstanceOf(ad, "(Int, Int)")) | |
169 | 163 | then { | |
170 | - | let | |
171 | - | | |
164 | + | let ak = ad | |
165 | + | ak | |
172 | 166 | } | |
173 | 167 | else throw("fail to cast into Tuple2 ints") | |
174 | 168 | } | |
175 | 169 | ||
176 | 170 | ||
177 | - | func | |
178 | - | let | |
179 | - | if ($isInstanceOf( | |
171 | + | func al (ac) = { | |
172 | + | let ad = ac | |
173 | + | if ($isInstanceOf(ad, "(Int, Int, Int, Int, Int, Int, Int)")) | |
180 | 174 | then { | |
181 | - | let | |
182 | - | | |
175 | + | let am = ad | |
176 | + | am | |
183 | 177 | } | |
184 | 178 | else throw("fail to cast into SwapParamsSTRUCT") | |
185 | 179 | } | |
186 | 180 | ||
187 | 181 | ||
188 | - | func | |
189 | - | let | |
190 | - | if (if ($isInstanceOf( | |
182 | + | func an (ac) = { | |
183 | + | let ad = ac | |
184 | + | if (if ($isInstanceOf(ad, "(Int, Unit, Int, Int, Int, Int, Int, Int, String)")) | |
191 | 185 | then true | |
192 | - | else $isInstanceOf( | |
186 | + | else $isInstanceOf(ad, "(Int, ByteVector, Int, Int, Int, Int, Int, Int, String)")) | |
193 | 187 | then { | |
194 | - | let | |
195 | - | | |
188 | + | let am = ad | |
189 | + | am | |
196 | 190 | } | |
197 | 191 | else throw("fail to cast into WithdrawResult") | |
198 | 192 | } | |
199 | 193 | ||
200 | 194 | ||
201 | - | func | |
195 | + | func ao (ap) = if ((0 > ap)) | |
202 | 196 | then -1 | |
203 | 197 | else { | |
204 | - | let | |
205 | - | if ($isInstanceOf( | |
198 | + | let ad = blockInfoByHeight(ap) | |
199 | + | if ($isInstanceOf(ad, "BlockInfo")) | |
206 | 200 | then { | |
207 | - | let | |
208 | - | | |
201 | + | let aq = ad | |
202 | + | aq.timestamp | |
209 | 203 | } | |
210 | 204 | else -1 | |
211 | 205 | } | |
212 | 206 | ||
213 | 207 | ||
214 | - | func | |
208 | + | func ar (as,at) = fraction(toBigInt(as), i, toBigInt(at)) | |
215 | 209 | ||
216 | 210 | ||
217 | - | func | |
211 | + | func au (ac,av) = toInt(fraction(ac, toBigInt(av), i)) | |
218 | 212 | ||
219 | 213 | ||
220 | - | let | |
214 | + | let aw = 0 | |
221 | 215 | ||
222 | - | let | |
216 | + | let ax = 1 | |
223 | 217 | ||
224 | - | let | |
218 | + | let ay = 2 | |
225 | 219 | ||
226 | - | let | |
220 | + | let az = 3 | |
227 | 221 | ||
228 | - | let | |
222 | + | let aA = 4 | |
229 | 223 | ||
230 | - | let | |
224 | + | let aB = 5 | |
231 | 225 | ||
232 | - | let | |
226 | + | let aC = 6 | |
233 | 227 | ||
234 | - | let | |
228 | + | let aD = 7 | |
235 | 229 | ||
236 | - | let | |
230 | + | let aE = 8 | |
237 | 231 | ||
238 | - | let | |
232 | + | let aF = 9 | |
239 | 233 | ||
240 | - | let | |
234 | + | let aG = 10 | |
241 | 235 | ||
242 | - | let | |
236 | + | let aH = 11 | |
243 | 237 | ||
244 | - | let | |
238 | + | let aI = 1 | |
245 | 239 | ||
246 | - | let | |
240 | + | let aJ = 2 | |
247 | 241 | ||
248 | - | let | |
242 | + | let aK = 3 | |
249 | 243 | ||
250 | - | let | |
244 | + | let aL = 4 | |
251 | 245 | ||
252 | - | let | |
246 | + | let aM = 5 | |
253 | 247 | ||
254 | - | let | |
248 | + | let aN = 6 | |
255 | 249 | ||
256 | - | let | |
250 | + | let aO = 7 | |
257 | 251 | ||
258 | - | let | |
252 | + | let aP = 8 | |
259 | 253 | ||
260 | - | let | |
254 | + | let aQ = 9 | |
261 | 255 | ||
262 | - | let | |
256 | + | let aR = 10 | |
263 | 257 | ||
264 | - | let | |
258 | + | let aS = 11 | |
265 | 259 | ||
266 | - | let | |
260 | + | let aT = 0 | |
267 | 261 | ||
268 | - | let | |
262 | + | let aU = 1 | |
269 | 263 | ||
270 | - | let | |
264 | + | let aV = 2 | |
271 | 265 | ||
272 | - | let | |
266 | + | let aW = 3 | |
273 | 267 | ||
274 | - | let | |
268 | + | let aX = 4 | |
275 | 269 | ||
276 | - | let | |
270 | + | let aY = 5 | |
277 | 271 | ||
278 | - | let | |
272 | + | let aZ = 6 | |
279 | 273 | ||
280 | - | let | |
274 | + | let ba = 7 | |
281 | 275 | ||
282 | - | let | |
276 | + | let bb = 8 | |
283 | 277 | ||
284 | - | let | |
278 | + | let bc = 9 | |
285 | 279 | ||
286 | - | let | |
280 | + | let bd = 10 | |
287 | 281 | ||
288 | - | func | |
282 | + | func be () = "%s%s__config__controlAddress" | |
289 | 283 | ||
290 | 284 | ||
291 | - | func | |
285 | + | func bf () = "%s__controlConfig" | |
292 | 286 | ||
293 | 287 | ||
294 | - | func | |
288 | + | func bg (bh) = split_4C(P(bh, bf()), j) | |
295 | 289 | ||
296 | 290 | ||
297 | - | func | |
291 | + | func bi (bj,bk) = valueOrErrorMessage(addressFromString(bj[bk]), ("Control cfg doesn't contain address at index " + toString(bk))) | |
298 | 292 | ||
299 | 293 | ||
300 | - | let | |
294 | + | let bl = addressFromStringValue(valueOrElse(getString(this, be()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx")) | |
301 | 295 | ||
302 | - | let | |
296 | + | let bj = bg(bl) | |
303 | 297 | ||
304 | - | let | |
298 | + | let bm = bi(bj, aL) | |
305 | 299 | ||
306 | - | let | |
300 | + | let bn = bi(bj, aI) | |
307 | 301 | ||
308 | - | let | |
302 | + | let bo = bi(bj, aJ) | |
309 | 303 | ||
310 | - | let | |
304 | + | let bp = bi(bj, aM) | |
311 | 305 | ||
312 | - | let | |
306 | + | let bq = bi(bj, aK) | |
313 | 307 | ||
314 | - | let | |
308 | + | let br = bi(bj, aP) | |
315 | 309 | ||
316 | - | let | |
310 | + | let bs = bi(bj, aR) | |
317 | 311 | ||
318 | - | let | |
312 | + | let bt = bi(bj, aS) | |
319 | 313 | ||
320 | - | let bw = R(bp, p()) | |
314 | + | let bu = P(bn, p()) | |
315 | + | ||
316 | + | let bv = fromBase58String(bu) | |
317 | + | ||
318 | + | let bw = getStringValue(bn, q()) | |
321 | 319 | ||
322 | 320 | let bx = fromBase58String(bw) | |
323 | 321 | ||
324 | - | let by = getStringValue( | |
322 | + | let by = getStringValue(bo, r()) | |
325 | 323 | ||
326 | 324 | let bz = fromBase58String(by) | |
327 | 325 | ||
328 | - | let bA = getStringValue(bq, r()) | |
329 | - | ||
330 | - | let bB = fromBase58String(bA) | |
331 | - | ||
332 | - | func bC (bD,bE,bF) = { | |
333 | - | let bG = O(bE) | |
334 | - | let bH = Y(bD, bG, "%s%s__0__0") | |
335 | - | let bI = split(bH, j) | |
336 | - | let bJ = parseIntValue(bI[1]) | |
337 | - | let bK = parseIntValue(bI[2]) | |
338 | - | let bL = ah(bF[ay]) | |
339 | - | let bM = fraction(bJ, bL, d) | |
340 | - | (bM + bK) | |
326 | + | func bA (bB,bC,bD) = { | |
327 | + | let bE = M(bC) | |
328 | + | let bF = W(bB, bE, "%s%s__0__0") | |
329 | + | let bG = split(bF, j) | |
330 | + | let bH = parseIntValue(bG[1]) | |
331 | + | let bI = parseIntValue(bG[2]) | |
332 | + | let bJ = af(bD[aw]) | |
333 | + | let bK = fraction(bH, bJ, d) | |
334 | + | (bK + bI) | |
341 | 335 | } | |
342 | 336 | ||
343 | 337 | ||
344 | - | func | |
345 | - | let | |
346 | - | let | |
347 | - | let | |
348 | - | let | |
349 | - | let | |
350 | - | let | |
351 | - | let | |
352 | - | then | |
353 | - | else | |
354 | - | ( | |
338 | + | func bL (bB,bM) = { | |
339 | + | let bD = ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil)) | |
340 | + | let bN = O(lastBlock.timestamp) | |
341 | + | let bO = (bN - (o * (bM + 1))) | |
342 | + | let bP = (bN - o) | |
343 | + | let bQ = bA(bB, bO, bD) | |
344 | + | let bR = bA(bB, bP, bD) | |
345 | + | let bS = if ((bQ == 0)) | |
346 | + | then bR | |
347 | + | else bQ | |
348 | + | (bR - bS) | |
355 | 349 | } | |
356 | 350 | ||
357 | 351 | ||
358 | - | func | |
359 | - | let | |
360 | - | let | |
361 | - | if ((0 > | |
352 | + | func bT (bB,bU,bV,bW) = { | |
353 | + | let bX = U(bB, "%s%s__stats__activeTotalLocked", 1) | |
354 | + | let bY = fraction(bX, bW, b) | |
355 | + | if ((0 > bV)) | |
362 | 356 | then 0 | |
363 | - | else fraction(( | |
357 | + | else fraction((bV * b), 365, (bY * bU)) | |
364 | 358 | } | |
365 | 359 | ||
366 | 360 | ||
367 | - | @Callable( | |
368 | - | func reverseSwapLimitREADONLY ( | |
369 | - | let | |
370 | - | let | |
361 | + | @Callable(bZ) | |
362 | + | func reverseSwapLimitREADONLY (ca,cb) = { | |
363 | + | let cc = af(ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil))[aE]) | |
364 | + | let cd = if ((0 >= ca)) | |
371 | 365 | then 0 | |
372 | 366 | else { | |
373 | - | let | |
374 | - | then | |
375 | - | else | |
376 | - | let | |
377 | - | then | |
378 | - | else | |
379 | - | let | |
380 | - | then fraction(toBigInt( | |
381 | - | else fraction(fraction(toBigInt( | |
382 | - | let | |
383 | - | toInt(pow( | |
367 | + | let ce = toBigInt(S(bm, if (cb) | |
368 | + | then w() | |
369 | + | else y())) | |
370 | + | let cf = toBigInt(S(bm, if (cb) | |
371 | + | then x() | |
372 | + | else z())) | |
373 | + | let cg = if (cb) | |
374 | + | then fraction(toBigInt(ca), f, ce) | |
375 | + | else fraction(fraction(toBigInt(ca), f, ce), c, toBigInt(cc)) | |
376 | + | let ch = fraction(h, h, cf) | |
377 | + | toInt(pow(cg, 8, ch, 16, 6, CEILING)) | |
384 | 378 | } | |
385 | - | $Tuple2(nil, | |
379 | + | $Tuple2(nil, cd) | |
386 | 380 | } | |
387 | 381 | ||
388 | 382 | ||
389 | 383 | ||
390 | - | @Callable( | |
391 | - | func gnsbtInfoINTERNAL (ck | |
392 | - | let | |
393 | - | then addressFromStringValue( | |
384 | + | @Callable(bZ) | |
385 | + | func gnsbtInfoINTERNAL (ci,cj,ck) = { | |
386 | + | let cl = if ((ci != "")) | |
387 | + | then addressFromStringValue(ci) | |
394 | 388 | else this | |
395 | - | let | |
396 | - | let | |
397 | - | let | |
398 | - | let | |
399 | - | let | |
400 | - | let | |
401 | - | let | |
402 | - | let | |
403 | - | let | |
404 | - | let | |
405 | - | let | |
406 | - | let | |
407 | - | let | |
408 | - | let | |
409 | - | let | |
410 | - | let | |
411 | - | let | |
412 | - | then assetBalance( | |
389 | + | let bJ = getIntegerValue(bl, F()) | |
390 | + | let cm = cj | |
391 | + | let cn = af(invoke(bs, "gnsbtFromSurfSYSREADONLY", [ck], nil)) | |
392 | + | let co = (cm + cn) | |
393 | + | let cp = al(invoke(bn, "swapParamsByUserSYSREADONLY", [ci, 0], nil)) | |
394 | + | let cq = cp._3 | |
395 | + | let cr = cp._4 | |
396 | + | let cs = cp._5 | |
397 | + | let ct = cp._6 | |
398 | + | let cu = cp._7 | |
399 | + | let cv = al(invoke(bn, "swapParamsByUserSYSREADONLY", [ci, co], nil)) | |
400 | + | let cw = cv._3 | |
401 | + | let cx = cv._4 | |
402 | + | let cy = cv._5 | |
403 | + | let cz = cv._6 | |
404 | + | let cA = cv._7 | |
405 | + | let cB = if ((ci != "")) | |
406 | + | then assetBalance(cl, bx) | |
413 | 407 | else 0 | |
414 | - | let | |
415 | - | then assetBalance( | |
408 | + | let cC = if ((ci != "")) | |
409 | + | then assetBalance(cl, bz) | |
416 | 410 | else 0 | |
417 | - | let | |
418 | - | then | |
411 | + | let cD = if ((cj >= 0)) | |
412 | + | then cj | |
419 | 413 | else { | |
420 | - | let | |
421 | - | let | |
422 | - | let | |
423 | - | | |
414 | + | let cE = ab(invoke(br, "nsbtUnstakingSYSREADONLY", [ci, (-1 * cj)], nil)) | |
415 | + | let cF = af(cE[2]) | |
416 | + | let cG = -(cF) | |
417 | + | cG | |
424 | 418 | } | |
425 | - | let | |
426 | - | let | |
427 | - | let | |
428 | - | let | |
429 | - | let | |
430 | - | let | |
431 | - | let | |
432 | - | let | |
433 | - | let | |
434 | - | let | |
435 | - | let | |
436 | - | let | |
437 | - | let | |
438 | - | let | |
439 | - | let | |
440 | - | let | |
441 | - | let | |
442 | - | let | |
443 | - | let | |
444 | - | let | |
445 | - | let | |
446 | - | let | |
447 | - | let | |
448 | - | let | |
449 | - | let | |
419 | + | let cH = (cB - cD) | |
420 | + | let cI = (cC - ck) | |
421 | + | let cJ = ab(invoke(bt, "gnsbtInfoSYSREADONLY", [ci, cj, ck], nil)) | |
422 | + | let cK = af(cJ[0]) | |
423 | + | let cL = af(cJ[1]) | |
424 | + | let cM = ab(cJ[2]) | |
425 | + | let cN = ab(cJ[3]) | |
426 | + | let cO = af(cJ[4]) | |
427 | + | let cP = af(cJ[5]) | |
428 | + | let cQ = af(cM[2]) | |
429 | + | let cR = af(cN[2]) | |
430 | + | let cS = (cQ + cm) | |
431 | + | let cT = (cR + cn) | |
432 | + | let cU = af(cM[3]) | |
433 | + | let cV = af(cN[3]) | |
434 | + | let cW = 0 | |
435 | + | let cX = cV | |
436 | + | let cY = (cU + cm) | |
437 | + | let cZ = (cV + cn) | |
438 | + | let da = cZ | |
439 | + | let db = fraction(cQ, d, (cU + cW)) | |
440 | + | let dc = fraction(cS, d, (cY + cW)) | |
441 | + | let dd = fraction((cQ + cR), d, ((cU + cW) + cX)) | |
442 | + | let de = fraction((cS + cT), d, ((cY + cW) + da)) | |
443 | + | let df = if ((cO == 0)) | |
450 | 444 | then height | |
451 | - | else | |
452 | - | let | |
445 | + | else cO | |
446 | + | let dg = if ((cP == 0)) | |
453 | 447 | then height | |
454 | - | else | |
455 | - | $Tuple2(nil, [0, | |
448 | + | else cP | |
449 | + | $Tuple2(nil, [0, cB, cC, cH, cI, cQ, cR, cS, cT, cU, cV, cY, cZ, cu, ct, cA, cz, cq, cw, db, dc, dd, de, df, dg]) | |
456 | 450 | } | |
457 | 451 | ||
458 | 452 | ||
459 | 453 | ||
460 | - | @Callable( | |
461 | - | func gnsbtInfoREADONLY (ck | |
462 | - | let | |
463 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString( | |
454 | + | @Callable(bZ) | |
455 | + | func gnsbtInfoREADONLY (ci,cj,ck) = { | |
456 | + | let dh = ab(invoke(this, "gnsbtInfoINTERNAL", [ci, cj, ck], nil)) | |
457 | + | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(af(dh[1])), toString(af(dh[2])), toString(af(dh[3])), toString(af(dh[4])), toString(af(dh[5])), toString(af(dh[6])), toString(af(dh[7])), toString(af(dh[8])), toString(af(dh[9])), toString(af(dh[10])), toString(af(dh[11])), toString(af(dh[12])), toString(af(dh[13])), toString(af(dh[14])), toString(af(dh[15])), toString(af(dh[16])), toString(af(dh[17])), toString(af(dh[18])), toString(af(dh[19])), toString(af(dh[20])), toString(af(dh[21])), toString(af(dh[22])), toString(af(dh[23])), toString(af(dh[24]))], j)) | |
464 | 458 | } | |
465 | 459 | ||
466 | 460 | ||
467 | 461 | ||
468 | - | @Callable( | |
469 | - | func gnsbtEffectiveREADONLY ( | |
470 | - | let | |
471 | - | let | |
472 | - | let | |
473 | - | let | |
474 | - | let | |
475 | - | let | |
476 | - | $Tuple2(nil, makeString(["%d%d", toString(( | |
462 | + | @Callable(bZ) | |
463 | + | func gnsbtEffectiveREADONLY (ci) = { | |
464 | + | let cJ = ab(invoke(bt, "gnsbtInfoSYSREADONLY", [ci, 0, 0], nil)) | |
465 | + | let cM = ab(cJ[2]) | |
466 | + | let di = af(cM[2]) | |
467 | + | let dj = af(cM[3]) | |
468 | + | let dk = af(cJ[9]) | |
469 | + | let dl = af(cJ[6]) | |
470 | + | $Tuple2(nil, makeString(["%d%d", toString((dj + dl)), toString((di + dk))], j)) | |
477 | 471 | } | |
478 | 472 | ||
479 | 473 | ||
480 | 474 | ||
481 | - | @Callable( | |
482 | - | func rewardInfoREADONLY ( | |
483 | - | let | |
484 | - | let | |
485 | - | $Tuple2(nil, makeString(["%s%s%s", | |
475 | + | @Callable(bZ) | |
476 | + | func rewardInfoREADONLY (ci) = { | |
477 | + | let dm = ab(invoke(bt, "gnsbtRewardsSYSREADONLY", [ci], nil)) | |
478 | + | let dn = ah(invoke(bq, "unclaimedRewardsREADONLY", [ci], nil)) | |
479 | + | $Tuple2(nil, makeString(["%s%s%s", ah(dm[0]), ah(dm[1]), dn], j)) | |
486 | 480 | } | |
487 | 481 | ||
488 | 482 | ||
489 | 483 | ||
490 | - | @Callable( | |
491 | - | func mergeNsbtREADONLY ( | |
492 | - | let | |
493 | - | let | |
494 | - | let | |
484 | + | @Callable(bZ) | |
485 | + | func mergeNsbtREADONLY (do,dp) = { | |
486 | + | let cM = ab(invoke(br, "nsbtStakingSYSREADONLY", [do, dp], nil)) | |
487 | + | let dq = af(cM[0]) | |
488 | + | let dr = if ((0 >= dq)) | |
495 | 489 | then -1 | |
496 | - | else | |
497 | - | let | |
498 | - | let | |
499 | - | then | |
500 | - | else if ((0 >= | |
490 | + | else af(cM[2]) | |
491 | + | let bO = ao(dr) | |
492 | + | let ds = if ((0 >= dp)) | |
493 | + | then dr | |
494 | + | else if ((0 >= dq)) | |
501 | 495 | then height | |
502 | 496 | else { | |
503 | - | let | |
504 | - | | |
497 | + | let dt = S(br, I()) | |
498 | + | af(invoke(bm, "mergeStakesREADONLY", [dq, dr, dp, height, dt], nil)) | |
505 | 499 | } | |
506 | - | let | |
507 | - | $Tuple2(nil, makeString(["%d%d%d%d", toString( | |
500 | + | let du = ao(ds) | |
501 | + | $Tuple2(nil, makeString(["%d%d%d%d", toString(dr), toString(bO), toString(ds), toString(du)], j)) | |
508 | 502 | } | |
509 | 503 | ||
510 | 504 | ||
511 | 505 | ||
512 | - | @Callable( | |
513 | - | func swapLimitCalculatorREADONLY (dx | |
514 | - | let | |
506 | + | @Callable(bZ) | |
507 | + | func swapLimitCalculatorREADONLY (dv,dw,dx) = { | |
508 | + | let dy = if ((dv == "")) | |
515 | 509 | then 0 | |
516 | - | else | |
517 | - | let | |
518 | - | then | |
519 | - | else | |
520 | - | let | |
521 | - | let | |
522 | - | $Tuple2(nil, makeString(["%s%s", toString( | |
510 | + | else af(al(invoke(bn, "swapParamsByUserSYSREADONLY", [dv, 0], nil))._4) | |
511 | + | let dz = if ((dx == "WAVES")) | |
512 | + | then aa(dw, getIntegerValue(bl, F())) | |
513 | + | else dw | |
514 | + | let dA = af(invoke(this, "reverseSwapLimitREADONLY", [dz, (dx == "WAVES")], nil)) | |
515 | + | let dB = (dA - dy) | |
516 | + | $Tuple2(nil, makeString(["%s%s", toString(dy), toString(dB)], j)) | |
523 | 517 | } | |
524 | 518 | ||
525 | 519 | ||
526 | 520 | ||
527 | - | @Callable(cb) | |
528 | - | func swapInfoREADONLY (ck,aa,dz) = { | |
529 | - | let bF = ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil)) | |
530 | - | let ab = ah(bF[ay]) | |
531 | - | let cr = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, 0], nil)) | |
532 | - | let cs = cr._3 | |
533 | - | let cv = cr._6 | |
534 | - | let cw = cr._7 | |
535 | - | let dE = fromBase58String(dz) | |
536 | - | let dF = if ((dE == n)) | |
537 | - | then "waves" | |
538 | - | else if ((dE == bx)) | |
539 | - | then "neutrino" | |
540 | - | else throw(("Can't swap assetId=" + dz)) | |
541 | - | let dG = ap(invoke(bp, "calcWithdrawResultSYSREADONLY", [dF, aa, ab], nil)) | |
542 | - | let dH = dG._1 | |
543 | - | let dI = dG._2 | |
544 | - | let dJ = dG._3 | |
545 | - | let dK = dG._4 | |
546 | - | let dL = dG._5 | |
547 | - | let dM = dG._6 | |
548 | - | let dN = dG._7 | |
549 | - | let dO = dG._8 | |
550 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dH), toString(dJ), toString(dM), toString(dO), toString(cs), toString(cv), toString(cw), toString(dK)], j)) | |
521 | + | @Callable(bZ) | |
522 | + | func swapInfoREADONLY (ci,Y,dx) = { | |
523 | + | let bD = ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil)) | |
524 | + | let Z = af(bD[aw]) | |
525 | + | let cp = al(invoke(bn, "swapParamsByUserSYSREADONLY", [ci, 0], nil)) | |
526 | + | let cq = cp._3 | |
527 | + | let ct = cp._6 | |
528 | + | let cu = cp._7 | |
529 | + | let dC = fromBase58String(dx) | |
530 | + | let dD = valueOrElse(getString(bn, E()), "WAVES") | |
531 | + | let dE = if (contains(dD, dx)) | |
532 | + | then "outNeutrino" | |
533 | + | else if ((dC == bv)) | |
534 | + | then "outMulti" | |
535 | + | else throw(("Can't swap assetId=" + dx)) | |
536 | + | let dF = an(invoke(bn, "calcWithdrawResultSYSREADONLY", [dE, Y, Z, dx], nil)) | |
537 | + | let dG = dF._1 | |
538 | + | let dH = dF._2 | |
539 | + | let dI = dF._3 | |
540 | + | let dJ = dF._4 | |
541 | + | let dK = dF._5 | |
542 | + | let dL = dF._6 | |
543 | + | let dM = dF._7 | |
544 | + | let dN = dF._8 | |
545 | + | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dG), toString(dI), toString(dL), toString(dN), toString(cq), toString(ct), toString(cu), toString(dJ)], j)) | |
551 | 546 | } | |
552 | 547 | ||
553 | 548 | ||
554 | 549 | ||
555 | - | @Callable(cb) | |
556 | - | func swapInfoV2READONLY (ck,aa,dz) = { | |
557 | - | let bF = ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil)) | |
558 | - | let ab = ah(bF[ay]) | |
559 | - | let cr = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, 0], nil)) | |
560 | - | let cs = cr._3 | |
561 | - | let cv = cr._6 | |
562 | - | let cw = cr._7 | |
563 | - | let dE = fromBase58String(dz) | |
564 | - | let dF = if ((dE == n)) | |
565 | - | then "waves" | |
566 | - | else if ((dE == bx)) | |
567 | - | then "neutrino" | |
568 | - | else throw(("Can't swap assetId=" + dz)) | |
569 | - | let dG = ap(invoke(bp, "calcWithdrawResultSYSREADONLY", [dF, aa, ab], nil)) | |
570 | - | let dH = dG._1 | |
571 | - | let dI = dG._2 | |
572 | - | let dJ = dG._3 | |
573 | - | let dK = dG._4 | |
574 | - | let dL = dG._5 | |
575 | - | let dM = dG._6 | |
576 | - | let dN = dG._7 | |
577 | - | let dO = dG._8 | |
578 | - | let dP = "WAVES:6500000:15590257:78343:318181_EMAMLxDnv3xiz8RXg8Btj33jcEw3wLczL3JKYYmuubpc:318700:35980614:179903:170454_52nvaZGa7ahqa21ER2PAMBVjMi7wC2nWYCNmLvj8QjHx:585395:19588520:97942:170454_9JXnfooQYnahr5L1dH7YksMmWPE8TZramFycXyYxv6Ef:49418611:232038:1160:170454_AMFteLfPzPhTsFc3NfvHG7fSRUnsp3tJXPH88G1PCisT:461400:248526696:1242633:170454" | |
579 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s", toString(dH), toString(dJ), toString(dM), toString(dO), toString(cs), toString(cv), toString(cw), toString(dK), dP], j)) | |
550 | + | @Callable(bZ) | |
551 | + | func swapInfoV2READONLY (ci,Y,dx) = { | |
552 | + | let bD = ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil)) | |
553 | + | let Z = af(bD[aw]) | |
554 | + | let cp = al(invoke(bn, "swapParamsByUserSYSREADONLY", [ci, 0], nil)) | |
555 | + | let cq = cp._3 | |
556 | + | let ct = cp._6 | |
557 | + | let cu = cp._7 | |
558 | + | let dC = fromBase58String(dx) | |
559 | + | let dD = valueOrElse(getString(bn, E()), "WAVES") | |
560 | + | let dE = if (contains(dD, dx)) | |
561 | + | then "outNeutrino" | |
562 | + | else if ((dC == bv)) | |
563 | + | then "outMulti" | |
564 | + | else throw(("Can't swap assetId=" + dx)) | |
565 | + | let dF = an(invoke(bn, "calcWithdrawResultSYSREADONLY", [dE, Y, Z, dx], nil)) | |
566 | + | let dG = dF._1 | |
567 | + | let dH = dF._2 | |
568 | + | let dI = dF._3 | |
569 | + | let dJ = dF._4 | |
570 | + | let dK = dF._5 | |
571 | + | let dL = dF._6 | |
572 | + | let dM = dF._7 | |
573 | + | let dN = dF._8 | |
574 | + | let dO = dF._9 | |
575 | + | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s", toString(dG), toString(dI), toString(dL), toString(dN), toString(cq), toString(ct), toString(cu), toString(dJ), dO], j)) | |
580 | 576 | } | |
581 | 577 | ||
582 | 578 | ||
583 | 579 | ||
584 | - | @Callable( | |
585 | - | func usdnStakingAprREADONLY ( | |
586 | - | let | |
587 | - | let | |
588 | - | let | |
589 | - | let | |
590 | - | let | |
591 | - | let | |
592 | - | $Tuple2(nil, ("%d__" + toString( | |
580 | + | @Callable(bZ) | |
581 | + | func usdnStakingAprREADONLY (bM) = { | |
582 | + | let dP = 1 | |
583 | + | let bD = ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil)) | |
584 | + | let bJ = af(bD[aw]) | |
585 | + | let dQ = (0 * d) | |
586 | + | let bV = fraction(dQ, bJ, d) | |
587 | + | let dR = bT(bq, dP, bV, b) | |
588 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
593 | 589 | } | |
594 | 590 | ||
595 | 591 | ||
596 | 592 | ||
597 | - | @Callable( | |
598 | - | func surfStakingAprREADONLY ( | |
599 | - | let | |
600 | - | let | |
601 | - | let | |
602 | - | let | |
603 | - | $Tuple2(nil, ("%d__" + toString( | |
593 | + | @Callable(bZ) | |
594 | + | func surfStakingAprREADONLY (bM) = { | |
595 | + | let dP = 3 | |
596 | + | let bV = bL(bs, dP) | |
597 | + | let dS = 86400 | |
598 | + | let dR = bT(bs, dP, bV, dS) | |
599 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
604 | 600 | } | |
605 | 601 | ||
606 | 602 | ||
607 | 603 | ||
608 | - | @Callable( | |
609 | - | func surfStakingAprV2READONLY ( | |
610 | - | let | |
611 | - | let | |
612 | - | let | |
613 | - | $Tuple2(nil, ("%d__" + toString( | |
604 | + | @Callable(bZ) | |
605 | + | func surfStakingAprV2READONLY (bM,dT) = { | |
606 | + | let dP = 3 | |
607 | + | let bV = bL(bs, dP) | |
608 | + | let dR = bT(bs, dP, bV, dT) | |
609 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
614 | 610 | } | |
615 | 611 | ||
616 | 612 | ||
617 | 613 | ||
618 | - | @Callable( | |
619 | - | func nsbtStakingAprREADONLY ( | |
620 | - | let | |
621 | - | let | |
622 | - | let | |
623 | - | let | |
624 | - | $Tuple2(nil, ("%d__" + toString( | |
614 | + | @Callable(bZ) | |
615 | + | func nsbtStakingAprREADONLY (bM) = { | |
616 | + | let dP = 3 | |
617 | + | let dU = 8000000 | |
618 | + | let bV = bL(br, dP) | |
619 | + | let dR = bT(br, dP, bV, dU) | |
620 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
625 | 621 | } | |
626 | 622 | ||
627 | 623 | ||
628 | 624 | ||
629 | - | @Callable( | |
630 | - | func nsbtStakingAprV2READONLY ( | |
631 | - | let | |
632 | - | let | |
633 | - | let | |
634 | - | $Tuple2(nil, ("%d__" + toString( | |
625 | + | @Callable(bZ) | |
626 | + | func nsbtStakingAprV2READONLY (bM,dV) = { | |
627 | + | let dP = 3 | |
628 | + | let bV = bL(br, dP) | |
629 | + | let dR = bT(br, dP, bV, dV) | |
630 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
635 | 631 | } | |
636 | 632 | ||
637 | 633 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 271828182 | |
5 | 5 | ||
6 | 6 | let b = 1000000 | |
7 | 7 | ||
8 | 8 | let c = toBigInt(1000000) | |
9 | 9 | ||
10 | 10 | let d = 100000000 | |
11 | 11 | ||
12 | 12 | let e = toBigInt(100000000) | |
13 | 13 | ||
14 | 14 | let f = toBigInt(10000000000) | |
15 | 15 | ||
16 | 16 | let g = 1000000000000 | |
17 | 17 | ||
18 | 18 | let h = toBigInt(10000000000000000) | |
19 | 19 | ||
20 | 20 | let i = toBigInt(1000000000000000000) | |
21 | 21 | ||
22 | 22 | let j = "__" | |
23 | 23 | ||
24 | 24 | let k = 5000 | |
25 | 25 | ||
26 | 26 | let l = 20000 | |
27 | 27 | ||
28 | 28 | let m = 100000 | |
29 | 29 | ||
30 | 30 | let n = fromBase58String("WAVES") | |
31 | 31 | ||
32 | 32 | let o = 86400000 | |
33 | 33 | ||
34 | 34 | func p () = "neutrino_asset_id" | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func q () = "bond_asset_id" | |
38 | 38 | ||
39 | 39 | ||
40 | 40 | func r () = "surf_asset_id" | |
41 | 41 | ||
42 | 42 | ||
43 | - | func s () = " | |
43 | + | func s () = "min_waves_swap_amount" | |
44 | 44 | ||
45 | 45 | ||
46 | - | func t () = | |
46 | + | func t () = "min_neutrino_swap_amount" | |
47 | 47 | ||
48 | 48 | ||
49 | - | func u () = | |
49 | + | func u () = "wavesOut_swap_feePart" | |
50 | 50 | ||
51 | 51 | ||
52 | - | func v () = " | |
52 | + | func v () = "neutrinoOut_swap_feePart" | |
53 | 53 | ||
54 | 54 | ||
55 | - | func w () = " | |
55 | + | func w () = "%s%s__config__swapAParam" | |
56 | 56 | ||
57 | 57 | ||
58 | - | func x () = " | |
58 | + | func x () = "%s%s__config__swapBParam" | |
59 | 59 | ||
60 | 60 | ||
61 | - | func y () = " | |
61 | + | func y () = "%s%s__config__usdnSwapAParam" | |
62 | 62 | ||
63 | 63 | ||
64 | - | func z () = "%s%s__config__ | |
64 | + | func z () = "%s%s__config__usdnSwapBParam" | |
65 | 65 | ||
66 | 66 | ||
67 | - | func A () = "%s | |
67 | + | func A () = "%s__nsbtLockContract" | |
68 | 68 | ||
69 | 69 | ||
70 | - | func B () = "%s | |
70 | + | func B () = "%s__mathContract" | |
71 | 71 | ||
72 | 72 | ||
73 | - | func C () = " | |
73 | + | func C () = "balance_waves_lock_interval" | |
74 | 74 | ||
75 | 75 | ||
76 | - | func D () = " | |
76 | + | func D () = "balance_neutrino_lock_interval" | |
77 | 77 | ||
78 | 78 | ||
79 | - | func E () = "%s__ | |
79 | + | func E () = "%s%s__common__basketAssets" | |
80 | 80 | ||
81 | 81 | ||
82 | - | func F () = " | |
82 | + | func F () = "price" | |
83 | 83 | ||
84 | 84 | ||
85 | - | func G () = " | |
85 | + | func G (H) = makeString(["%s%s%s", "paramByUser", H, "start"], j) | |
86 | 86 | ||
87 | 87 | ||
88 | - | func | |
88 | + | func I () = "%s__halfLife" | |
89 | 89 | ||
90 | 90 | ||
91 | - | func | |
91 | + | func J () = "%s__minLockAmount" | |
92 | 92 | ||
93 | 93 | ||
94 | - | func K () = " | |
94 | + | func K () = "min_waves_nsbt_buy" | |
95 | 95 | ||
96 | 96 | ||
97 | - | func L () = " | |
97 | + | func L () = "min_nsbt_sell" | |
98 | 98 | ||
99 | 99 | ||
100 | - | func M () = " | |
100 | + | func M (N) = makeString(["%s%s%d", "stats", "depositAmtByDay", toString(N)], j) | |
101 | 101 | ||
102 | 102 | ||
103 | - | func | |
103 | + | func O (N) = ((N / o) * o) | |
104 | 104 | ||
105 | 105 | ||
106 | - | func | |
106 | + | func P (Q,R) = valueOrErrorMessage(getString(Q, R), makeString(["mandatory ", toString(Q), ".", R, " is not defined"], "")) | |
107 | 107 | ||
108 | 108 | ||
109 | - | func | |
109 | + | func S (Q,R) = valueOrErrorMessage(getInteger(Q, R), makeString(["mandatory ", toString(Q), ".", R, " is not defined"], "")) | |
110 | 110 | ||
111 | 111 | ||
112 | - | func | |
112 | + | func T (Q,R) = valueOrErrorMessage(getBoolean(Q, R), makeString(["mandatory ", toString(Q), ".", R, " is not defined"], "")) | |
113 | 113 | ||
114 | 114 | ||
115 | - | func U ( | |
115 | + | func U (Q,R,V) = valueOrElse(getInteger(Q, R), V) | |
116 | 116 | ||
117 | 117 | ||
118 | - | func | |
118 | + | func W (Q,R,V) = valueOrElse(getString(Q, R), V) | |
119 | 119 | ||
120 | 120 | ||
121 | - | func | |
121 | + | func X (Y,Z) = fraction(Y, d, Z) | |
122 | 122 | ||
123 | 123 | ||
124 | - | func | |
124 | + | func aa (Y,Z) = fraction(Y, Z, d) | |
125 | 125 | ||
126 | 126 | ||
127 | - | func Z (aa,ab) = fraction(aa, d, ab) | |
128 | - | ||
129 | - | ||
130 | - | func ac (aa,ab) = fraction(aa, ab, d) | |
131 | - | ||
132 | - | ||
133 | - | func ad (ae) = { | |
134 | - | let af = ae | |
135 | - | if ($isInstanceOf(af, "List[Any]")) | |
127 | + | func ab (ac) = { | |
128 | + | let ad = ac | |
129 | + | if ($isInstanceOf(ad, "List[Any]")) | |
136 | 130 | then { | |
137 | - | let | |
138 | - | | |
131 | + | let ae = ad | |
132 | + | ae | |
139 | 133 | } | |
140 | 134 | else throw("fail to cast into List[Any]") | |
141 | 135 | } | |
142 | 136 | ||
143 | 137 | ||
144 | - | func | |
145 | - | let | |
146 | - | if ($isInstanceOf( | |
138 | + | func af (ac) = { | |
139 | + | let ad = ac | |
140 | + | if ($isInstanceOf(ad, "Int")) | |
147 | 141 | then { | |
148 | - | let | |
149 | - | | |
142 | + | let ag = ad | |
143 | + | ag | |
150 | 144 | } | |
151 | 145 | else throw("fail to cast into Int") | |
152 | 146 | } | |
153 | 147 | ||
154 | 148 | ||
155 | - | func | |
156 | - | let | |
157 | - | if ($isInstanceOf( | |
149 | + | func ah (ac) = { | |
150 | + | let ad = ac | |
151 | + | if ($isInstanceOf(ad, "String")) | |
158 | 152 | then { | |
159 | - | let | |
160 | - | | |
153 | + | let ai = ad | |
154 | + | ai | |
161 | 155 | } | |
162 | 156 | else throw("fail to cast into String") | |
163 | 157 | } | |
164 | 158 | ||
165 | 159 | ||
166 | - | func | |
167 | - | let | |
168 | - | if ($isInstanceOf( | |
160 | + | func aj (ac) = { | |
161 | + | let ad = ac | |
162 | + | if ($isInstanceOf(ad, "(Int, Int)")) | |
169 | 163 | then { | |
170 | - | let | |
171 | - | | |
164 | + | let ak = ad | |
165 | + | ak | |
172 | 166 | } | |
173 | 167 | else throw("fail to cast into Tuple2 ints") | |
174 | 168 | } | |
175 | 169 | ||
176 | 170 | ||
177 | - | func | |
178 | - | let | |
179 | - | if ($isInstanceOf( | |
171 | + | func al (ac) = { | |
172 | + | let ad = ac | |
173 | + | if ($isInstanceOf(ad, "(Int, Int, Int, Int, Int, Int, Int)")) | |
180 | 174 | then { | |
181 | - | let | |
182 | - | | |
175 | + | let am = ad | |
176 | + | am | |
183 | 177 | } | |
184 | 178 | else throw("fail to cast into SwapParamsSTRUCT") | |
185 | 179 | } | |
186 | 180 | ||
187 | 181 | ||
188 | - | func | |
189 | - | let | |
190 | - | if (if ($isInstanceOf( | |
182 | + | func an (ac) = { | |
183 | + | let ad = ac | |
184 | + | if (if ($isInstanceOf(ad, "(Int, Unit, Int, Int, Int, Int, Int, Int, String)")) | |
191 | 185 | then true | |
192 | - | else $isInstanceOf( | |
186 | + | else $isInstanceOf(ad, "(Int, ByteVector, Int, Int, Int, Int, Int, Int, String)")) | |
193 | 187 | then { | |
194 | - | let | |
195 | - | | |
188 | + | let am = ad | |
189 | + | am | |
196 | 190 | } | |
197 | 191 | else throw("fail to cast into WithdrawResult") | |
198 | 192 | } | |
199 | 193 | ||
200 | 194 | ||
201 | - | func | |
195 | + | func ao (ap) = if ((0 > ap)) | |
202 | 196 | then -1 | |
203 | 197 | else { | |
204 | - | let | |
205 | - | if ($isInstanceOf( | |
198 | + | let ad = blockInfoByHeight(ap) | |
199 | + | if ($isInstanceOf(ad, "BlockInfo")) | |
206 | 200 | then { | |
207 | - | let | |
208 | - | | |
201 | + | let aq = ad | |
202 | + | aq.timestamp | |
209 | 203 | } | |
210 | 204 | else -1 | |
211 | 205 | } | |
212 | 206 | ||
213 | 207 | ||
214 | - | func | |
208 | + | func ar (as,at) = fraction(toBigInt(as), i, toBigInt(at)) | |
215 | 209 | ||
216 | 210 | ||
217 | - | func | |
211 | + | func au (ac,av) = toInt(fraction(ac, toBigInt(av), i)) | |
218 | 212 | ||
219 | 213 | ||
220 | - | let | |
214 | + | let aw = 0 | |
221 | 215 | ||
222 | - | let | |
216 | + | let ax = 1 | |
223 | 217 | ||
224 | - | let | |
218 | + | let ay = 2 | |
225 | 219 | ||
226 | - | let | |
220 | + | let az = 3 | |
227 | 221 | ||
228 | - | let | |
222 | + | let aA = 4 | |
229 | 223 | ||
230 | - | let | |
224 | + | let aB = 5 | |
231 | 225 | ||
232 | - | let | |
226 | + | let aC = 6 | |
233 | 227 | ||
234 | - | let | |
228 | + | let aD = 7 | |
235 | 229 | ||
236 | - | let | |
230 | + | let aE = 8 | |
237 | 231 | ||
238 | - | let | |
232 | + | let aF = 9 | |
239 | 233 | ||
240 | - | let | |
234 | + | let aG = 10 | |
241 | 235 | ||
242 | - | let | |
236 | + | let aH = 11 | |
243 | 237 | ||
244 | - | let | |
238 | + | let aI = 1 | |
245 | 239 | ||
246 | - | let | |
240 | + | let aJ = 2 | |
247 | 241 | ||
248 | - | let | |
242 | + | let aK = 3 | |
249 | 243 | ||
250 | - | let | |
244 | + | let aL = 4 | |
251 | 245 | ||
252 | - | let | |
246 | + | let aM = 5 | |
253 | 247 | ||
254 | - | let | |
248 | + | let aN = 6 | |
255 | 249 | ||
256 | - | let | |
250 | + | let aO = 7 | |
257 | 251 | ||
258 | - | let | |
252 | + | let aP = 8 | |
259 | 253 | ||
260 | - | let | |
254 | + | let aQ = 9 | |
261 | 255 | ||
262 | - | let | |
256 | + | let aR = 10 | |
263 | 257 | ||
264 | - | let | |
258 | + | let aS = 11 | |
265 | 259 | ||
266 | - | let | |
260 | + | let aT = 0 | |
267 | 261 | ||
268 | - | let | |
262 | + | let aU = 1 | |
269 | 263 | ||
270 | - | let | |
264 | + | let aV = 2 | |
271 | 265 | ||
272 | - | let | |
266 | + | let aW = 3 | |
273 | 267 | ||
274 | - | let | |
268 | + | let aX = 4 | |
275 | 269 | ||
276 | - | let | |
270 | + | let aY = 5 | |
277 | 271 | ||
278 | - | let | |
272 | + | let aZ = 6 | |
279 | 273 | ||
280 | - | let | |
274 | + | let ba = 7 | |
281 | 275 | ||
282 | - | let | |
276 | + | let bb = 8 | |
283 | 277 | ||
284 | - | let | |
278 | + | let bc = 9 | |
285 | 279 | ||
286 | - | let | |
280 | + | let bd = 10 | |
287 | 281 | ||
288 | - | func | |
282 | + | func be () = "%s%s__config__controlAddress" | |
289 | 283 | ||
290 | 284 | ||
291 | - | func | |
285 | + | func bf () = "%s__controlConfig" | |
292 | 286 | ||
293 | 287 | ||
294 | - | func | |
288 | + | func bg (bh) = split_4C(P(bh, bf()), j) | |
295 | 289 | ||
296 | 290 | ||
297 | - | func | |
291 | + | func bi (bj,bk) = valueOrErrorMessage(addressFromString(bj[bk]), ("Control cfg doesn't contain address at index " + toString(bk))) | |
298 | 292 | ||
299 | 293 | ||
300 | - | let | |
294 | + | let bl = addressFromStringValue(valueOrElse(getString(this, be()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx")) | |
301 | 295 | ||
302 | - | let | |
296 | + | let bj = bg(bl) | |
303 | 297 | ||
304 | - | let | |
298 | + | let bm = bi(bj, aL) | |
305 | 299 | ||
306 | - | let | |
300 | + | let bn = bi(bj, aI) | |
307 | 301 | ||
308 | - | let | |
302 | + | let bo = bi(bj, aJ) | |
309 | 303 | ||
310 | - | let | |
304 | + | let bp = bi(bj, aM) | |
311 | 305 | ||
312 | - | let | |
306 | + | let bq = bi(bj, aK) | |
313 | 307 | ||
314 | - | let | |
308 | + | let br = bi(bj, aP) | |
315 | 309 | ||
316 | - | let | |
310 | + | let bs = bi(bj, aR) | |
317 | 311 | ||
318 | - | let | |
312 | + | let bt = bi(bj, aS) | |
319 | 313 | ||
320 | - | let bw = R(bp, p()) | |
314 | + | let bu = P(bn, p()) | |
315 | + | ||
316 | + | let bv = fromBase58String(bu) | |
317 | + | ||
318 | + | let bw = getStringValue(bn, q()) | |
321 | 319 | ||
322 | 320 | let bx = fromBase58String(bw) | |
323 | 321 | ||
324 | - | let by = getStringValue( | |
322 | + | let by = getStringValue(bo, r()) | |
325 | 323 | ||
326 | 324 | let bz = fromBase58String(by) | |
327 | 325 | ||
328 | - | let bA = getStringValue(bq, r()) | |
329 | - | ||
330 | - | let bB = fromBase58String(bA) | |
331 | - | ||
332 | - | func bC (bD,bE,bF) = { | |
333 | - | let bG = O(bE) | |
334 | - | let bH = Y(bD, bG, "%s%s__0__0") | |
335 | - | let bI = split(bH, j) | |
336 | - | let bJ = parseIntValue(bI[1]) | |
337 | - | let bK = parseIntValue(bI[2]) | |
338 | - | let bL = ah(bF[ay]) | |
339 | - | let bM = fraction(bJ, bL, d) | |
340 | - | (bM + bK) | |
326 | + | func bA (bB,bC,bD) = { | |
327 | + | let bE = M(bC) | |
328 | + | let bF = W(bB, bE, "%s%s__0__0") | |
329 | + | let bG = split(bF, j) | |
330 | + | let bH = parseIntValue(bG[1]) | |
331 | + | let bI = parseIntValue(bG[2]) | |
332 | + | let bJ = af(bD[aw]) | |
333 | + | let bK = fraction(bH, bJ, d) | |
334 | + | (bK + bI) | |
341 | 335 | } | |
342 | 336 | ||
343 | 337 | ||
344 | - | func | |
345 | - | let | |
346 | - | let | |
347 | - | let | |
348 | - | let | |
349 | - | let | |
350 | - | let | |
351 | - | let | |
352 | - | then | |
353 | - | else | |
354 | - | ( | |
338 | + | func bL (bB,bM) = { | |
339 | + | let bD = ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil)) | |
340 | + | let bN = O(lastBlock.timestamp) | |
341 | + | let bO = (bN - (o * (bM + 1))) | |
342 | + | let bP = (bN - o) | |
343 | + | let bQ = bA(bB, bO, bD) | |
344 | + | let bR = bA(bB, bP, bD) | |
345 | + | let bS = if ((bQ == 0)) | |
346 | + | then bR | |
347 | + | else bQ | |
348 | + | (bR - bS) | |
355 | 349 | } | |
356 | 350 | ||
357 | 351 | ||
358 | - | func | |
359 | - | let | |
360 | - | let | |
361 | - | if ((0 > | |
352 | + | func bT (bB,bU,bV,bW) = { | |
353 | + | let bX = U(bB, "%s%s__stats__activeTotalLocked", 1) | |
354 | + | let bY = fraction(bX, bW, b) | |
355 | + | if ((0 > bV)) | |
362 | 356 | then 0 | |
363 | - | else fraction(( | |
357 | + | else fraction((bV * b), 365, (bY * bU)) | |
364 | 358 | } | |
365 | 359 | ||
366 | 360 | ||
367 | - | @Callable( | |
368 | - | func reverseSwapLimitREADONLY ( | |
369 | - | let | |
370 | - | let | |
361 | + | @Callable(bZ) | |
362 | + | func reverseSwapLimitREADONLY (ca,cb) = { | |
363 | + | let cc = af(ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil))[aE]) | |
364 | + | let cd = if ((0 >= ca)) | |
371 | 365 | then 0 | |
372 | 366 | else { | |
373 | - | let | |
374 | - | then | |
375 | - | else | |
376 | - | let | |
377 | - | then | |
378 | - | else | |
379 | - | let | |
380 | - | then fraction(toBigInt( | |
381 | - | else fraction(fraction(toBigInt( | |
382 | - | let | |
383 | - | toInt(pow( | |
367 | + | let ce = toBigInt(S(bm, if (cb) | |
368 | + | then w() | |
369 | + | else y())) | |
370 | + | let cf = toBigInt(S(bm, if (cb) | |
371 | + | then x() | |
372 | + | else z())) | |
373 | + | let cg = if (cb) | |
374 | + | then fraction(toBigInt(ca), f, ce) | |
375 | + | else fraction(fraction(toBigInt(ca), f, ce), c, toBigInt(cc)) | |
376 | + | let ch = fraction(h, h, cf) | |
377 | + | toInt(pow(cg, 8, ch, 16, 6, CEILING)) | |
384 | 378 | } | |
385 | - | $Tuple2(nil, | |
379 | + | $Tuple2(nil, cd) | |
386 | 380 | } | |
387 | 381 | ||
388 | 382 | ||
389 | 383 | ||
390 | - | @Callable( | |
391 | - | func gnsbtInfoINTERNAL (ck | |
392 | - | let | |
393 | - | then addressFromStringValue( | |
384 | + | @Callable(bZ) | |
385 | + | func gnsbtInfoINTERNAL (ci,cj,ck) = { | |
386 | + | let cl = if ((ci != "")) | |
387 | + | then addressFromStringValue(ci) | |
394 | 388 | else this | |
395 | - | let | |
396 | - | let | |
397 | - | let | |
398 | - | let | |
399 | - | let | |
400 | - | let | |
401 | - | let | |
402 | - | let | |
403 | - | let | |
404 | - | let | |
405 | - | let | |
406 | - | let | |
407 | - | let | |
408 | - | let | |
409 | - | let | |
410 | - | let | |
411 | - | let | |
412 | - | then assetBalance( | |
389 | + | let bJ = getIntegerValue(bl, F()) | |
390 | + | let cm = cj | |
391 | + | let cn = af(invoke(bs, "gnsbtFromSurfSYSREADONLY", [ck], nil)) | |
392 | + | let co = (cm + cn) | |
393 | + | let cp = al(invoke(bn, "swapParamsByUserSYSREADONLY", [ci, 0], nil)) | |
394 | + | let cq = cp._3 | |
395 | + | let cr = cp._4 | |
396 | + | let cs = cp._5 | |
397 | + | let ct = cp._6 | |
398 | + | let cu = cp._7 | |
399 | + | let cv = al(invoke(bn, "swapParamsByUserSYSREADONLY", [ci, co], nil)) | |
400 | + | let cw = cv._3 | |
401 | + | let cx = cv._4 | |
402 | + | let cy = cv._5 | |
403 | + | let cz = cv._6 | |
404 | + | let cA = cv._7 | |
405 | + | let cB = if ((ci != "")) | |
406 | + | then assetBalance(cl, bx) | |
413 | 407 | else 0 | |
414 | - | let | |
415 | - | then assetBalance( | |
408 | + | let cC = if ((ci != "")) | |
409 | + | then assetBalance(cl, bz) | |
416 | 410 | else 0 | |
417 | - | let | |
418 | - | then | |
411 | + | let cD = if ((cj >= 0)) | |
412 | + | then cj | |
419 | 413 | else { | |
420 | - | let | |
421 | - | let | |
422 | - | let | |
423 | - | | |
414 | + | let cE = ab(invoke(br, "nsbtUnstakingSYSREADONLY", [ci, (-1 * cj)], nil)) | |
415 | + | let cF = af(cE[2]) | |
416 | + | let cG = -(cF) | |
417 | + | cG | |
424 | 418 | } | |
425 | - | let | |
426 | - | let | |
427 | - | let | |
428 | - | let | |
429 | - | let | |
430 | - | let | |
431 | - | let | |
432 | - | let | |
433 | - | let | |
434 | - | let | |
435 | - | let | |
436 | - | let | |
437 | - | let | |
438 | - | let | |
439 | - | let | |
440 | - | let | |
441 | - | let | |
442 | - | let | |
443 | - | let | |
444 | - | let | |
445 | - | let | |
446 | - | let | |
447 | - | let | |
448 | - | let | |
449 | - | let | |
419 | + | let cH = (cB - cD) | |
420 | + | let cI = (cC - ck) | |
421 | + | let cJ = ab(invoke(bt, "gnsbtInfoSYSREADONLY", [ci, cj, ck], nil)) | |
422 | + | let cK = af(cJ[0]) | |
423 | + | let cL = af(cJ[1]) | |
424 | + | let cM = ab(cJ[2]) | |
425 | + | let cN = ab(cJ[3]) | |
426 | + | let cO = af(cJ[4]) | |
427 | + | let cP = af(cJ[5]) | |
428 | + | let cQ = af(cM[2]) | |
429 | + | let cR = af(cN[2]) | |
430 | + | let cS = (cQ + cm) | |
431 | + | let cT = (cR + cn) | |
432 | + | let cU = af(cM[3]) | |
433 | + | let cV = af(cN[3]) | |
434 | + | let cW = 0 | |
435 | + | let cX = cV | |
436 | + | let cY = (cU + cm) | |
437 | + | let cZ = (cV + cn) | |
438 | + | let da = cZ | |
439 | + | let db = fraction(cQ, d, (cU + cW)) | |
440 | + | let dc = fraction(cS, d, (cY + cW)) | |
441 | + | let dd = fraction((cQ + cR), d, ((cU + cW) + cX)) | |
442 | + | let de = fraction((cS + cT), d, ((cY + cW) + da)) | |
443 | + | let df = if ((cO == 0)) | |
450 | 444 | then height | |
451 | - | else | |
452 | - | let | |
445 | + | else cO | |
446 | + | let dg = if ((cP == 0)) | |
453 | 447 | then height | |
454 | - | else | |
455 | - | $Tuple2(nil, [0, | |
448 | + | else cP | |
449 | + | $Tuple2(nil, [0, cB, cC, cH, cI, cQ, cR, cS, cT, cU, cV, cY, cZ, cu, ct, cA, cz, cq, cw, db, dc, dd, de, df, dg]) | |
456 | 450 | } | |
457 | 451 | ||
458 | 452 | ||
459 | 453 | ||
460 | - | @Callable( | |
461 | - | func gnsbtInfoREADONLY (ck | |
462 | - | let | |
463 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString( | |
454 | + | @Callable(bZ) | |
455 | + | func gnsbtInfoREADONLY (ci,cj,ck) = { | |
456 | + | let dh = ab(invoke(this, "gnsbtInfoINTERNAL", [ci, cj, ck], nil)) | |
457 | + | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(af(dh[1])), toString(af(dh[2])), toString(af(dh[3])), toString(af(dh[4])), toString(af(dh[5])), toString(af(dh[6])), toString(af(dh[7])), toString(af(dh[8])), toString(af(dh[9])), toString(af(dh[10])), toString(af(dh[11])), toString(af(dh[12])), toString(af(dh[13])), toString(af(dh[14])), toString(af(dh[15])), toString(af(dh[16])), toString(af(dh[17])), toString(af(dh[18])), toString(af(dh[19])), toString(af(dh[20])), toString(af(dh[21])), toString(af(dh[22])), toString(af(dh[23])), toString(af(dh[24]))], j)) | |
464 | 458 | } | |
465 | 459 | ||
466 | 460 | ||
467 | 461 | ||
468 | - | @Callable( | |
469 | - | func gnsbtEffectiveREADONLY ( | |
470 | - | let | |
471 | - | let | |
472 | - | let | |
473 | - | let | |
474 | - | let | |
475 | - | let | |
476 | - | $Tuple2(nil, makeString(["%d%d", toString(( | |
462 | + | @Callable(bZ) | |
463 | + | func gnsbtEffectiveREADONLY (ci) = { | |
464 | + | let cJ = ab(invoke(bt, "gnsbtInfoSYSREADONLY", [ci, 0, 0], nil)) | |
465 | + | let cM = ab(cJ[2]) | |
466 | + | let di = af(cM[2]) | |
467 | + | let dj = af(cM[3]) | |
468 | + | let dk = af(cJ[9]) | |
469 | + | let dl = af(cJ[6]) | |
470 | + | $Tuple2(nil, makeString(["%d%d", toString((dj + dl)), toString((di + dk))], j)) | |
477 | 471 | } | |
478 | 472 | ||
479 | 473 | ||
480 | 474 | ||
481 | - | @Callable( | |
482 | - | func rewardInfoREADONLY ( | |
483 | - | let | |
484 | - | let | |
485 | - | $Tuple2(nil, makeString(["%s%s%s", | |
475 | + | @Callable(bZ) | |
476 | + | func rewardInfoREADONLY (ci) = { | |
477 | + | let dm = ab(invoke(bt, "gnsbtRewardsSYSREADONLY", [ci], nil)) | |
478 | + | let dn = ah(invoke(bq, "unclaimedRewardsREADONLY", [ci], nil)) | |
479 | + | $Tuple2(nil, makeString(["%s%s%s", ah(dm[0]), ah(dm[1]), dn], j)) | |
486 | 480 | } | |
487 | 481 | ||
488 | 482 | ||
489 | 483 | ||
490 | - | @Callable( | |
491 | - | func mergeNsbtREADONLY ( | |
492 | - | let | |
493 | - | let | |
494 | - | let | |
484 | + | @Callable(bZ) | |
485 | + | func mergeNsbtREADONLY (do,dp) = { | |
486 | + | let cM = ab(invoke(br, "nsbtStakingSYSREADONLY", [do, dp], nil)) | |
487 | + | let dq = af(cM[0]) | |
488 | + | let dr = if ((0 >= dq)) | |
495 | 489 | then -1 | |
496 | - | else | |
497 | - | let | |
498 | - | let | |
499 | - | then | |
500 | - | else if ((0 >= | |
490 | + | else af(cM[2]) | |
491 | + | let bO = ao(dr) | |
492 | + | let ds = if ((0 >= dp)) | |
493 | + | then dr | |
494 | + | else if ((0 >= dq)) | |
501 | 495 | then height | |
502 | 496 | else { | |
503 | - | let | |
504 | - | | |
497 | + | let dt = S(br, I()) | |
498 | + | af(invoke(bm, "mergeStakesREADONLY", [dq, dr, dp, height, dt], nil)) | |
505 | 499 | } | |
506 | - | let | |
507 | - | $Tuple2(nil, makeString(["%d%d%d%d", toString( | |
500 | + | let du = ao(ds) | |
501 | + | $Tuple2(nil, makeString(["%d%d%d%d", toString(dr), toString(bO), toString(ds), toString(du)], j)) | |
508 | 502 | } | |
509 | 503 | ||
510 | 504 | ||
511 | 505 | ||
512 | - | @Callable( | |
513 | - | func swapLimitCalculatorREADONLY (dx | |
514 | - | let | |
506 | + | @Callable(bZ) | |
507 | + | func swapLimitCalculatorREADONLY (dv,dw,dx) = { | |
508 | + | let dy = if ((dv == "")) | |
515 | 509 | then 0 | |
516 | - | else | |
517 | - | let | |
518 | - | then | |
519 | - | else | |
520 | - | let | |
521 | - | let | |
522 | - | $Tuple2(nil, makeString(["%s%s", toString( | |
510 | + | else af(al(invoke(bn, "swapParamsByUserSYSREADONLY", [dv, 0], nil))._4) | |
511 | + | let dz = if ((dx == "WAVES")) | |
512 | + | then aa(dw, getIntegerValue(bl, F())) | |
513 | + | else dw | |
514 | + | let dA = af(invoke(this, "reverseSwapLimitREADONLY", [dz, (dx == "WAVES")], nil)) | |
515 | + | let dB = (dA - dy) | |
516 | + | $Tuple2(nil, makeString(["%s%s", toString(dy), toString(dB)], j)) | |
523 | 517 | } | |
524 | 518 | ||
525 | 519 | ||
526 | 520 | ||
527 | - | @Callable(cb) | |
528 | - | func swapInfoREADONLY (ck,aa,dz) = { | |
529 | - | let bF = ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil)) | |
530 | - | let ab = ah(bF[ay]) | |
531 | - | let cr = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, 0], nil)) | |
532 | - | let cs = cr._3 | |
533 | - | let cv = cr._6 | |
534 | - | let cw = cr._7 | |
535 | - | let dE = fromBase58String(dz) | |
536 | - | let dF = if ((dE == n)) | |
537 | - | then "waves" | |
538 | - | else if ((dE == bx)) | |
539 | - | then "neutrino" | |
540 | - | else throw(("Can't swap assetId=" + dz)) | |
541 | - | let dG = ap(invoke(bp, "calcWithdrawResultSYSREADONLY", [dF, aa, ab], nil)) | |
542 | - | let dH = dG._1 | |
543 | - | let dI = dG._2 | |
544 | - | let dJ = dG._3 | |
545 | - | let dK = dG._4 | |
546 | - | let dL = dG._5 | |
547 | - | let dM = dG._6 | |
548 | - | let dN = dG._7 | |
549 | - | let dO = dG._8 | |
550 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dH), toString(dJ), toString(dM), toString(dO), toString(cs), toString(cv), toString(cw), toString(dK)], j)) | |
521 | + | @Callable(bZ) | |
522 | + | func swapInfoREADONLY (ci,Y,dx) = { | |
523 | + | let bD = ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil)) | |
524 | + | let Z = af(bD[aw]) | |
525 | + | let cp = al(invoke(bn, "swapParamsByUserSYSREADONLY", [ci, 0], nil)) | |
526 | + | let cq = cp._3 | |
527 | + | let ct = cp._6 | |
528 | + | let cu = cp._7 | |
529 | + | let dC = fromBase58String(dx) | |
530 | + | let dD = valueOrElse(getString(bn, E()), "WAVES") | |
531 | + | let dE = if (contains(dD, dx)) | |
532 | + | then "outNeutrino" | |
533 | + | else if ((dC == bv)) | |
534 | + | then "outMulti" | |
535 | + | else throw(("Can't swap assetId=" + dx)) | |
536 | + | let dF = an(invoke(bn, "calcWithdrawResultSYSREADONLY", [dE, Y, Z, dx], nil)) | |
537 | + | let dG = dF._1 | |
538 | + | let dH = dF._2 | |
539 | + | let dI = dF._3 | |
540 | + | let dJ = dF._4 | |
541 | + | let dK = dF._5 | |
542 | + | let dL = dF._6 | |
543 | + | let dM = dF._7 | |
544 | + | let dN = dF._8 | |
545 | + | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dG), toString(dI), toString(dL), toString(dN), toString(cq), toString(ct), toString(cu), toString(dJ)], j)) | |
551 | 546 | } | |
552 | 547 | ||
553 | 548 | ||
554 | 549 | ||
555 | - | @Callable(cb) | |
556 | - | func swapInfoV2READONLY (ck,aa,dz) = { | |
557 | - | let bF = ad(invoke(bo, "calcNeutinoMetricsREADONLY", nil, nil)) | |
558 | - | let ab = ah(bF[ay]) | |
559 | - | let cr = an(invoke(bp, "swapParamsByUserSYSREADONLY", [ck, 0], nil)) | |
560 | - | let cs = cr._3 | |
561 | - | let cv = cr._6 | |
562 | - | let cw = cr._7 | |
563 | - | let dE = fromBase58String(dz) | |
564 | - | let dF = if ((dE == n)) | |
565 | - | then "waves" | |
566 | - | else if ((dE == bx)) | |
567 | - | then "neutrino" | |
568 | - | else throw(("Can't swap assetId=" + dz)) | |
569 | - | let dG = ap(invoke(bp, "calcWithdrawResultSYSREADONLY", [dF, aa, ab], nil)) | |
570 | - | let dH = dG._1 | |
571 | - | let dI = dG._2 | |
572 | - | let dJ = dG._3 | |
573 | - | let dK = dG._4 | |
574 | - | let dL = dG._5 | |
575 | - | let dM = dG._6 | |
576 | - | let dN = dG._7 | |
577 | - | let dO = dG._8 | |
578 | - | let dP = "WAVES:6500000:15590257:78343:318181_EMAMLxDnv3xiz8RXg8Btj33jcEw3wLczL3JKYYmuubpc:318700:35980614:179903:170454_52nvaZGa7ahqa21ER2PAMBVjMi7wC2nWYCNmLvj8QjHx:585395:19588520:97942:170454_9JXnfooQYnahr5L1dH7YksMmWPE8TZramFycXyYxv6Ef:49418611:232038:1160:170454_AMFteLfPzPhTsFc3NfvHG7fSRUnsp3tJXPH88G1PCisT:461400:248526696:1242633:170454" | |
579 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s", toString(dH), toString(dJ), toString(dM), toString(dO), toString(cs), toString(cv), toString(cw), toString(dK), dP], j)) | |
550 | + | @Callable(bZ) | |
551 | + | func swapInfoV2READONLY (ci,Y,dx) = { | |
552 | + | let bD = ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil)) | |
553 | + | let Z = af(bD[aw]) | |
554 | + | let cp = al(invoke(bn, "swapParamsByUserSYSREADONLY", [ci, 0], nil)) | |
555 | + | let cq = cp._3 | |
556 | + | let ct = cp._6 | |
557 | + | let cu = cp._7 | |
558 | + | let dC = fromBase58String(dx) | |
559 | + | let dD = valueOrElse(getString(bn, E()), "WAVES") | |
560 | + | let dE = if (contains(dD, dx)) | |
561 | + | then "outNeutrino" | |
562 | + | else if ((dC == bv)) | |
563 | + | then "outMulti" | |
564 | + | else throw(("Can't swap assetId=" + dx)) | |
565 | + | let dF = an(invoke(bn, "calcWithdrawResultSYSREADONLY", [dE, Y, Z, dx], nil)) | |
566 | + | let dG = dF._1 | |
567 | + | let dH = dF._2 | |
568 | + | let dI = dF._3 | |
569 | + | let dJ = dF._4 | |
570 | + | let dK = dF._5 | |
571 | + | let dL = dF._6 | |
572 | + | let dM = dF._7 | |
573 | + | let dN = dF._8 | |
574 | + | let dO = dF._9 | |
575 | + | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s", toString(dG), toString(dI), toString(dL), toString(dN), toString(cq), toString(ct), toString(cu), toString(dJ), dO], j)) | |
580 | 576 | } | |
581 | 577 | ||
582 | 578 | ||
583 | 579 | ||
584 | - | @Callable( | |
585 | - | func usdnStakingAprREADONLY ( | |
586 | - | let | |
587 | - | let | |
588 | - | let | |
589 | - | let | |
590 | - | let | |
591 | - | let | |
592 | - | $Tuple2(nil, ("%d__" + toString( | |
580 | + | @Callable(bZ) | |
581 | + | func usdnStakingAprREADONLY (bM) = { | |
582 | + | let dP = 1 | |
583 | + | let bD = ab(invoke(bm, "calcNeutinoMetricsREADONLY", nil, nil)) | |
584 | + | let bJ = af(bD[aw]) | |
585 | + | let dQ = (0 * d) | |
586 | + | let bV = fraction(dQ, bJ, d) | |
587 | + | let dR = bT(bq, dP, bV, b) | |
588 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
593 | 589 | } | |
594 | 590 | ||
595 | 591 | ||
596 | 592 | ||
597 | - | @Callable( | |
598 | - | func surfStakingAprREADONLY ( | |
599 | - | let | |
600 | - | let | |
601 | - | let | |
602 | - | let | |
603 | - | $Tuple2(nil, ("%d__" + toString( | |
593 | + | @Callable(bZ) | |
594 | + | func surfStakingAprREADONLY (bM) = { | |
595 | + | let dP = 3 | |
596 | + | let bV = bL(bs, dP) | |
597 | + | let dS = 86400 | |
598 | + | let dR = bT(bs, dP, bV, dS) | |
599 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
604 | 600 | } | |
605 | 601 | ||
606 | 602 | ||
607 | 603 | ||
608 | - | @Callable( | |
609 | - | func surfStakingAprV2READONLY ( | |
610 | - | let | |
611 | - | let | |
612 | - | let | |
613 | - | $Tuple2(nil, ("%d__" + toString( | |
604 | + | @Callable(bZ) | |
605 | + | func surfStakingAprV2READONLY (bM,dT) = { | |
606 | + | let dP = 3 | |
607 | + | let bV = bL(bs, dP) | |
608 | + | let dR = bT(bs, dP, bV, dT) | |
609 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
614 | 610 | } | |
615 | 611 | ||
616 | 612 | ||
617 | 613 | ||
618 | - | @Callable( | |
619 | - | func nsbtStakingAprREADONLY ( | |
620 | - | let | |
621 | - | let | |
622 | - | let | |
623 | - | let | |
624 | - | $Tuple2(nil, ("%d__" + toString( | |
614 | + | @Callable(bZ) | |
615 | + | func nsbtStakingAprREADONLY (bM) = { | |
616 | + | let dP = 3 | |
617 | + | let dU = 8000000 | |
618 | + | let bV = bL(br, dP) | |
619 | + | let dR = bT(br, dP, bV, dU) | |
620 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
625 | 621 | } | |
626 | 622 | ||
627 | 623 | ||
628 | 624 | ||
629 | - | @Callable( | |
630 | - | func nsbtStakingAprV2READONLY ( | |
631 | - | let | |
632 | - | let | |
633 | - | let | |
634 | - | $Tuple2(nil, ("%d__" + toString( | |
625 | + | @Callable(bZ) | |
626 | + | func nsbtStakingAprV2READONLY (bM,dV) = { | |
627 | + | let dP = 3 | |
628 | + | let bV = bL(br, dP) | |
629 | + | let dR = bT(br, dP, bV, dV) | |
630 | + | $Tuple2(nil, ("%d__" + toString(dR))) | |
635 | 631 | } | |
636 | 632 | ||
637 | 633 |
github/deemru/w8io/169f3d6 253.39 ms ◑![]()