tx · HjkeEFcA6VXRaiEKKwb8c9hY7wWSAe6Rpq3R2B6pYvMk 3Muytcv8u3SKC8Nc76tUXTfq26nD3Mu5Vax: -0.03700000 Waves 2023.01.09 11:38 [2397174] smart account 3Muytcv8u3SKC8Nc76tUXTfq26nD3Mu5Vax > SELF 0.00000000 Waves
{ "type": 13, "id": "HjkeEFcA6VXRaiEKKwb8c9hY7wWSAe6Rpq3R2B6pYvMk", "fee": 3700000, "feeAssetId": null, "timestamp": 1673253551866, "version": 2, "chainId": 84, "sender": "3Muytcv8u3SKC8Nc76tUXTfq26nD3Mu5Vax", "senderPublicKey": "2nfPSXMHiTFAPhqiE41GL52Ld7jy6D1wjZdhUmgfLNzk", "proofs": [ "3nf6aNTicAp2Dw5MRhkjUA6w1L8NQCNQWvF9kYqHom5i1RT5o5W9VcwAvqkYr7mZnt2h8VzQHUSfo85S2DnvPP19" ], "script": "base64:BgIiCAISBAoCCAgSAwoBCBIFCgMIAQgSBQoDCAEIEgUKAwgIAR8AEmtfYXNzZXRfY29sbGF0ZXJhbAISa19hc3NldF9jb2xsYXRlcmFsACBrX3RyYWRlcl9tYXJrZXRfYXNzZXRfY29sbGF0ZXJhbAIga190cmFkZXJfbWFya2V0X2Fzc2V0X2NvbGxhdGVyYWwAEWtfd2hpdGVsaXN0X2Fzc2V0AhFrX3doaXRlbGlzdF9hc3NldAANa19pbml0aWFsaXplZAINa19pbml0aWFsaXplZAAUa19jb29yZGluYXRvckFkZHJlc3MCFGtfY29vcmRpbmF0b3JBZGRyZXNzABJrX2dvdmVybmFuY2VfYXNzZXQCC2tfZ292X2Fzc2V0AA1rX3F1b3RlX2Fzc2V0Ag1rX3F1b3RlX2Fzc2V0ABJrX2FkbWluX3B1YmxpY19rZXkCEmtfYWRtaW5fcHVibGljX2tleQARa19tYW5hZ2VyX2FkZHJlc3MCEWtfbWFuYWdlcl9hZGRyZXNzAAVrX2FtbQIFa19hbW0AEmtfZXhjaGFuZ2VfYWRkcmVzcwISa19leGNoYW5nZV9hZGRyZXNzAA9rX3ZhdWx0X2FkZHJlc3MCD2tfdmF1bHRfYWRkcmVzcwEOdG9Db21wb3NpdGVLZXkCBF9rZXkIX2FkZHJlc3MJAKwCAgkArAICBQRfa2V5AgFfBQhfYWRkcmVzcwELY29vcmRpbmF0b3IACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MCE0Nvb3JkaW5hdG9yIG5vdCBzZXQBDmFkbWluUHVibGljS2V5AAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABRJrX2FkbWluX3B1YmxpY19rZXkBD2dvdmVybmFuY2VBc3NldAAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgkBC2Nvb3JkaW5hdG9yAAUSa19nb3Zlcm5hbmNlX2Fzc2V0AQpxdW90ZUFzc2V0AAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABQ1rX3F1b3RlX2Fzc2V0AQ5tYW5hZ2VyQWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABRFrX21hbmFnZXJfYWRkcmVzcwIPTWFuYWdlciBub3Qgc2V0AQtpc1doaXRlbGlzdAEIX2FkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAJsIAgkBC2Nvb3JkaW5hdG9yAAkBDnRvQ29tcG9zaXRlS2V5AgUFa19hbW0FCF9hZGRyZXNzBwEQaXNXaGl0ZWxpc3RBc3NldAEIX2Fzc2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwkBDnRvQ29tcG9zaXRlS2V5AgURa193aGl0ZWxpc3RfYXNzZXQFCF9hc3NldElkBwEMdmF1bHRBZGRyZXNzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQtjb29yZGluYXRvcgAFD2tfdmF1bHRfYWRkcmVzcwINVmF1bHQgbm90IHNldAELc3dhcEFkZHJlc3MACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQtjb29yZGluYXRvcgAFEmtfZXhjaGFuZ2VfYWRkcmVzcwIPTm8gc3dhcCBhZGRyZXNzAhRJbnZhbGlkIHN3YXAgYWRkcmVzcwAMREVDSU1BTF9VTklUCQBoAgABCQBoAgkAaAIJAGgCCQBoAgkAaAIJAGgCCQBoAgAKAAoACgAKAAoACgAKAAoACERVUkFUSU9OCQBoAgkAaAIAPAA8ABgACk5PX0FERFJFU1MCAAAJTk9fU1RBS0VSAAABEHVzZG5Gcm9tRGVjaW1hbHMBB19hbW91bnQJAGkCBQdfYW1vdW50AGQBDnVzZG5Ub0RlY2ltYWxzAQdfYW1vdW50CQBoAgUHX2Ftb3VudABkAQtpbml0aWFsaXplZAAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUNa19pbml0aWFsaXplZAcBHmdldEJvcnJvd2VkQnlUcmFkZXJJbk1hcmtldEtleQMEX2FtbQhfYXNzZXRJZAdfdHJhZGVyCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBSBrX3RyYWRlcl9tYXJrZXRfYXNzZXRfY29sbGF0ZXJhbAIBXwUEX2FtbQIBXwUIX2Fzc2V0SWQCAV8FB190cmFkZXIBG2dldEJvcnJvd2VkQnlUcmFkZXJJbk1hcmtldAMEX2FtbQhfYXNzZXRJZAdfdHJhZGVyBANrZXkJAR5nZXRCb3Jyb3dlZEJ5VHJhZGVySW5NYXJrZXRLZXkDBQRfYW1tBQhfYXNzZXRJZAUHX3RyYWRlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAUBaQEKaW5pdGlhbGl6ZQIMX2Nvb3JkaW5hdG9yCl93aGl0ZWxpc3QDCQELaW5pdGlhbGl6ZWQACQACAQITQWxyZWFkeSBpbml0aWFsaXplZAQPaW5pdGlhbEFzc2V0SWRzCQC1CQIFCl93aGl0ZWxpc3QCASwKAQtkb1doaXRlbGlzdAIEX2FjYwhfYXNzZXRJZAkAzQgCBQRfYWNjCQEMQm9vbGVhbkVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgURa193aGl0ZWxpc3RfYXNzZXQFCF9hc3NldElkBgkAzggCCgACJGwFD2luaXRpYWxBc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQELZG9XaGl0ZWxpc3QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDIwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAkAzAgCCQELU3RyaW5nRW50cnkCBRRrX2Nvb3JkaW5hdG9yQWRkcmVzcwUMX2Nvb3JkaW5hdG9yCQDMCAIJAQxCb29sZWFuRW50cnkCBQ1rX2luaXRpYWxpemVkBgUDbmlsAWkBBmJvcnJvdwEHX3RyYWRlcgQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQHYXNzZXRJZAkA2AQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAIQSW52YWxpZCBhc3NldCBpZAQDYW1tCQClCAEIBQFpBmNhbGxlcgMDCQEBIQEJAQtpc1doaXRlbGlzdAEFA2FtbQYJAQEhAQkBEGlzV2hpdGVsaXN0QXNzZXQBBQdhc3NldElkCQACAQIZSW52YWxpZCBib3Jyb3cgcGFyYW1ldGVycwQRd2l0aGRyYXdJbnN1cmFuY2UJAPwHBAkBDHZhdWx0QWRkcmVzcwACCmFkZExvY2tlZFYJAMwIAgUGYW1vdW50BQNuaWwFA25pbAMJAAACBRF3aXRoZHJhd0luc3VyYW5jZQURd2l0aGRyYXdJbnN1cmFuY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJAR5nZXRCb3Jyb3dlZEJ5VHJhZGVySW5NYXJrZXRLZXkDBQNhbW0FB2Fzc2V0SWQFB190cmFkZXIJAGQCCQEbZ2V0Qm9ycm93ZWRCeVRyYWRlckluTWFya2V0AwUDYW1tBQdhc3NldElkBQdfdHJhZGVyBQZhbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVyZXBheQMHX3RyYWRlcgdfYW1vdW50CF9hc3NldElkBANhbW0JAKUIAQgFAWkGY2FsbGVyAwMJAQEhAQkBC2lzV2hpdGVsaXN0AQUDYW1tBgkBASEBCQEQaXNXaGl0ZWxpc3RBc3NldAEFCF9hc3NldElkCQACAQIYSW52YWxpZCByZXBheSBwYXJhbWV0ZXJzBBF3aXRoZHJhd0luc3VyYW5jZQkA/AcECQEMdmF1bHRBZGRyZXNzAAIPd2l0aGRyYXdMb2NrZWRWCQDMCAIFB19hbW91bnQFA25pbAUDbmlsAwkAAAIFEXdpdGhkcmF3SW5zdXJhbmNlBRF3aXRoZHJhd0luc3VyYW5jZQQHbmV3RGVidAkAZQIJARtnZXRCb3Jyb3dlZEJ5VHJhZGVySW5NYXJrZXQDBQNhbW0FCF9hc3NldElkBQdfdHJhZGVyBQdfYW1vdW50CQDOCAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQdfYW1vdW50CQDZBAEFCF9hc3NldElkBQNuaWwDCQBmAgUHbmV3RGVidAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEeZ2V0Qm9ycm93ZWRCeVRyYWRlckluTWFya2V0S2V5AwUDYW1tBQhfYXNzZXRJZAUHX3RyYWRlcgUHbmV3RGVidAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEJAR5nZXRCb3Jyb3dlZEJ5VHJhZGVySW5NYXJrZXRLZXkDBQNhbW0FCF9hc3NldElkBQdfdHJhZGVyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEYcmVhbGl6ZVBhcnRpYWxseUFuZENsb3NlAwdfdHJhZGVyB19hbW91bnQIX2Fzc2V0SWQEA2FtbQkApQgBCAUBaQZjYWxsZXIEBGRlYnQJARtnZXRCb3Jyb3dlZEJ5VHJhZGVySW5NYXJrZXQDBQNhbW0FCF9hc3NldElkBQdfdHJhZGVyBAZ0b1NlbGwJAGUCBQRkZWJ0BQdfYW1vdW50BAtzYW5pdHlDaGVjawMJAGcCAAAFBnRvU2VsbAkAAgECEVVzZSByZXBheSBpbnN0ZWFkBQNuaWwDCQAAAgULc2FuaXR5Q2hlY2sFC3Nhbml0eUNoZWNrAwMJAQEhAQkBC2lzV2hpdGVsaXN0AQUDYW1tBgkBASEBCQEQaXNXaGl0ZWxpc3RBc3NldAEFCF9hc3NldElkCQACAQIrSW52YWxpZCByZWFsaXplUGFydGlhbGx5QW5kQ2xvc2UgcGFyYW1ldGVycwQMYW1vdW50QmVmb3JlCQDwBwIFBHRoaXMJAQpxdW90ZUFzc2V0AAMJAAACBQxhbW91bnRCZWZvcmUFDGFtb3VudEJlZm9yZQQGZG9Td2FwCQD8BwQJAQtzd2FwQWRkcmVzcwACBHN3YXAJAMwIAgkA2AQBCQEKcXVvdGVBc3NldAAJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUIX2Fzc2V0SWQFBnRvU2VsbAUDbmlsAwkAAAIFBmRvU3dhcAUGZG9Td2FwBAthbW91bnRBZnRlcgkA8AcCBQR0aGlzCQEKcXVvdGVBc3NldAADCQAAAgULYW1vdW50QWZ0ZXIFC2Ftb3VudEFmdGVyBA1zb2xkRm9yQW1vdW50CQBlAgULYW1vdW50QWZ0ZXIFDGFtb3VudEJlZm9yZQMJAAACBQ1zb2xkRm9yQW1vdW50BQ1zb2xkRm9yQW1vdW50BBVkZXBvc2l0U29sZENvbGxhdGVyYWwJAPwHBAkBDHZhdWx0QWRkcmVzcwACCWFkZExvY2tlZAkAzAgCBgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEKcXVvdGVBc3NldAAFDXNvbGRGb3JBbW91bnQFA25pbAMJAAACBRVkZXBvc2l0U29sZENvbGxhdGVyYWwFFWRlcG9zaXRTb2xkQ29sbGF0ZXJhbAQPd2l0aGRyYXdMb2NrZWRWCQD8BwQJAQx2YXVsdEFkZHJlc3MAAg93aXRoZHJhd0xvY2tlZFYJAMwIAgUEZGVidAUDbmlsBQNuaWwDCQAAAgUPd2l0aGRyYXdMb2NrZWRWBQ93aXRoZHJhd0xvY2tlZFYECXRvR2V0QmFjawkAZQIFBGRlYnQFBnRvU2VsbAMJAGYCBQl0b0dldEJhY2sAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCBQRkZWJ0BQZ0b1NlbGwJANkEAQUIX2Fzc2V0SWQFA25pbAkAzggCBQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBHmdldEJvcnJvd2VkQnlUcmFkZXJJbk1hcmtldEtleQMFA2FtbQUIX2Fzc2V0SWQFB190cmFkZXIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARByZWFsaXplUGFydGlhbGx5AwdfdHJhZGVyCF9hc3NldElkB190b1NlbGwEA2FtbQkApQgBCAUBaQZjYWxsZXIEBGRlYnQJARtnZXRCb3Jyb3dlZEJ5VHJhZGVySW5NYXJrZXQDBQNhbW0FCF9hc3NldElkBQdfdHJhZGVyBAtzYW5pdHlDaGVjawMDCQBnAgAABQdfdG9TZWxsBgkAZgIFB190b1NlbGwFBGRlYnQJAAIBAiNJbnZhbGlkIHJlYWxpemVQYXJ0aWFsbHkgcGFyYW1ldGVycwUDbmlsAwkAAAIFC3Nhbml0eUNoZWNrBQtzYW5pdHlDaGVjawMDCQEBIQEJAQtpc1doaXRlbGlzdAEFA2FtbQYJAQEhAQkBEGlzV2hpdGVsaXN0QXNzZXQBBQhfYXNzZXRJZAkAAgECK0ludmFsaWQgcmVhbGl6ZVBhcnRpYWxseUFuZENsb3NlIHBhcmFtZXRlcnMEDGFtb3VudEJlZm9yZQkA8AcCBQR0aGlzCQEKcXVvdGVBc3NldAADCQAAAgUMYW1vdW50QmVmb3JlBQxhbW91bnRCZWZvcmUEBmRvU3dhcAkA/AcECQELc3dhcEFkZHJlc3MAAgRzd2FwCQDMCAIJANgEAQkBCnF1b3RlQXNzZXQACQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFCF9hc3NldElkBQdfdG9TZWxsBQNuaWwDCQAAAgUGZG9Td2FwBQZkb1N3YXAEC2Ftb3VudEFmdGVyCQDwBwIFBHRoaXMJAQpxdW90ZUFzc2V0AAMJAAACBQthbW91bnRBZnRlcgULYW1vdW50QWZ0ZXIEDXNvbGRGb3JBbW91bnQJAGUCBQthbW91bnRBZnRlcgUMYW1vdW50QmVmb3JlAwkAAAIFDXNvbGRGb3JBbW91bnQFDXNvbGRGb3JBbW91bnQECWFkZExvY2tlZAkA/AcECQEMdmF1bHRBZGRyZXNzAAIJYWRkTG9ja2VkCQDMCAIGBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQpxdW90ZUFzc2V0AAUNc29sZEZvckFtb3VudAUDbmlsAwkAAAIFCWFkZExvY2tlZAUJYWRkTG9ja2VkBA93aXRoZHJhd0xvY2tlZFYJAPwHBAkBDHZhdWx0QWRkcmVzcwACD3dpdGhkcmF3TG9ja2VkVgkAzAgCBQ1zb2xkRm9yQW1vdW50BQNuaWwFA25pbAMJAAACBQ93aXRoZHJhd0xvY2tlZFYFD3dpdGhkcmF3TG9ja2VkVgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBHmdldEJvcnJvd2VkQnlUcmFkZXJJbk1hcmtldEtleQMFA2FtbQUIX2Fzc2V0SWQFB190cmFkZXIJAGUCCQEbZ2V0Qm9ycm93ZWRCeVRyYWRlckluTWFya2V0AwUDYW1tBQhfYXNzZXRJZAUHX3RyYWRlcgUHX3RvU2VsbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkBDmFkbWluUHVibGljS2V5AP7eLfY=", "height": 2397174, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: cYtdDP9cP222n2bY9fyS51hHKHzSL1VSkoUzdSb4FyH Next: none Diff:
Old | New | Differences | |
---|---|---|---|
21 | 21 | ||
22 | 22 | let j = "k_amm" | |
23 | 23 | ||
24 | - | let k = "k_ | |
24 | + | let k = "k_exchange_address" | |
25 | 25 | ||
26 | - | let l = "k_ | |
26 | + | let l = "k_vault_address" | |
27 | 27 | ||
28 | 28 | func m (n,o) = ((n + "_") + o) | |
29 | 29 | ||
49 | 49 | func v (w) = valueOrElse(getBoolean(this, m(c, w)), false) | |
50 | 50 | ||
51 | 51 | ||
52 | - | func x () = valueOrErrorMessage(addressFromString(getStringValue(p(), | |
52 | + | func x () = valueOrErrorMessage(addressFromString(getStringValue(p(), l)), "Vault not set") | |
53 | 53 | ||
54 | 54 | ||
55 | - | func y () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(p(), | |
55 | + | func y () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(p(), k), "No swap address")), "Invalid swap address") | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | let z = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10)) | |
116 | 116 | else !(v(aa))) | |
117 | 117 | then throw("Invalid borrow parameters") | |
118 | 118 | else { | |
119 | - | let ac = invoke(x(), " | |
119 | + | let ac = invoke(x(), "addLockedV", [Z], nil) | |
120 | 120 | if ((ac == ac)) | |
121 | - | then [ | |
121 | + | then [IntegerEntry(H(ab, aa, J), (K(ab, aa, J) + Z))] | |
122 | 122 | else throw("Strict value is not equal to itself.") | |
123 | 123 | } | |
124 | 124 | } | |
126 | 126 | ||
127 | 127 | ||
128 | 128 | @Callable(M) | |
129 | - | func repay (J,w) = { | |
130 | - | let Z = M.payments[0].amount | |
129 | + | func repay (J,E,w) = { | |
131 | 130 | let ab = toString(M.caller) | |
132 | 131 | if (if (!(u(ab))) | |
133 | 132 | then true | |
134 | 133 | else !(v(w))) | |
135 | 134 | then throw("Invalid repay parameters") | |
136 | 135 | else { | |
137 | - | let ac = invoke(x(), " | |
136 | + | let ac = invoke(x(), "withdrawLockedV", [E], nil) | |
138 | 137 | if ((ac == ac)) | |
139 | 138 | then { | |
140 | - | let ad = (K(ab, w, J) - | |
141 | - | ([ScriptTransfer(M.caller, | |
139 | + | let ad = (K(ab, w, J) - E) | |
140 | + | ([ScriptTransfer(M.caller, E, fromBase58String(w))] ++ (if ((ad > 0)) | |
142 | 141 | then [IntegerEntry(H(ab, w, J), ad)] | |
143 | 142 | else [DeleteEntry(H(ab, w, J))])) | |
144 | 143 | } | |
149 | 148 | ||
150 | 149 | ||
151 | 150 | @Callable(M) | |
152 | - | func realizePartiallyAndClose (J,w) = { | |
153 | - | let Z = if ((size(M.payments) > 0)) | |
154 | - | then M.payments[0].amount | |
155 | - | else 0 | |
151 | + | func realizePartiallyAndClose (J,E,w) = { | |
156 | 152 | let ab = toString(M.caller) | |
157 | 153 | let ae = K(ab, w, J) | |
158 | - | let af = (ae - | |
154 | + | let af = (ae - E) | |
159 | 155 | let ag = if ((0 >= af)) | |
160 | 156 | then throw("Use repay instead") | |
161 | 157 | else nil | |
177 | 173 | let ak = (aj - ah) | |
178 | 174 | if ((ak == ak)) | |
179 | 175 | then { | |
180 | - | let | |
181 | - | if (( | |
176 | + | let al = invoke(x(), "addLocked", [true], [AttachedPayment(s(), ak)]) | |
177 | + | if ((al == al)) | |
182 | 178 | then { | |
183 | - | let al = (ae - af) | |
184 | - | if ((al > 0)) | |
185 | - | then [ScriptTransfer(M.caller, (ae - af), fromBase58String(w))] | |
186 | - | else (nil ++ [DeleteEntry(H(ab, w, J))]) | |
179 | + | let am = invoke(x(), "withdrawLockedV", [ae], nil) | |
180 | + | if ((am == am)) | |
181 | + | then { | |
182 | + | let an = (ae - af) | |
183 | + | if ((an > 0)) | |
184 | + | then [ScriptTransfer(M.caller, (ae - af), fromBase58String(w))] | |
185 | + | else (nil ++ [DeleteEntry(H(ab, w, J))]) | |
186 | + | } | |
187 | + | else throw("Strict value is not equal to itself.") | |
187 | 188 | } | |
188 | 189 | else throw("Strict value is not equal to itself.") | |
189 | 190 | } | |
201 | 202 | ||
202 | 203 | ||
203 | 204 | @Callable(M) | |
204 | - | func realizePartially (J,w, | |
205 | + | func realizePartially (J,w,ao) = { | |
205 | 206 | let ab = toString(M.caller) | |
206 | 207 | let ae = K(ab, w, J) | |
207 | - | let ag = if (if ((0 >= | |
208 | + | let ag = if (if ((0 >= ao)) | |
208 | 209 | then true | |
209 | - | else ( | |
210 | - | then throw("Invalid | |
210 | + | else (ao > ae)) | |
211 | + | then throw("Invalid realizePartially parameters") | |
211 | 212 | else nil | |
212 | 213 | if ((ag == ag)) | |
213 | 214 | then if (if (!(u(ab))) | |
218 | 219 | let ah = assetBalance(this, s()) | |
219 | 220 | if ((ah == ah)) | |
220 | 221 | then { | |
221 | - | let ai = invoke(y(), "swap", [toBase58String(s()), 0], [AttachedPayment(fromBase58String(w), | |
222 | + | let ai = invoke(y(), "swap", [toBase58String(s()), 0], [AttachedPayment(fromBase58String(w), ao)]) | |
222 | 223 | if ((ai == ai)) | |
223 | 224 | then { | |
224 | 225 | let aj = assetBalance(this, s()) | |
227 | 228 | let ak = (aj - ah) | |
228 | 229 | if ((ak == ak)) | |
229 | 230 | then { | |
230 | - | let ac = invoke(x(), "deposit", nil, [AttachedPayment(s(), ak)]) | |
231 | - | if ((ac == ac)) | |
232 | - | then [IntegerEntry(H(ab, w, J), (K(ab, w, J) - am))] | |
231 | + | let ap = invoke(x(), "addLocked", [true], [AttachedPayment(s(), ak)]) | |
232 | + | if ((ap == ap)) | |
233 | + | then { | |
234 | + | let am = invoke(x(), "withdrawLockedV", [ak], nil) | |
235 | + | if ((am == am)) | |
236 | + | then [IntegerEntry(H(ab, w, J), (K(ab, w, J) - ao))] | |
237 | + | else throw("Strict value is not equal to itself.") | |
238 | + | } | |
233 | 239 | else throw("Strict value is not equal to itself.") | |
234 | 240 | } | |
235 | 241 | else throw("Strict value is not equal to itself.") | |
244 | 250 | } | |
245 | 251 | ||
246 | 252 | ||
247 | - | @Verifier( | |
248 | - | func | |
253 | + | @Verifier(aq) | |
254 | + | func ar () = sigVerify(aq.bodyBytes, aq.proofs[0], q()) | |
249 | 255 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "k_asset_collateral" | |
5 | 5 | ||
6 | 6 | let b = "k_trader_market_asset_collateral" | |
7 | 7 | ||
8 | 8 | let c = "k_whitelist_asset" | |
9 | 9 | ||
10 | 10 | let d = "k_initialized" | |
11 | 11 | ||
12 | 12 | let e = "k_coordinatorAddress" | |
13 | 13 | ||
14 | 14 | let f = "k_gov_asset" | |
15 | 15 | ||
16 | 16 | let g = "k_quote_asset" | |
17 | 17 | ||
18 | 18 | let h = "k_admin_public_key" | |
19 | 19 | ||
20 | 20 | let i = "k_manager_address" | |
21 | 21 | ||
22 | 22 | let j = "k_amm" | |
23 | 23 | ||
24 | - | let k = "k_ | |
24 | + | let k = "k_exchange_address" | |
25 | 25 | ||
26 | - | let l = "k_ | |
26 | + | let l = "k_vault_address" | |
27 | 27 | ||
28 | 28 | func m (n,o) = ((n + "_") + o) | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | func p () = valueOrErrorMessage(addressFromString(getStringValue(this, e)), "Coordinator not set") | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func q () = fromBase58String(getStringValue(p(), h)) | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func r () = fromBase58String(getStringValue(p(), f)) | |
38 | 38 | ||
39 | 39 | ||
40 | 40 | func s () = fromBase58String(getStringValue(p(), g)) | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func t () = valueOrErrorMessage(addressFromString(getStringValue(p(), i)), "Manager not set") | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | func u (o) = valueOrElse(getBoolean(p(), m(j, o)), false) | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | func v (w) = valueOrElse(getBoolean(this, m(c, w)), false) | |
50 | 50 | ||
51 | 51 | ||
52 | - | func x () = valueOrErrorMessage(addressFromString(getStringValue(p(), | |
52 | + | func x () = valueOrErrorMessage(addressFromString(getStringValue(p(), l)), "Vault not set") | |
53 | 53 | ||
54 | 54 | ||
55 | - | func y () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(p(), | |
55 | + | func y () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(p(), k), "No swap address")), "Invalid swap address") | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | let z = (1 * (((((((10 * 10) * 10) * 10) * 10) * 10) * 10) * 10)) | |
59 | 59 | ||
60 | 60 | let A = ((60 * 60) * 24) | |
61 | 61 | ||
62 | 62 | let B = "" | |
63 | 63 | ||
64 | 64 | let C = 0 | |
65 | 65 | ||
66 | 66 | func D (E) = (E / 100) | |
67 | 67 | ||
68 | 68 | ||
69 | 69 | func F (E) = (E * 100) | |
70 | 70 | ||
71 | 71 | ||
72 | 72 | func G () = valueOrElse(getBoolean(this, d), false) | |
73 | 73 | ||
74 | 74 | ||
75 | 75 | func H (I,w,J) = ((((((b + "_") + I) + "_") + w) + "_") + J) | |
76 | 76 | ||
77 | 77 | ||
78 | 78 | func K (I,w,J) = { | |
79 | 79 | let L = H(I, w, J) | |
80 | 80 | valueOrElse(getInteger(this, L), 0) | |
81 | 81 | } | |
82 | 82 | ||
83 | 83 | ||
84 | 84 | @Callable(M) | |
85 | 85 | func initialize (N,O) = if (G()) | |
86 | 86 | then throw("Already initialized") | |
87 | 87 | else { | |
88 | 88 | let P = split(O, ",") | |
89 | 89 | func Q (R,w) = (R :+ BooleanEntry(m(c, w), true)) | |
90 | 90 | ||
91 | 91 | ({ | |
92 | 92 | let S = P | |
93 | 93 | let T = size(S) | |
94 | 94 | let U = nil | |
95 | 95 | func V (W,X) = if ((X >= T)) | |
96 | 96 | then W | |
97 | 97 | else Q(W, S[X]) | |
98 | 98 | ||
99 | 99 | func Y (W,X) = if ((X >= T)) | |
100 | 100 | then W | |
101 | 101 | else throw("List size exceeds 20") | |
102 | 102 | ||
103 | 103 | Y(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(V(U, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20) | |
104 | 104 | } ++ [StringEntry(e, N), BooleanEntry(d, true)]) | |
105 | 105 | } | |
106 | 106 | ||
107 | 107 | ||
108 | 108 | ||
109 | 109 | @Callable(M) | |
110 | 110 | func borrow (J) = { | |
111 | 111 | let Z = M.payments[0].amount | |
112 | 112 | let aa = toBase58String(valueOrErrorMessage(M.payments[0].assetId, "Invalid asset id")) | |
113 | 113 | let ab = toString(M.caller) | |
114 | 114 | if (if (!(u(ab))) | |
115 | 115 | then true | |
116 | 116 | else !(v(aa))) | |
117 | 117 | then throw("Invalid borrow parameters") | |
118 | 118 | else { | |
119 | - | let ac = invoke(x(), " | |
119 | + | let ac = invoke(x(), "addLockedV", [Z], nil) | |
120 | 120 | if ((ac == ac)) | |
121 | - | then [ | |
121 | + | then [IntegerEntry(H(ab, aa, J), (K(ab, aa, J) + Z))] | |
122 | 122 | else throw("Strict value is not equal to itself.") | |
123 | 123 | } | |
124 | 124 | } | |
125 | 125 | ||
126 | 126 | ||
127 | 127 | ||
128 | 128 | @Callable(M) | |
129 | - | func repay (J,w) = { | |
130 | - | let Z = M.payments[0].amount | |
129 | + | func repay (J,E,w) = { | |
131 | 130 | let ab = toString(M.caller) | |
132 | 131 | if (if (!(u(ab))) | |
133 | 132 | then true | |
134 | 133 | else !(v(w))) | |
135 | 134 | then throw("Invalid repay parameters") | |
136 | 135 | else { | |
137 | - | let ac = invoke(x(), " | |
136 | + | let ac = invoke(x(), "withdrawLockedV", [E], nil) | |
138 | 137 | if ((ac == ac)) | |
139 | 138 | then { | |
140 | - | let ad = (K(ab, w, J) - | |
141 | - | ([ScriptTransfer(M.caller, | |
139 | + | let ad = (K(ab, w, J) - E) | |
140 | + | ([ScriptTransfer(M.caller, E, fromBase58String(w))] ++ (if ((ad > 0)) | |
142 | 141 | then [IntegerEntry(H(ab, w, J), ad)] | |
143 | 142 | else [DeleteEntry(H(ab, w, J))])) | |
144 | 143 | } | |
145 | 144 | else throw("Strict value is not equal to itself.") | |
146 | 145 | } | |
147 | 146 | } | |
148 | 147 | ||
149 | 148 | ||
150 | 149 | ||
151 | 150 | @Callable(M) | |
152 | - | func realizePartiallyAndClose (J,w) = { | |
153 | - | let Z = if ((size(M.payments) > 0)) | |
154 | - | then M.payments[0].amount | |
155 | - | else 0 | |
151 | + | func realizePartiallyAndClose (J,E,w) = { | |
156 | 152 | let ab = toString(M.caller) | |
157 | 153 | let ae = K(ab, w, J) | |
158 | - | let af = (ae - | |
154 | + | let af = (ae - E) | |
159 | 155 | let ag = if ((0 >= af)) | |
160 | 156 | then throw("Use repay instead") | |
161 | 157 | else nil | |
162 | 158 | if ((ag == ag)) | |
163 | 159 | then if (if (!(u(ab))) | |
164 | 160 | then true | |
165 | 161 | else !(v(w))) | |
166 | 162 | then throw("Invalid realizePartiallyAndClose parameters") | |
167 | 163 | else { | |
168 | 164 | let ah = assetBalance(this, s()) | |
169 | 165 | if ((ah == ah)) | |
170 | 166 | then { | |
171 | 167 | let ai = invoke(y(), "swap", [toBase58String(s()), 0], [AttachedPayment(fromBase58String(w), af)]) | |
172 | 168 | if ((ai == ai)) | |
173 | 169 | then { | |
174 | 170 | let aj = assetBalance(this, s()) | |
175 | 171 | if ((aj == aj)) | |
176 | 172 | then { | |
177 | 173 | let ak = (aj - ah) | |
178 | 174 | if ((ak == ak)) | |
179 | 175 | then { | |
180 | - | let | |
181 | - | if (( | |
176 | + | let al = invoke(x(), "addLocked", [true], [AttachedPayment(s(), ak)]) | |
177 | + | if ((al == al)) | |
182 | 178 | then { | |
183 | - | let al = (ae - af) | |
184 | - | if ((al > 0)) | |
185 | - | then [ScriptTransfer(M.caller, (ae - af), fromBase58String(w))] | |
186 | - | else (nil ++ [DeleteEntry(H(ab, w, J))]) | |
179 | + | let am = invoke(x(), "withdrawLockedV", [ae], nil) | |
180 | + | if ((am == am)) | |
181 | + | then { | |
182 | + | let an = (ae - af) | |
183 | + | if ((an > 0)) | |
184 | + | then [ScriptTransfer(M.caller, (ae - af), fromBase58String(w))] | |
185 | + | else (nil ++ [DeleteEntry(H(ab, w, J))]) | |
186 | + | } | |
187 | + | else throw("Strict value is not equal to itself.") | |
187 | 188 | } | |
188 | 189 | else throw("Strict value is not equal to itself.") | |
189 | 190 | } | |
190 | 191 | else throw("Strict value is not equal to itself.") | |
191 | 192 | } | |
192 | 193 | else throw("Strict value is not equal to itself.") | |
193 | 194 | } | |
194 | 195 | else throw("Strict value is not equal to itself.") | |
195 | 196 | } | |
196 | 197 | else throw("Strict value is not equal to itself.") | |
197 | 198 | } | |
198 | 199 | else throw("Strict value is not equal to itself.") | |
199 | 200 | } | |
200 | 201 | ||
201 | 202 | ||
202 | 203 | ||
203 | 204 | @Callable(M) | |
204 | - | func realizePartially (J,w, | |
205 | + | func realizePartially (J,w,ao) = { | |
205 | 206 | let ab = toString(M.caller) | |
206 | 207 | let ae = K(ab, w, J) | |
207 | - | let ag = if (if ((0 >= | |
208 | + | let ag = if (if ((0 >= ao)) | |
208 | 209 | then true | |
209 | - | else ( | |
210 | - | then throw("Invalid | |
210 | + | else (ao > ae)) | |
211 | + | then throw("Invalid realizePartially parameters") | |
211 | 212 | else nil | |
212 | 213 | if ((ag == ag)) | |
213 | 214 | then if (if (!(u(ab))) | |
214 | 215 | then true | |
215 | 216 | else !(v(w))) | |
216 | 217 | then throw("Invalid realizePartiallyAndClose parameters") | |
217 | 218 | else { | |
218 | 219 | let ah = assetBalance(this, s()) | |
219 | 220 | if ((ah == ah)) | |
220 | 221 | then { | |
221 | - | let ai = invoke(y(), "swap", [toBase58String(s()), 0], [AttachedPayment(fromBase58String(w), | |
222 | + | let ai = invoke(y(), "swap", [toBase58String(s()), 0], [AttachedPayment(fromBase58String(w), ao)]) | |
222 | 223 | if ((ai == ai)) | |
223 | 224 | then { | |
224 | 225 | let aj = assetBalance(this, s()) | |
225 | 226 | if ((aj == aj)) | |
226 | 227 | then { | |
227 | 228 | let ak = (aj - ah) | |
228 | 229 | if ((ak == ak)) | |
229 | 230 | then { | |
230 | - | let ac = invoke(x(), "deposit", nil, [AttachedPayment(s(), ak)]) | |
231 | - | if ((ac == ac)) | |
232 | - | then [IntegerEntry(H(ab, w, J), (K(ab, w, J) - am))] | |
231 | + | let ap = invoke(x(), "addLocked", [true], [AttachedPayment(s(), ak)]) | |
232 | + | if ((ap == ap)) | |
233 | + | then { | |
234 | + | let am = invoke(x(), "withdrawLockedV", [ak], nil) | |
235 | + | if ((am == am)) | |
236 | + | then [IntegerEntry(H(ab, w, J), (K(ab, w, J) - ao))] | |
237 | + | else throw("Strict value is not equal to itself.") | |
238 | + | } | |
233 | 239 | else throw("Strict value is not equal to itself.") | |
234 | 240 | } | |
235 | 241 | else throw("Strict value is not equal to itself.") | |
236 | 242 | } | |
237 | 243 | else throw("Strict value is not equal to itself.") | |
238 | 244 | } | |
239 | 245 | else throw("Strict value is not equal to itself.") | |
240 | 246 | } | |
241 | 247 | else throw("Strict value is not equal to itself.") | |
242 | 248 | } | |
243 | 249 | else throw("Strict value is not equal to itself.") | |
244 | 250 | } | |
245 | 251 | ||
246 | 252 | ||
247 | - | @Verifier( | |
248 | - | func | |
253 | + | @Verifier(aq) | |
254 | + | func ar () = sigVerify(aq.bodyBytes, aq.proofs[0], q()) | |
249 | 255 |
github/deemru/w8io/169f3d6 49.15 ms ◑![]()