tx · 3SQar8FgJEcMTc1ewqtkPETQq2EDPyJNd3sArJUuVaqW

3PBbLJcBjLWUZZrFFUk5s53TdTUneHXDc7e:  -0.01500000 Waves

2024.04.11 10:01 [4123752] smart account 3PBbLJcBjLWUZZrFFUk5s53TdTUneHXDc7e > SELF 0.00000000 Waves

{ "type": 13, "id": "3SQar8FgJEcMTc1ewqtkPETQq2EDPyJNd3sArJUuVaqW", "fee": 1500000, "feeAssetId": null, "timestamp": 1712818929702, "version": 2, "chainId": 87, "sender": "3PBbLJcBjLWUZZrFFUk5s53TdTUneHXDc7e", "senderPublicKey": "qv5sHFvV7GyNRm1A2r8BR9oX2nhkc1yNa1QfWLkaja8", "proofs": [ "3hYDhDiqQMgBakLp8TpRwNHn8QVdRRBx5eh5Nc5KVRSXL6fPBxhUDoFu5FDj9MYrYZucaQtRkxjuqsr49pW7fyTN" ], "script": "base64:BgIZCAISABIAEgMKAQESAwoBARIDCgEBEgASAFkBDXRyeUdldEludGVnZXICB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEMdHJ5R2V0U3RyaW5nAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgAAAmQ4AIDC1y8AC3VubG9ja0Jsb2NrCQBoAgAeAKALAApoZWlyUHViS2V5ASAaFa4tDyIv1uhzDfwRR/IHtg7qNN7P3pYq2N1IFBp+EAAMdW5sb2NrQmxvY2syCQBoAgBaAKALABJQdXp6bGVNYXN0ZXJQdWJLZXkBIDs1TW4/n774VJyWRAeAVqsv4hNgRcR78j8XQ/RCBSZdAAxrZXlBY3RpdmF0ZWQCFUFjdGl2YXRlZCBibG9ja2hlaWdodAASa2V5U3VycGx1c1JlY2VpdmVkAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzABNrZXlXYXZlbGV0c1JlY2VpdmVkAiB0b3RhbCBXQVZFUyByZWNlaXZlZCBpbiB3YXZlbGV0cwAVa2V5V2F2ZWxldHNSZWNlaXZlZEJUAil0b3RhbCB3YXZlbGV0cyByZWNlaXZlZCBmb3IgYmFzZSB0cmVhc3VyeQASa2V5V2F2ZWxldHNQYWlkT3V0AiB0b3RhbCBXQVZFUyBwYWlkIG91dCBpbiB3YXZlbGV0cwAGa2V5Uk9JAhBST0kgYmFzaXMgcG9pbnRzABZrZXlXaGlybHBvb2xJc3N1ZVByaWNlAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMAEGJ1cm54dG5QUFRwb29sSWQBGgFX9UZoJ4ANaN9OJnV6tKHTKDHgCb/1eXk3AAxwcm9qZWN0T3duZXIBGgFXjh3mUco4I87DkcPEVovVg9NviFb/Nt0LAA93aGlybHBvb2xQb29sSWQBGgFXCUhUqJi1/8xKRtsS/UvJkxlGN0OYh9fNAAliYmJQb29sSWQBGgFXUu6TVhRNfgeM0oUP5n5cVzd+HJ/vPIIdAAx3YXZlczVwb29sSWQBGgFXd38LXS4ewPki7gRNAgq7A+t2lzsggesmAAl3aGlybHBvb2wBIFnjjdzCtSO6ShTcxNCvFAnmZOYEviUGCyZO5VBtl1nHAA93aGlybHBvb2xTdHJpbmcJANgEAQEgWeON3MK1I7pKFNzE0K8UCeZk5gS+JQYLJk7lUG2XWccABXdhdmVzAQQTq9kzAANldGgBICUe+v/YIclwnvvAtN4+t6uGngU7Zu/cB/xR4/WoMyhyAAZzd2F2ZXMBIAgfyPcWMO1Rwikb7Kwaj/yQcRxZOC3rIYGwN0HwRdFKAAZwdXp6bGUBIPEa/iX+9pk49GkqxN/hEtZHssbKDro3Ca93bR+OouVjAAJ3eAEgkwEcq6nHbiVXzmaecba9qmv4POhYCyru2aBOuzzcFLEABXBsdXRvASCQtQKc9Y/9yUXaU5UMP7q0r1MmXUhuMzXCoUxnHy0Y9AALcG9vbGJvb3N0U0MBGgFXSbYeEN+gDU/Y1dAPo+OEt9leOimzEamsAAxTV0FWRVNfc3Rha2UJAQdBZGRyZXNzAQEaAVd9yXuTFHn/51HxsUrHb/lqHYCVR89YI34ADFdYX0VUSF9XQVZFUwkBB0FkZHJlc3MBARoBVwuA1RIPTUpeJTGq5UPPtFnYI6ND2w/rwQAPV1hfUFVaWkxFX1dBVkVTCQEHQWRkcmVzcwEBGgFX+HHnown6Zd6igb6vdeQfPazLlMp1rQSvAAtXWF9XWF9XQVZFUwkBB0FkZHJlc3MBARoBV5pEBZiZvLSokOa3VW+3GCjLiIbTBX0fVgAOV1hfUExVVE9fV0FWRVMJAQdBZGRyZXNzAQEaAVcy1557cq8BO4QXMP+iKpENKxyo1BarbYMAC3dhdmVzSW5Qb29sCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUQYnVybnh0blBQVHBvb2xJZAkArAICCQCsAgICB2dsb2JhbF8JANgEAQUFd2F2ZXMCCF9iYWxhbmNlAAxwcm9qZWN0U3Rha2UJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBRBidXJueHRuUFBUcG9vbElkCQCsAgIJAKUIAQUEdGhpcwIMX2luZGV4U3Rha2VkAAp0b3RhbFN0YWtlCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUQYnVybnh0blBQVHBvb2xJZAIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQBCF9sb2FkSW50AgRrZXlfCGRlZmF1bHRfBAckbWF0Y2gwCQCaCAIFDFNXQVZFU19zdGFrZQUEa2V5XwMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEFCGRlZmF1bHRfAQtfbG9hZEJpZ0ludAIEa2V5XwhkZWZhdWx0XwQHJG1hdGNoMAkAnAgCBQxTV0FWRVNfc3Rha2UFBGtleV8DCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAkAngMBBQFhBQhkZWZhdWx0XwAIbGFzdFJhdGUJAQtfbG9hZEJpZ0ludAICCUxBU1RfUkFURQkAtgIBAICglKWNHQALY3VycmVudFJhdGUJAQtfbG9hZEJpZ0ludAICDENVUlJFTlRfUkFURQkAtgIBAAAACmxhc3RIZWlnaHQJAQhfbG9hZEludAICC0xBU1RfSEVJR0hUAAAADHRhcmdldEhlaWdodAkAlwMBCQDMCAIJAQhfbG9hZEludAICDVRBUkdFVF9IRUlHSFQAAAkAzAgCBQZoZWlnaHQFA25pbAAPbGFzdFJhdGVVcGRhdGVkCQC3AgIFCGxhc3RSYXRlCQC5AgIFC2N1cnJlbnRSYXRlCQC2AgEJAGUCBQx0YXJnZXRIZWlnaHQFCmxhc3RIZWlnaHQAC2Jhc2VBbW91bnQyCQCgAwEJAL0CBAkAtgIBCQDwBwIFDFdYX0VUSF9XQVZFUwUGc3dhdmVzBQ9sYXN0UmF0ZVVwZGF0ZWQJALYCAQCAoJSljR0FBUZMT09SAAtiYXNlQW1vdW50MwkAoAMBCQC9AgQJALYCAQkA8AcCBQ9XWF9QVVpaTEVfV0FWRVMFBnN3YXZlcwUPbGFzdFJhdGVVcGRhdGVkCQC2AgEAgKCUpY0dBQVGTE9PUgALYmFzZUFtb3VudDQJAKADAQkAvQIECQC2AgEJAPAHAgULV1hfV1hfV0FWRVMFBnN3YXZlcwUPbGFzdFJhdGVVcGRhdGVkCQC2AgEAgKCUpY0dBQVGTE9PUgALYmFzZUFtb3VudDUJAKADAQkAvQIECQC2AgEJAPAHAgUOV1hfUExVVE9fV0FWRVMFBnN3YXZlcwUPbGFzdFJhdGVVcGRhdGVkCQC2AgEAgKCUpY0dBQVGTE9PUgAKd2F2ZXMySW5XWAkAZAIICQDvBwEFDFdYX0VUSF9XQVZFUwdyZWd1bGFyBQtiYXNlQW1vdW50MgAHZXRoSW5XWAkA8AcCBQxXWF9FVEhfV0FWRVMFA2V0aAAIZXRoV2F2ZXMJAGsDBQJkOAUKd2F2ZXMySW5XWAUHZXRoSW5XWAAKcHV6emxlSW5XWAkA8AcCBQ9XWF9QVVpaTEVfV0FWRVMFBnB1enpsZQAKd2F2ZXMzSW5XWAkAZAIICQDvBwEFD1dYX1BVWlpMRV9XQVZFUwdyZWd1bGFyBQtiYXNlQW1vdW50MwALcHV6emxlV2F2ZXMJAGsDBQJkOAUKd2F2ZXMzSW5XWAUKcHV6emxlSW5XWAAGd3hJbldYCQDwBwIFC1dYX1dYX1dBVkVTBQJ3eAAKd2F2ZXM0SW5XWAkAZAIICQDvBwEFC1dYX1dYX1dBVkVTB3JlZ3VsYXIFC2Jhc2VBbW91bnQ0AAd3eFdhdmVzCQBrAwUCZDgFCndhdmVzNEluV1gFBnd4SW5XWAAJcGx1dG9JbldYCQDwBwIFDldYX1BMVVRPX1dBVkVTBQVwbHV0bwAKd2F2ZXM1SW5XWAkAZAIICQDvBwEFDldYX1BMVVRPX1dBVkVTB3JlZ3VsYXIFC2Jhc2VBbW91bnQ1AApwbHV0b1dhdmVzCQBrAwUCZDgFCndhdmVzNUluV1gFCXBsdXRvSW5XWAAQd2F2ZXNJbldoaXJscG9vbAkBDXRyeUdldEludGVnZXICCQEHQWRkcmVzcwEFD3doaXJscG9vbFBvb2xJZAkArAICCQCsAgICB2dsb2JhbF8JANgEAQUFd2F2ZXMCCF9iYWxhbmNlABB3aGlybEluV2hpcmxwb29sCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUPd2hpcmxwb29sUG9vbElkCQCsAgIJAKwCAgIHZ2xvYmFsXwUPd2hpcmxwb29sU3RyaW5nAghfYmFsYW5jZQARcHJvamVjdFN0YWtlV2hpcmwJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQ93aGlybHBvb2xQb29sSWQJAKwCAgkApQgBBQR0aGlzAgxfaW5kZXhTdGFrZWQAD3RvdGFsU3Rha2VXaGlybAkBDXRyeUdldEludGVnZXICCQEHQWRkcmVzcwEFD3doaXJscG9vbFBvb2xJZAIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQACndoaXJsSW5CQkIJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQliYmJQb29sSWQJAKwCAgkArAICAgdnbG9iYWxfBQ93aGlybHBvb2xTdHJpbmcCCF9iYWxhbmNlAAp0b3RhbFdoaXJsCQBkAgUQd2hpcmxJbldoaXJscG9vbAUKd2hpcmxJbkJCQgANd2F2ZXNJblc1cG9vbAkBDXRyeUdldEludGVnZXICCQEHQWRkcmVzcwEFDHdhdmVzNXBvb2xJZAkArAICCQCsAgICB2dsb2JhbF8JANgEAQUFd2F2ZXMCCF9iYWxhbmNlABJwcm9qZWN0U3Rha2VXNXBvb2wJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQx3YXZlczVwb29sSWQJAKwCAgkApQgBBQR0aGlzAgxfaW5kZXhTdGFrZWQAEHRvdGFsU3Rha2VXNXBvb2wJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQx3YXZlczVwb29sSWQCF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50AA1rZXlWYXVsdEFzc2V0CQEMdHJ5R2V0U3RyaW5nAgkBB0FkZHJlc3MBARoBV9rjrnn7yvnP4wM0IRFRmnbdeGVcRltyGAkArAICCQCsAgICDyVzJXMlc19fdmF1bHRfXwkApQgBBQR0aGlzAgdfX1dBVkVTAAtXQVZFU2luRUFTVAkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgUNa2V5VmF1bHRBc3NldAICX18AAgAOa2V5VmF1bHRBc3NldDIJAQx0cnlHZXRTdHJpbmcCCQEHQWRkcmVzcwEBGgFX2uOuefvK+c/jAzQhEVGadt14ZVxGW3IYCQCsAgIJAKwCAgIPJXMlcyVzX192YXVsdF9fCQClCAEFBHRoaXMCLl9fM1Z1VjVXVG1EejQ3RG1kbjNRcGNZanpiU2RpcGpRRTRKTWROZTF4WnBYMTMACUVUSGluRUFTVAkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgUOa2V5VmF1bHRBc3NldDICAl9fAAIAEUVUSGluRUFTVHdhdmVsZXRzCQBrAwUJRVRIaW5FQVNUBQhldGhXYXZlcwUCZDgADXB1enpsZVN0YWtpbmcJAQdBZGRyZXNzAQEaAVeUaIz57qK5qp/W9Y68qY9nGpwG9BYpibsADHB1enpsZVN0YWtlZAkBDXRyeUdldEludGVnZXICBQ1wdXp6bGVTdGFraW5nCQCsAgIJAKUIAQUEdGhpcwIHX3N0YWtlZAAQUFVaWkxFaW5XYXZlbGV0cwkAawMFDHB1enpsZVN0YWtlZAULcHV6emxlV2F2ZXMFAmQ4AAlXWHN0YWtpbmcJAQdBZGRyZXNzAQEaAVez5uZVGBFpsOQzD4hRQ6ScrtbVSwNLEVgABWtleVdYAiUlcyVkJXNfX3BhcmFtQnlVc2VyTnVtX18xMzQ0NV9fYW1vdW50AAhXWGFtb3VudAkBDXRyeUdldEludGVnZXICBQlXWHN0YWtpbmcFBWtleVdYAAxXWGluV2F2ZWxldHMJAGsDBQhXWGFtb3VudAUHd3hXYXZlcwUCZDgADHBsdXRvU3Rha2luZwkBB0FkZHJlc3MBARoBVz57Z8SMb25gqNLNj+55nzFOR6iuQxT9sAAJa2V5U3BsdXRvCQCsAgIJAKUIAQUEdGhpcwIHX3NQbHV0bwALcGx1dG9TdGFrZWQJAGsDCQENdHJ5R2V0SW50ZWdlcgIFDHBsdXRvU3Rha2luZwUJa2V5U3BsdXRvCQENdHJ5R2V0SW50ZWdlcgIFDHBsdXRvU3Rha2luZwIVZ2xvYmFsX2xhc3RDaGVja1NSYXRlBQJkOAAPUExVVE9pbldhdmVsZXRzCQBrAwULcGx1dG9TdGFrZWQFCnBsdXRvV2F2ZXMFAmQ4AAp0dmxJbldhdmVzCQBkAgkAZAIJAGQCCQBkAgkAZAIJAGsDCQBoAgULd2F2ZXNJblBvb2wACgUMcHJvamVjdFN0YWtlBQp0b3RhbFN0YWtlCQBrAwkAaAIFEHdhdmVzSW5XaGlybHBvb2wACgURcHJvamVjdFN0YWtlV2hpcmwFD3RvdGFsU3Rha2VXaGlybAURRVRIaW5FQVNUd2F2ZWxldHMFEFBVWlpMRWluV2F2ZWxldHMJAGsDCQBoAgUNd2F2ZXNJblc1cG9vbAAFBRJwcm9qZWN0U3Rha2VXNXBvb2wFEHRvdGFsU3Rha2VXNXBvb2wFDFdYaW5XYXZlbGV0cwAHdG90YWxCVAULV0FWRVNpbkVBU1QADXRvdGFsVHJlYXN1cnkJAGQCBQd0b3RhbEJUBQp0dmxJbldhdmVzAA93aGlybHBvb2xTdXBwbHkEByRtYXRjaDAJAOwHAQUJd2hpcmxwb29sAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAgFBWFzc2V0CHF1YW50aXR5CQACAQIQQ2FuJ3QgZmluZCBhc3NldAAFcHJpY2UDCQBnAgkAZAIJAGsDCQBkAgUKdHZsSW5XYXZlcwkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQFAmQ4BQ93aGlybHBvb2xTdXBwbHkFAmQ4CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFFmtleVdoaXJscG9vbElzc3VlUHJpY2UJAGQCCQBrAwkAZAIFCnR2bEluV2F2ZXMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5U3VycGx1c1JlY2VpdmVkBQJkOAUPd2hpcmxwb29sU3VwcGx5BQJkOAkBDXRyeUdldEludGVnZXICBQR0aGlzBRZrZXlXaGlybHBvb2xJc3N1ZVByaWNlBwFpARVidXlXSElSTFBPT0x3aXRoV0FWRVMAAwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkBAiE9AggFAWkGY2FsbGVyCQEHQWRkcmVzcwEBGgFXjh3mUco4I87DkcPEVovVg9NviFb/Nt0LBwkAAgECIHNtYXJ0IGNvbnRyYWN0IHVuZGVyIG1haW50ZW5hbmNlBBZXaGlybHBvb2xCYWxhbmNlQmVmb3JlCQDwBwIFBHRoaXMFCXdoaXJscG9vbAMJAAACBRZXaGlybHBvb2xCYWxhbmNlQmVmb3JlBRZXaGlybHBvb2xCYWxhbmNlQmVmb3JlBANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQHc3VycGx1cwkAawMJAGUCBQVwcmljZQUCZDgIBQNwbXQGYW1vdW50BQJkOAQLSXNzdWVBbW91bnQDCQBnAggFA3BtdAZhbW91bnQJAGsDCAUDcG10BmFtb3VudAUCZDgFBXByaWNlCQBrAwgFA3BtdAZhbW91bnQFAmQ4BQVwcmljZQkAAgECMHBsZWFzZSBjb250YWN0IHByb2plY3Qgb3duZXI6IGlzc3VlIGFtb3VudCBlcnJvcgQNY2xlYW5BbW91bnRJbgkAZQIIBQNwbXQGYW1vdW50CQBrAwgFA3BtdAZhbW91bnQAyAEAkE4ECUFtb3VudE91dAkAbgQFEHdoaXJsSW5XaGlybHBvb2wJAGUCCQBoAgUCZDgFAmQ4CQCgAwEJAHYGCQC9AgQJALYCAQUQd2F2ZXNJbldoaXJscG9vbAkAtgIBCQBoAgUCZDgFAmQ4CQC2AgEJAGQCBRB3YXZlc0luV2hpcmxwb29sBQ1jbGVhbkFtb3VudEluBQZIQUxGVVAAEAkAtgIBCQBrAwCgjQYAkE4AoPc2AAQAEAUHQ0VJTElORwkAaAIFAmQ4BQJkOAUERE9XTgMJAGYCCQBpAgUCZDgAFAgFA3BtdAZhbW91bnQJAAIBAhptaW5pbXVtIHBheW1lbnQgMC4wNSBXQVZFUwMJAQIhPQIIBQNwbXQHYXNzZXRJZAUEdW5pdAkAAgECF2F0dGFjaCBXQVZFUyB0b2tlbiBvbmx5BANidXkDCQBmAgUJQW1vdW50T3V0BQtJc3N1ZUFtb3VudAkA/AcECQEHQWRkcmVzcwEFD3doaXJscG9vbFBvb2xJZAIEc3dhcAkAzAgCBQ93aGlybHBvb2xTdHJpbmcJAMwIAgkAZAIFC0lzc3VlQW1vdW50AAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAgFA3BtdAZhbW91bnQFA25pbAUEdW5pdAMJAAACBQNidXkFA2J1eQQVV2hpcmxwb29sQmFsYW5jZUFmdGVyCQDwBwIFBHRoaXMFCXdoaXJscG9vbAQRV2hpcmxwb29sRnJvbVN3YXAJAGUCBRVXaGlybHBvb2xCYWxhbmNlQWZ0ZXIFFldoaXJscG9vbEJhbGFuY2VCZWZvcmUJAMwIAgkBB1JlaXNzdWUDBQl3aGlybHBvb2wDCQBnAgULSXNzdWVBbW91bnQFCUFtb3VudE91dAULSXNzdWVBbW91bnQAAAYJAMwIAgMJAGYCBQlBbW91bnRPdXQFC0lzc3VlQW1vdW50CQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFEVdoaXJscG9vbEZyb21Td2FwBQl3aGlybHBvb2wJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULSXNzdWVBbW91bnQFCXdoaXJscG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUWa2V5V2hpcmxwb29sSXNzdWVQcmljZQUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIDCQBmAgUJQW1vdW50T3V0BQtJc3N1ZUFtb3VudAIVcHJpY2UgV0hJUkxQT09ML1dBVkVTAiBXSElSTFBPT0wvV0FWRVMgbWlkIG1hcmtldCBwcmljZQMJAGYCBQlBbW91bnRPdXQFC0lzc3VlQW1vdW50CQBrAwUCZDgIBQNwbXQGYW1vdW50BRFXaGlybHBvb2xGcm9tU3dhcAkAawMFAmQ4CQBoAgUQd2F2ZXNJbldoaXJscG9vbAAJBRB3aGlybEluV2hpcmxwb29sCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRNrZXlXYXZlbGV0c1JlY2VpdmVkAwkAZwIFC0lzc3VlQW1vdW50BQlBbW91bnRPdXQJAGQCCAUDcG10BmFtb3VudAkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlXYXZlbGV0c1JlY2VpdmVkCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFE2tleVdhdmVsZXRzUmVjZWl2ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFFWtleVdhdmVsZXRzUmVjZWl2ZWRCVAMJAGcCBQtJc3N1ZUFtb3VudAUJQW1vdW50T3V0CQBkAgkAZQIIBQNwbXQGYW1vdW50BQdzdXJwbHVzCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFFWtleVdhdmVsZXRzUmVjZWl2ZWRCVAkBDXRyeUdldEludGVnZXICBQR0aGlzBRVrZXlXYXZlbGV0c1JlY2VpdmVkQlQJAMwIAgkBDEludGVnZXJFbnRyeQIFEmtleVN1cnBsdXNSZWNlaXZlZAMJAGYCBQlBbW91bnRPdXQFC0lzc3VlQW1vdW50CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQJAGQCBQdzdXJwbHVzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARVwcmljZUFuZFRyZWFzdXJ5U3RhdHMACQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZCVCBXQVZFUyBpbiBFQVNUIHZhdWx0BQtXQVZFU2luRUFTVAkAzAgCCQEMSW50ZWdlckVudHJ5AgIiU1QgQlVSTi1YVE4geCBQZXBlVGVhbSBpbiB3YXZlbGV0cwkAawMJAGgCBQt3YXZlc0luUG9vbAAKBQxwcm9qZWN0U3Rha2UFCnRvdGFsU3Rha2UJAMwIAgkBDEludGVnZXJFbnRyeQICFHRlc3QgcG9vbCB3ZWlnaHQgcHB0CQBrAwkAaQIJAGgCBQt3YXZlc0luUG9vbACQTgkBDXRyeUdldEludGVnZXICCQEHQWRkcmVzcwEFEGJ1cm54dG5QUFRwb29sSWQJAKwCAgkArAICAgdzdGF0aWNfCQDYBAEFBXdhdmVzAgdfd2VpZ2h0BQxwcm9qZWN0U3Rha2UFCnRvdGFsU3Rha2UJAMwIAgkBDEludGVnZXJFbnRyeQICHFNUIFdISVJMUE9PTCBBTU0gaW4gd2F2ZWxldHMJAGsDCQBoAgUQd2F2ZXNJbldoaXJscG9vbAAKBRFwcm9qZWN0U3Rha2VXaGlybAUPdG90YWxTdGFrZVdoaXJsCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZ0ZXN0IHBvb2wgd2VpZ2h0IHdoaXJsCQBrAwkAaQIJAGgCBRB3YXZlc0luV2hpcmxwb29sAJBOCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUJd2hpcmxwb29sCQCsAgIJAKwCAgIHc3RhdGljXwkA2AQBBQV3YXZlcwIHX3dlaWdodAURcHJvamVjdFN0YWtlV2hpcmwFD3RvdGFsU3Rha2VXaGlybAkAzAgCCQEMSW50ZWdlckVudHJ5AgIeU1QgV2F2ZXMgNXBvb2wgQU1NIGluIHdhdmVsZXRzCQBrAwkAaAIFDXdhdmVzSW5XNXBvb2wABQUScHJvamVjdFN0YWtlVzVwb29sBRB0b3RhbFN0YWtlVzVwb29sCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZ0ZXN0IHBvb2wgd2VpZ2h0IDVwb29sCQBrAwkAaQIJAGgCBQ13YXZlc0luVzVwb29sAJBOCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUMd2F2ZXM1cG9vbElkCQCsAgIJAKwCAgIHc3RhdGljXwkA2AQBBQV3YXZlcwIHX3dlaWdodAUScHJvamVjdFN0YWtlVzVwb29sBRB0b3RhbFN0YWtlVzVwb29sCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgdTVCBlRVRIBQlFVEhpbkVBU1QJAMwIAgkBDEludGVnZXJFbnRyeQICE1NUIGVFVEggaW4gd2F2ZWxldHMFEUVUSGluRUFTVHdhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAglTVCBQVVpaTEUFDHB1enpsZVN0YWtlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgIVU1QgUFVaWkxFIGluIHdhdmVsZXRzBRBQVVpaTEVpbldhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhhTVCBXWCBpbiBnV1ggaW4gd2F2ZWxldHMFDFdYaW5XYXZlbGV0cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIPU1QgUExVVE8gc3Rha2VkBQtwbHV0b1N0YWtlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgIUU1QgUExVVE8gaW4gd2F2ZWxldHMFD1BMVVRPaW5XYXZlbGV0cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIUVG90YWwgU1QgaW4gd2F2ZWxldHMFCnR2bEluV2F2ZXMJAMwIAgkBDEludGVnZXJFbnRyeQIFFmtleVdoaXJscG9vbElzc3VlUHJpY2UFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiBXSElSTFBPT0wvV0FWRVMgbWlkIG1hcmtldCBwcmljZQkAawMFAmQ4CQBoAgUQd2F2ZXNJbldoaXJscG9vbAAJBRB3aGlybEluV2hpcmxwb29sCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhp0ZXN0IHBvb2wgd2VpZ2h0IG1pZCBwcmljZQkAawMFAmQ4CQBpAgkAaAIFEHdhdmVzSW5XaGlybHBvb2wJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQ93aGlybHBvb2xQb29sSWQJAKwCAgkArAICAgdzdGF0aWNfCQDYBAEFCXdoaXJscG9vbAIHX3dlaWdodADoBwUQd2hpcmxJbldoaXJscG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgIWV0hJUkxQT09MIHRvdGFsIHN1cHBseQUPd2hpcmxwb29sU3VwcGx5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAg5Ub3RhbCB0cmVhc3VyeQUNdG90YWxUcmVhc3VyeQkAzAgCCQEMSW50ZWdlckVudHJ5AgINTkFWIFdISVJMUE9PTAkAawMFAmQ4CQBkAgUNdG90YWxUcmVhc3VyeQkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQFD3doaXJscG9vbFN1cHBseQkAzAgCCQEMSW50ZWdlckVudHJ5AgIkYnV5YmFjayZpbnZlc3QgV0hJUkxQT09MIEFNTSA8NSUgTkFWCQBrAwkAawMFAmQ4CQBkAgUNdG90YWxUcmVhc3VyeQkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQFD3doaXJscG9vbFN1cHBseQBfAGQJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleVdhdmVsZXRzUmVjZWl2ZWQJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUTa2V5V2F2ZWxldHNSZWNlaXZlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5U3VycGx1c1JlY2VpdmVkCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVN1cnBsdXNSZWNlaXZlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUVa2V5V2F2ZWxldHNSZWNlaXZlZEJUCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFFWtleVdhdmVsZXRzUmVjZWl2ZWRCVAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5V2F2ZWxldHNQYWlkT3V0CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVdhdmVsZXRzUGFpZE91dAkAzAgCCQEMSW50ZWdlckVudHJ5AgIUdG90YWwgV0FWRVMgcmVjZWl2ZWQJAGkCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFE2tleVdhdmVsZXRzUmVjZWl2ZWQFAmQ4CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhdUb3RhbCB0cmVhc3VyeSBpbiBXQVZFUwkAaQIFDXRvdGFsVHJlYXN1cnkFAmQ4CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhlzdXJwbHVzIHJlY2VpdmVkIGluIFdBVkVTCQBpAgkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlTdXJwbHVzUmVjZWl2ZWQFAmQ4CQDMCAIJAQxJbnRlZ2VyRW50cnkCAiZ0b3RhbCBXQVZFUyByZWNlaXZlZCBmb3IgYmFzZSB0cmVhc3VyeQkAaQIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUVa2V5V2F2ZWxldHNSZWNlaXZlZEJUBQJkOAkAzAgCCQEMSW50ZWdlckVudHJ5AgIddG90YWwgV0FWRVMgcGFpZCBvdXQgaW4gV0FWRVMJAGkCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVdhdmVsZXRzUGFpZE91dAUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQIFBmtleVJPSQkAawMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2F2ZWxldHNQYWlkT3V0AJBOCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFE2tleVdhdmVsZXRzUmVjZWl2ZWQFA25pbAFpAQxib29zdFBvb2xBUFkBBmFtb3VudAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEC2Ftb3VudEJvb3N0CQBrAwkAaAIFBmFtb3VudAUCZDgAUABkAwkAAAIFC2Ftb3VudEJvb3N0BQthbW91bnRCb29zdAQHdG9XaGlybAkAawMFC2Ftb3VudEJvb3N0BRB3aGlybEluV2hpcmxwb29sBQp0b3RhbFdoaXJsAwkAAAIFB3RvV2hpcmwFB3RvV2hpcmwEBXRvQkJCCQBrAwULYW1vdW50Qm9vc3QFCndoaXJsSW5CQkIFCnRvdGFsV2hpcmwDCQAAAgUFdG9CQkIFBXRvQkJCBAthbW91bnRPd25lcgkAawMJAGgCBQZhbW91bnQFAmQ4ABQAZAMJAAACBQthbW91bnRPd25lcgULYW1vdW50T3duZXIEBmJvb3N0VwkA/AcECQEHQWRkcmVzcwEFC3Bvb2xib29zdFNDAgthZGRCb29zdGluZwkAzAgCCQDYBAEFD3doaXJscG9vbFBvb2xJZAkAzAgCAAcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUHdG9XaGlybAUDbmlsAwkAAAIFBmJvb3N0VwUGYm9vc3RXBAhib29zdEJCQgkA/AcECQEHQWRkcmVzcwEFC3Bvb2xib29zdFNDAgthZGRCb29zdGluZwkAzAgCCQDYBAEFCWJiYlBvb2xJZAkAzAgCAAcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUFdG9CQkIFA25pbAMJAAACBQhib29zdEJCQgUIYm9vc3RCQkIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQxwcm9qZWN0T3duZXIFC2Ftb3VudE93bmVyBQR1bml0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJrZXlXYXZlbGV0c1BhaWRPdXQJAGQCBQthbW91bnRCb29zdAkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlXYXZlbGV0c1BhaWRPdXQJAMwIAgkBDEludGVnZXJFbnRyeQIFBmtleVJPSQkAawMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2F2ZWxldHNQYWlkT3V0AJBOCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFE2tleVdhdmVsZXRzUmVjZWl2ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFDGtleUFjdGl2YXRlZAUGaGVpZ2h0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEPdHJhbnNmZXJQb29sQVBZAQZhbW91bnQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAthbW91bnRCb29zdAkAawMJAGgCBQZhbW91bnQFAmQ4AFAAZAMJAAACBQthbW91bnRCb29zdAULYW1vdW50Qm9vc3QEB3RvV2hpcmwJAGsDBQthbW91bnRCb29zdAUQd2hpcmxJbldoaXJscG9vbAUKdG90YWxXaGlybAMJAAACBQd0b1doaXJsBQd0b1doaXJsBAV0b0JCQgkAawMFC2Ftb3VudEJvb3N0BQp3aGlybEluQkJCBQp0b3RhbFdoaXJsAwkAAAIFBXRvQkJCBQV0b0JCQgQLYW1vdW50T3duZXIJAGsDCQBoAgUGYW1vdW50BQJkOAAUAGQDCQAAAgULYW1vdW50T3duZXIFC2Ftb3VudE93bmVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUPd2hpcmxwb29sUG9vbElkBQd0b1doaXJsBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUJYmJiUG9vbElkBQV0b0JCQgUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFDHByb2plY3RPd25lcgULYW1vdW50T3duZXIFBHVuaXQJAMwIAgkBDEludGVnZXJFbnRyeQIFEmtleVdhdmVsZXRzUGFpZE91dAkAZAIFC2Ftb3VudEJvb3N0CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVdhdmVsZXRzUGFpZE91dAkAzAgCCQEMSW50ZWdlckVudHJ5AgUGa2V5Uk9JCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlXYXZlbGV0c1BhaWRPdXQAkE4JAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUTa2V5V2F2ZWxldHNSZWNlaXZlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUMa2V5QWN0aXZhdGVkBQZoZWlnaHQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9zdXJwbHVzSW52ZXN0ZWQBC2Ftb3VudFdBVkVTAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQOaW52ZXN0ZWRBbW91bnQJAGgCBQthbW91bnRXQVZFUwUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQIFEmtleVN1cnBsdXNSZWNlaXZlZAkAZQIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5U3VycGx1c1JlY2VpdmVkBQ5pbnZlc3RlZEFtb3VudAUDbmlsAWkBCHdpdGhkcmF3AAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBARoBVxiJGyRtL+JEpbK5LtBkI1AuKd9yMNoyWQkAAgECCW5vIGFjY2VzcwQId2l0aGRyYXcJAPwHBAkBB0FkZHJlc3MBARoBV3US3ZOCD1veJXYVOctJ1R9TKAnE6HFeJwIVd2l0aGRyYXdWZXN0ZWRBbGxVU0ROCQDMCAIHCQDMCAIGBQNuaWwFA25pbAMJAAACBQh3aXRoZHJhdwUId2l0aGRyYXcFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQR0ZXN0AAkAzAgCCQEMSW50ZWdlckVudHJ5AgILcGx1dG8gaW4gV1gFCXBsdXRvSW5XWAkAzAgCCQEMSW50ZWdlckVudHJ5AgILd2F2ZXMgaW4gd3gFCndhdmVzNUluV1gJAMwIAgkBDEludGVnZXJFbnRyeQICC3BsdXRvL3dhdmVzBQpwbHV0b1dhdmVzCQDMCAIJAQtTdHJpbmdFbnRyeQICCGtlU3BsdXRvBQlrZXlTcGx1dG8JAMwIAgkBDEludGVnZXJFbnRyeQICBnNQTFVUTwkBEUBleHRyTmF0aXZlKDEwNTApAgUMcGx1dG9TdGFraW5nBQlrZXlTcGx1dG8JAMwIAgkBDEludGVnZXJFbnRyeQICC3NSYXRlIHBsdXRvCQERQGV4dHJOYXRpdmUoMTA1MCkCBQxwbHV0b1N0YWtpbmcCFWdsb2JhbF9sYXN0Q2hlY2tTUmF0ZQUDbmlsAQJ0eAEGdmVyaWZ5AAMJAMUTAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkGAwkAZgIJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQxrZXlBY3RpdmF0ZWQFC3VubG9ja0Jsb2NrBQZoZWlnaHQHAwkAxRMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUKaGVpclB1YktleQYDCQBmAgkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFDGtleUFjdGl2YXRlZAUMdW5sb2NrQmxvY2syBQZoZWlnaHQHCQDFEwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABRJQdXp6bGVNYXN0ZXJQdWJLZXl1ppD2", "height": 4123752, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CAi4jt8BzTpew7cSQuw7imfYjLXy8BL9eyGhyUbmFeKq Next: 5ADjStigtQcpvshxg586vra65EUhXudxq1uSwRy6M5as Diff:
OldNewDifferences
185185
186186 let WXinWavelets = fraction(WXamount, wxWaves, d8)
187187
188-let plutoStaking = Address(base58'3P3a1jssxc2CGdyC7SGbTJc9ZvTjZ5jBMLZ')
188+let plutoStaking = Address(base58'3P7dGTVZp8VLDYy3XEaUQbiqfi9cMK1Ly5q')
189189
190190 let keySpluto = (toString(this) + "_sPluto")
191191
354354
355355
356356 @Callable(i)
357-func test () = [IntegerEntry("pluto in WX", plutoInWX), IntegerEntry("waves in wx", waves5InWX), IntegerEntry("pluto/waves", plutoWaves), StringEntry("keSpluto", keySpluto), IntegerEntry("sPLUTO", tryGetInteger(plutoStaking, keySpluto)), IntegerEntry("sRate pluto", tryGetInteger(plutoStaking, "global_lastCheckSRate"))]
357+func test () = [IntegerEntry("pluto in WX", plutoInWX), IntegerEntry("waves in wx", waves5InWX), IntegerEntry("pluto/waves", plutoWaves), StringEntry("keSpluto", keySpluto), IntegerEntry("sPLUTO", getIntegerValue(plutoStaking, keySpluto)), IntegerEntry("sRate pluto", getIntegerValue(plutoStaking, "global_lastCheckSRate"))]
358358
359359
360360 @Verifier(tx)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetInteger (address,key) = match getInteger(address, key) {
55 case b: Int =>
66 b
77 case _ =>
88 0
99 }
1010
1111
1212 func tryGetString (address,key) = match getString(address, key) {
1313 case b: String =>
1414 b
1515 case _ =>
1616 ""
1717 }
1818
1919
2020 let d8 = 100000000
2121
2222 let unlockBlock = (30 * 1440)
2323
2424 let heirPubKey = base58'2kpmuzw1ZbrtgAN3BrR7vbEW1XrJoJKCstL7mf7XNf2P'
2525
2626 let unlockBlock2 = (90 * 1440)
2727
2828 let PuzzleMasterPubKey = base58'4z8CKSYQBKkzx7PBb5uBP1YPa6YAHRNTApW1sQVHT5eU'
2929
3030 let keyActivated = "Activated blockheight"
3131
3232 let keySurplusReceived = "surplus received in wavelets"
3333
3434 let keyWaveletsReceived = "total WAVES received in wavelets"
3535
3636 let keyWaveletsReceivedBT = "total wavelets received for base treasury"
3737
3838 let keyWaveletsPaidOut = "total WAVES paid out in wavelets"
3939
4040 let keyROI = "ROI basis points"
4141
4242 let keyWhirlpoolIssuePrice = "WHIRLPOOL issue price in wavelets"
4343
4444 let burnxtnPPTpoolId = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx'
4545
4646 let projectOwner = base58'3PEtLVxDT8mxAh1SDAn8m7JTGNkdpkaFxBk'
4747
4848 let whirlpoolPoolId = base58'3P2myTbd5zpEHcYmNpdWTp5gXS5B8tL1RCY'
4949
5050 let bbbPoolId = base58'3P9VPwVfNj3dDevQZt1Z951A4K57cmQmCgk'
5151
5252 let waves5poolId = base58'3PCpjLGo4wDuv23kjmGF6mHs86Bf3soYvAq'
5353
5454 let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi'
5555
5656 let whirlpoolString = toBase58String(base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi')
5757
5858 let waves = base58'WAVES'
5959
6060 let eth = base58'3VuV5WTmDz47Dmdn3QpcYjzbSdipjQE4JMdNe1xZpX13'
6161
6262 let swaves = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7'
6363
6464 let puzzle = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS'
6565
6666 let wx = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
6767
6868 let pluto = base58'Ajso6nTTjptu2UHLx6hfSXVtHFtRBJCkKYd5SAyj7zf5'
6969
7070 let poolboostSC = base58'3P8eeDzUnoDNbQjW617pAe76cEUDQsP1m1V'
7171
7272 let SWAVES_stake = Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV')
7373
7474 let WX_ETH_WAVES = Address(base58'3P2yiVnK48evTLr8MAZWavpE4WA4fw1weQg')
7575
7676 let WX_PUZZLE_WAVES = Address(base58'3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz')
7777
7878 let WX_WX_WAVES = Address(base58'3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh')
7979
8080 let WX_PLUTO_WAVES = Address(base58'3P6ZipK8ydb4qHmufCquh98g9KW6EwaeJfk')
8181
8282 let wavesInPool = tryGetInteger(Address(burnxtnPPTpoolId), (("global_" + toBase58String(waves)) + "_balance"))
8383
8484 let projectStake = tryGetInteger(Address(burnxtnPPTpoolId), (toString(this) + "_indexStaked"))
8585
8686 let totalStake = tryGetInteger(Address(burnxtnPPTpoolId), "global_poolToken_amount")
8787
8888 func _loadInt (key_,default_) = match getInteger(SWAVES_stake, key_) {
8989 case a: Int =>
9090 a
9191 case _ =>
9292 default_
9393 }
9494
9595
9696 func _loadBigInt (key_,default_) = match getBinary(SWAVES_stake, key_) {
9797 case a: ByteVector =>
9898 toBigInt(a)
9999 case _ =>
100100 default_
101101 }
102102
103103
104104 let lastRate = _loadBigInt("LAST_RATE", toBigInt(1000000000000))
105105
106106 let currentRate = _loadBigInt("CURRENT_RATE", toBigInt(0))
107107
108108 let lastHeight = _loadInt("LAST_HEIGHT", 0)
109109
110110 let targetHeight = min([_loadInt("TARGET_HEIGHT", 0), height])
111111
112112 let lastRateUpdated = (lastRate + (currentRate * toBigInt((targetHeight - lastHeight))))
113113
114114 let baseAmount2 = toInt(fraction(toBigInt(assetBalance(WX_ETH_WAVES, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR))
115115
116116 let baseAmount3 = toInt(fraction(toBigInt(assetBalance(WX_PUZZLE_WAVES, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR))
117117
118118 let baseAmount4 = toInt(fraction(toBigInt(assetBalance(WX_WX_WAVES, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR))
119119
120120 let baseAmount5 = toInt(fraction(toBigInt(assetBalance(WX_PLUTO_WAVES, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR))
121121
122122 let waves2InWX = (wavesBalance(WX_ETH_WAVES).regular + baseAmount2)
123123
124124 let ethInWX = assetBalance(WX_ETH_WAVES, eth)
125125
126126 let ethWaves = fraction(d8, waves2InWX, ethInWX)
127127
128128 let puzzleInWX = assetBalance(WX_PUZZLE_WAVES, puzzle)
129129
130130 let waves3InWX = (wavesBalance(WX_PUZZLE_WAVES).regular + baseAmount3)
131131
132132 let puzzleWaves = fraction(d8, waves3InWX, puzzleInWX)
133133
134134 let wxInWX = assetBalance(WX_WX_WAVES, wx)
135135
136136 let waves4InWX = (wavesBalance(WX_WX_WAVES).regular + baseAmount4)
137137
138138 let wxWaves = fraction(d8, waves4InWX, wxInWX)
139139
140140 let plutoInWX = assetBalance(WX_PLUTO_WAVES, pluto)
141141
142142 let waves5InWX = (wavesBalance(WX_PLUTO_WAVES).regular + baseAmount5)
143143
144144 let plutoWaves = fraction(d8, waves5InWX, plutoInWX)
145145
146146 let wavesInWhirlpool = tryGetInteger(Address(whirlpoolPoolId), (("global_" + toBase58String(waves)) + "_balance"))
147147
148148 let whirlInWhirlpool = tryGetInteger(Address(whirlpoolPoolId), (("global_" + whirlpoolString) + "_balance"))
149149
150150 let projectStakeWhirl = tryGetInteger(Address(whirlpoolPoolId), (toString(this) + "_indexStaked"))
151151
152152 let totalStakeWhirl = tryGetInteger(Address(whirlpoolPoolId), "global_poolToken_amount")
153153
154154 let whirlInBBB = tryGetInteger(Address(bbbPoolId), (("global_" + whirlpoolString) + "_balance"))
155155
156156 let totalWhirl = (whirlInWhirlpool + whirlInBBB)
157157
158158 let wavesInW5pool = tryGetInteger(Address(waves5poolId), (("global_" + toBase58String(waves)) + "_balance"))
159159
160160 let projectStakeW5pool = tryGetInteger(Address(waves5poolId), (toString(this) + "_indexStaked"))
161161
162162 let totalStakeW5pool = tryGetInteger(Address(waves5poolId), "global_poolToken_amount")
163163
164164 let keyVaultAsset = tryGetString(Address(base58'3PMtGnf3LXiEG6isDQLq1xMDKUqjQGqNHLb'), (("%s%s%s__vault__" + toString(this)) + "__WAVES"))
165165
166166 let WAVESinEAST = parseIntValue(split(keyVaultAsset, "__")[2])
167167
168168 let keyVaultAsset2 = tryGetString(Address(base58'3PMtGnf3LXiEG6isDQLq1xMDKUqjQGqNHLb'), (("%s%s%s__vault__" + toString(this)) + "__3VuV5WTmDz47Dmdn3QpcYjzbSdipjQE4JMdNe1xZpX13"))
169169
170170 let ETHinEAST = parseIntValue(split(keyVaultAsset2, "__")[2])
171171
172172 let ETHinEASTwavelets = fraction(ETHinEAST, ethWaves, d8)
173173
174174 let puzzleStaking = Address(base58'3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS')
175175
176176 let puzzleStaked = tryGetInteger(puzzleStaking, (toString(this) + "_staked"))
177177
178178 let PUZZLEinWavelets = fraction(puzzleStaked, puzzleWaves, d8)
179179
180180 let WXstaking = Address(base58'3PJL8Hn8LACaSBWLQ3UVhctA5cTQLBFwBAP')
181181
182182 let keyWX = "%s%d%s__paramByUserNum__13445__amount"
183183
184184 let WXamount = tryGetInteger(WXstaking, keyWX)
185185
186186 let WXinWavelets = fraction(WXamount, wxWaves, d8)
187187
188-let plutoStaking = Address(base58'3P3a1jssxc2CGdyC7SGbTJc9ZvTjZ5jBMLZ')
188+let plutoStaking = Address(base58'3P7dGTVZp8VLDYy3XEaUQbiqfi9cMK1Ly5q')
189189
190190 let keySpluto = (toString(this) + "_sPluto")
191191
192192 let plutoStaked = fraction(tryGetInteger(plutoStaking, keySpluto), tryGetInteger(plutoStaking, "global_lastCheckSRate"), d8)
193193
194194 let PLUTOinWavelets = fraction(plutoStaked, plutoWaves, d8)
195195
196196 let tvlInWaves = (((((fraction((wavesInPool * 10), projectStake, totalStake) + fraction((wavesInWhirlpool * 10), projectStakeWhirl, totalStakeWhirl)) + ETHinEASTwavelets) + PUZZLEinWavelets) + fraction((wavesInW5pool * 5), projectStakeW5pool, totalStakeW5pool)) + WXinWavelets)
197197
198198 let totalBT = WAVESinEAST
199199
200200 let totalTreasury = (totalBT + tvlInWaves)
201201
202202 let whirlpoolSupply = match assetInfo(whirlpool) {
203203 case asset: Asset =>
204204 asset.quantity
205205 case _ =>
206206 throw("Can't find asset")
207207 }
208208
209209 let price = if (((fraction((tvlInWaves + tryGetInteger(this, keySurplusReceived)), d8, whirlpoolSupply) + d8) >= tryGetInteger(this, keyWhirlpoolIssuePrice)))
210210 then (fraction((tvlInWaves + tryGetInteger(this, keySurplusReceived)), d8, whirlpoolSupply) + d8)
211211 else tryGetInteger(this, keyWhirlpoolIssuePrice)
212212
213213 @Callable(i)
214214 func buyWHIRLPOOLwithWAVES () = if (if ((i.caller != this))
215215 then (i.caller != Address(base58'3PEtLVxDT8mxAh1SDAn8m7JTGNkdpkaFxBk'))
216216 else false)
217217 then throw("smart contract under maintenance")
218218 else {
219219 let WhirlpoolBalanceBefore = assetBalance(this, whirlpool)
220220 if ((WhirlpoolBalanceBefore == WhirlpoolBalanceBefore))
221221 then {
222222 let pmt = value(i.payments[0])
223223 let surplus = fraction((price - d8), pmt.amount, d8)
224224 let IssueAmount = if ((pmt.amount >= fraction(pmt.amount, d8, price)))
225225 then fraction(pmt.amount, d8, price)
226226 else throw("please contact project owner: issue amount error")
227227 let cleanAmountIn = (pmt.amount - fraction(pmt.amount, 200, 10000))
228228 let AmountOut = fraction(whirlInWhirlpool, ((d8 * d8) - toInt(pow(fraction(toBigInt(wavesInWhirlpool), toBigInt((d8 * d8)), toBigInt((wavesInWhirlpool + cleanAmountIn)), HALFUP), 16, toBigInt(fraction(100000, 10000, 900000)), 4, 16, CEILING))), (d8 * d8), DOWN)
229229 if (((d8 / 20) > pmt.amount))
230230 then throw("minimum payment 0.05 WAVES")
231231 else if ((pmt.assetId != unit))
232232 then throw("attach WAVES token only")
233233 else {
234234 let buy = if ((AmountOut > IssueAmount))
235235 then invoke(Address(whirlpoolPoolId), "swap", [whirlpoolString, (IssueAmount + 1)], [AttachedPayment(unit, pmt.amount)])
236236 else unit
237237 if ((buy == buy))
238238 then {
239239 let WhirlpoolBalanceAfter = assetBalance(this, whirlpool)
240240 let WhirlpoolFromSwap = (WhirlpoolBalanceAfter - WhirlpoolBalanceBefore)
241241 [Reissue(whirlpool, if ((IssueAmount >= AmountOut))
242242 then IssueAmount
243243 else 0, true), if ((AmountOut > IssueAmount))
244244 then ScriptTransfer(i.caller, WhirlpoolFromSwap, whirlpool)
245245 else ScriptTransfer(i.caller, IssueAmount, whirlpool), IntegerEntry(keyWhirlpoolIssuePrice, price), IntegerEntry(if ((AmountOut > IssueAmount))
246246 then "price WHIRLPOOL/WAVES"
247247 else "WHIRLPOOL/WAVES mid market price", if ((AmountOut > IssueAmount))
248248 then fraction(d8, pmt.amount, WhirlpoolFromSwap)
249249 else fraction(d8, (wavesInWhirlpool * 9), whirlInWhirlpool)), IntegerEntry(keyWaveletsReceived, if ((IssueAmount >= AmountOut))
250250 then (pmt.amount + tryGetInteger(this, keyWaveletsReceived))
251251 else tryGetInteger(this, keyWaveletsReceived)), IntegerEntry(keyWaveletsReceivedBT, if ((IssueAmount >= AmountOut))
252252 then ((pmt.amount - surplus) + tryGetInteger(this, keyWaveletsReceivedBT))
253253 else tryGetInteger(this, keyWaveletsReceivedBT)), IntegerEntry(keySurplusReceived, if ((AmountOut > IssueAmount))
254254 then getIntegerValue(this, keySurplusReceived)
255255 else (surplus + getIntegerValue(this, keySurplusReceived)))]
256256 }
257257 else throw("Strict value is not equal to itself.")
258258 }
259259 }
260260 else throw("Strict value is not equal to itself.")
261261 }
262262
263263
264264
265265 @Callable(i)
266266 func priceAndTreasuryStats () = [IntegerEntry("BT WAVES in EAST vault", WAVESinEAST), IntegerEntry("ST BURN-XTN x PepeTeam in wavelets", fraction((wavesInPool * 10), projectStake, totalStake)), IntegerEntry("test pool weight ppt", fraction(((wavesInPool * 10000) / tryGetInteger(Address(burnxtnPPTpoolId), (("static_" + toBase58String(waves)) + "_weight"))), projectStake, totalStake)), IntegerEntry("ST WHIRLPOOL AMM in wavelets", fraction((wavesInWhirlpool * 10), projectStakeWhirl, totalStakeWhirl)), IntegerEntry("test pool weight whirl", fraction(((wavesInWhirlpool * 10000) / tryGetInteger(Address(whirlpool), (("static_" + toBase58String(waves)) + "_weight"))), projectStakeWhirl, totalStakeWhirl)), IntegerEntry("ST Waves 5pool AMM in wavelets", fraction((wavesInW5pool * 5), projectStakeW5pool, totalStakeW5pool)), IntegerEntry("test pool weight 5pool", fraction(((wavesInW5pool * 10000) / tryGetInteger(Address(waves5poolId), (("static_" + toBase58String(waves)) + "_weight"))), projectStakeW5pool, totalStakeW5pool)), IntegerEntry("ST eETH", ETHinEAST), IntegerEntry("ST eETH in wavelets", ETHinEASTwavelets), IntegerEntry("ST PUZZLE", puzzleStaked), IntegerEntry("ST PUZZLE in wavelets", PUZZLEinWavelets), IntegerEntry("ST WX in gWX in wavelets", WXinWavelets), IntegerEntry("ST PLUTO staked", plutoStaked), IntegerEntry("ST PLUTO in wavelets", PLUTOinWavelets), IntegerEntry("Total ST in wavelets", tvlInWaves), IntegerEntry(keyWhirlpoolIssuePrice, price), IntegerEntry("WHIRLPOOL/WAVES mid market price", fraction(d8, (wavesInWhirlpool * 9), whirlInWhirlpool)), IntegerEntry("test pool weight mid price", fraction(d8, ((wavesInWhirlpool * tryGetInteger(Address(whirlpoolPoolId), (("static_" + toBase58String(whirlpool)) + "_weight"))) / 1000), whirlInWhirlpool)), IntegerEntry("WHIRLPOOL total supply", whirlpoolSupply), IntegerEntry("Total treasury", totalTreasury), IntegerEntry("NAV WHIRLPOOL", fraction(d8, (totalTreasury + tryGetInteger(this, keySurplusReceived)), whirlpoolSupply)), IntegerEntry("buyback&invest WHIRLPOOL AMM <5% NAV", fraction(fraction(d8, (totalTreasury + tryGetInteger(this, keySurplusReceived)), whirlpoolSupply), 95, 100)), IntegerEntry(keyWaveletsReceived, tryGetInteger(this, keyWaveletsReceived)), IntegerEntry(keySurplusReceived, tryGetInteger(this, keySurplusReceived)), IntegerEntry(keyWaveletsReceivedBT, tryGetInteger(this, keyWaveletsReceivedBT)), IntegerEntry(keyWaveletsPaidOut, tryGetInteger(this, keyWaveletsPaidOut)), IntegerEntry("total WAVES received", (tryGetInteger(this, keyWaveletsReceived) / d8)), IntegerEntry("Total treasury in WAVES", (totalTreasury / d8)), IntegerEntry("surplus received in WAVES", (tryGetInteger(this, keySurplusReceived) / d8)), IntegerEntry("total WAVES received for base treasury", (tryGetInteger(this, keyWaveletsReceivedBT) / d8)), IntegerEntry("total WAVES paid out in WAVES", (tryGetInteger(this, keyWaveletsPaidOut) / d8)), IntegerEntry(keyROI, fraction(tryGetInteger(this, keyWaveletsPaidOut), 10000, tryGetInteger(this, keyWaveletsReceived)))]
267267
268268
269269
270270 @Callable(i)
271271 func boostPoolAPY (amount) = if ((i.caller != this))
272272 then throw("access only by project owner")
273273 else {
274274 let amountBoost = fraction((amount * d8), 80, 100)
275275 if ((amountBoost == amountBoost))
276276 then {
277277 let toWhirl = fraction(amountBoost, whirlInWhirlpool, totalWhirl)
278278 if ((toWhirl == toWhirl))
279279 then {
280280 let toBBB = fraction(amountBoost, whirlInBBB, totalWhirl)
281281 if ((toBBB == toBBB))
282282 then {
283283 let amountOwner = fraction((amount * d8), 20, 100)
284284 if ((amountOwner == amountOwner))
285285 then {
286286 let boostW = invoke(Address(poolboostSC), "addBoosting", [toBase58String(whirlpoolPoolId), 7], [AttachedPayment(unit, toWhirl)])
287287 if ((boostW == boostW))
288288 then {
289289 let boostBBB = invoke(Address(poolboostSC), "addBoosting", [toBase58String(bbbPoolId), 7], [AttachedPayment(unit, toBBB)])
290290 if ((boostBBB == boostBBB))
291291 then [ScriptTransfer(Address(projectOwner), amountOwner, unit), IntegerEntry(keyWaveletsPaidOut, (amountBoost + tryGetInteger(this, keyWaveletsPaidOut))), IntegerEntry(keyROI, fraction(tryGetInteger(this, keyWaveletsPaidOut), 10000, tryGetInteger(this, keyWaveletsReceived))), IntegerEntry(keyActivated, height)]
292292 else throw("Strict value is not equal to itself.")
293293 }
294294 else throw("Strict value is not equal to itself.")
295295 }
296296 else throw("Strict value is not equal to itself.")
297297 }
298298 else throw("Strict value is not equal to itself.")
299299 }
300300 else throw("Strict value is not equal to itself.")
301301 }
302302 else throw("Strict value is not equal to itself.")
303303 }
304304
305305
306306
307307 @Callable(i)
308308 func transferPoolAPY (amount) = if ((i.caller != this))
309309 then throw("access only by project owner")
310310 else {
311311 let amountBoost = fraction((amount * d8), 80, 100)
312312 if ((amountBoost == amountBoost))
313313 then {
314314 let toWhirl = fraction(amountBoost, whirlInWhirlpool, totalWhirl)
315315 if ((toWhirl == toWhirl))
316316 then {
317317 let toBBB = fraction(amountBoost, whirlInBBB, totalWhirl)
318318 if ((toBBB == toBBB))
319319 then {
320320 let amountOwner = fraction((amount * d8), 20, 100)
321321 if ((amountOwner == amountOwner))
322322 then [ScriptTransfer(Address(whirlpoolPoolId), toWhirl, unit), ScriptTransfer(Address(bbbPoolId), toBBB, unit), ScriptTransfer(Address(projectOwner), amountOwner, unit), IntegerEntry(keyWaveletsPaidOut, (amountBoost + tryGetInteger(this, keyWaveletsPaidOut))), IntegerEntry(keyROI, fraction(tryGetInteger(this, keyWaveletsPaidOut), 10000, tryGetInteger(this, keyWaveletsReceived))), IntegerEntry(keyActivated, height)]
323323 else throw("Strict value is not equal to itself.")
324324 }
325325 else throw("Strict value is not equal to itself.")
326326 }
327327 else throw("Strict value is not equal to itself.")
328328 }
329329 else throw("Strict value is not equal to itself.")
330330 }
331331
332332
333333
334334 @Callable(i)
335335 func surplusInvested (amountWAVES) = if ((i.caller != this))
336336 then throw("access only by project owner")
337337 else {
338338 let investedAmount = (amountWAVES * d8)
339339 [IntegerEntry(keySurplusReceived, (tryGetInteger(this, keySurplusReceived) - investedAmount))]
340340 }
341341
342342
343343
344344 @Callable(i)
345345 func withdraw () = if ((i.caller != Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt')))
346346 then throw("no access")
347347 else {
348348 let withdraw = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllUSDN", [false, true], nil)
349349 if ((withdraw == withdraw))
350350 then nil
351351 else throw("Strict value is not equal to itself.")
352352 }
353353
354354
355355
356356 @Callable(i)
357-func test () = [IntegerEntry("pluto in WX", plutoInWX), IntegerEntry("waves in wx", waves5InWX), IntegerEntry("pluto/waves", plutoWaves), StringEntry("keSpluto", keySpluto), IntegerEntry("sPLUTO", tryGetInteger(plutoStaking, keySpluto)), IntegerEntry("sRate pluto", tryGetInteger(plutoStaking, "global_lastCheckSRate"))]
357+func test () = [IntegerEntry("pluto in WX", plutoInWX), IntegerEntry("waves in wx", waves5InWX), IntegerEntry("pluto/waves", plutoWaves), StringEntry("keSpluto", keySpluto), IntegerEntry("sPLUTO", getIntegerValue(plutoStaking, keySpluto)), IntegerEntry("sRate pluto", getIntegerValue(plutoStaking, "global_lastCheckSRate"))]
358358
359359
360360 @Verifier(tx)
361361 func verify () = if (sigVerify_16Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
362362 then true
363363 else if (((getIntegerValue(this, keyActivated) + unlockBlock) > height))
364364 then false
365365 else if (sigVerify_16Kb(tx.bodyBytes, tx.proofs[0], heirPubKey))
366366 then true
367367 else if (((getIntegerValue(this, keyActivated) + unlockBlock2) > height))
368368 then false
369369 else sigVerify_16Kb(tx.bodyBytes, tx.proofs[0], PuzzleMasterPubKey)
370370

github/deemru/w8io/6500d08 
68.82 ms