tx · HurA397CWQ22bVAdDRbvX74Gh67BzVnm2KowNrwQVLUi

3N3y7nQfqDc7rBUExjKQi5ZbspWRh9q8PYH:  -0.01800000 Waves

2023.11.22 11:57 [2854392] smart account 3N3y7nQfqDc7rBUExjKQi5ZbspWRh9q8PYH > SELF 0.00000000 Waves

{ "type": 13, "id": "HurA397CWQ22bVAdDRbvX74Gh67BzVnm2KowNrwQVLUi", "fee": 1800000, "feeAssetId": null, "timestamp": 1700643452135, "version": 2, "chainId": 84, "sender": "3N3y7nQfqDc7rBUExjKQi5ZbspWRh9q8PYH", "senderPublicKey": "9ggtmbyecVRfUY2zeZhNaoLBp2iymhnQhffXQhemTJaG", "proofs": [ "565eE7mS3UEpFud9bdQ7PAJAqeE2KGPVzLfc1PvqQitz1RNX1XB9BtC6BPhvzQZAjq68XXm9uXaFw54dRFZzNKWG" ], "script": "base64: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UFBUcG9vbElkCQCsAgIJAKUIAQUEdGhpcwIMX2luZGV4U3Rha2VkAAp0b3RhbFN0YWtlCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUQYnVybnh0blBQVHBvb2xJZAIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQBCFBMX3ZhbHVlAgtkQXBwQWRkcmVzcwVhc3NldAkAawMJAQ10cnlHZXRJbnRlZ2VyAgULZEFwcEFkZHJlc3MJAKwCAgkArAICCQClCAEFBHRoaXMCCl9zdXBwbGllZF8JANgEAQUFYXNzZXQJAQ10cnlHZXRJbnRlZ2VyAgULZEFwcEFkZHJlc3MJAKwCAgkA2AQBBQVhc3NldAIGX3NSYXRlBQNkMTYBCF9sb2FkSW50AgRrZXlfCGRlZmF1bHRfBAckbWF0Y2gwCQCaCAIFDFNXQVZFU19zdGFrZQUEa2V5XwMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEFCGRlZmF1bHRfAQtfbG9hZEJpZ0ludAIEa2V5XwhkZWZhdWx0XwQHJG1hdGNoMAkAnAgCBQxTV0FWRVNfc3Rha2UFBGtleV8DCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAkAngMBBQFhBQhkZWZhdWx0XwAIbGFzdFJhdGUJAQtfbG9hZEJpZ0ludAICCUxBU1RfUkFURQkAtgIBAICglKWNHQALY3VycmVudFJhdGUJAQtfbG9hZEJpZ0ludAICDENVUlJFTlRfUkFURQkAtgIBAAAACmxhc3RIZWlnaHQJAQhfbG9hZEludAICC0xBU1RfSEVJR0hUAAAADHRhcmdldEhlaWdodAkAlwMBCQDMCAIJAQhfbG9hZEludAICDVRBUkdFVF9IRUlHSFQAAAkAzAgCBQZoZWlnaHQFA25pbAAPbGFzdFJhdGVVcGRhdGVkCQC3AgIFCGxhc3RSYXRlCQC5AgIFC2N1cnJlbnRSYXRlCQC2AgEJAGUCBQx0YXJnZXRIZWlnaHQFCmxhc3RIZWlnaHQACmJhc2VBbW91bnQJAKADAQkAvQIECQC2AgEJAPAHAgUNV1hfV0FWRVNfRUFTVAUGc3dhdmVzBQ9sYXN0UmF0ZVVwZGF0ZWQJALYCAQCAoJSljR0FBUZMT09SAAl3YXZlc0luV1gJAGQCCAkA7wcBBQ1XWF9XQVZFU19FQVNUB3JlZ3VsYXIFCmJhc2VBbW91bnQACGVhc3RJbldYCQDwBwIFDVdYX1dBVkVTX0VBU1QFBGVhc3QACXdhdmVzRWFzdAkAawMJAGgCBQJkOABkBQhlYXN0SW5XWAUJd2F2ZXNJbldYABB3YXZlc0luV2hpcmxwb29sCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUPd2hpcmxwb29sUG9vbElkCQCsAgIJAKwCAgIHZ2xvYmFsXwkA2AQBBQV3YXZlcwIIX2JhbGFuY2UAEHdoaXJsSW5XaGlybHBvb2wJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQ93aGlybHBvb2xQb29sSWQJAKwCAgkArAICAgdnbG9iYWxfBQ93aGlybHBvb2xTdHJpbmcCCF9iYWxhbmNlABFwcm9qZWN0U3Rha2VXaGlybAkBDXRyeUdldEludGVnZXICCQEHQWRkcmVzcwEFD3doaXJscG9vbFBvb2xJZAkArAICCQClCAEFBHRoaXMCDF9pbmRleFN0YWtlZAAPdG90YWxTdGFrZVdoaXJsCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUPd2hpcmxwb29sUG9vbElkAhdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAANc3RFYXN0SW5XYXZlcwkAaAIJAGsDCQBpAgkAbgQJAPAHAgUEdGhpcwUGc3RlYXN0CQENdHJ5R2V0SW50ZWdlcgIFCkVBU1Rfc3Rha2UCCCVzX19yYXRlAICglKWNHQUISEFMRkVWRU4AZAUCZDgFCXdhdmVzRWFzdABkAA1lYXN0SW5TdGFraW5nCQBpAgkAbgQJAPAHAgUEdGhpcwUGc3RlYXN0CQENdHJ5R2V0SW50ZWdlcgIFCkVBU1Rfc3Rha2UCCCVzX19yYXRlAICglKWNHQUISEFMRkVWRU4AZAANa2V5VmF1bHRBc3NldAkBDHRyeUdldFN0cmluZwIJAQdBZGRyZXNzAQEaAVfa4655+8r5z+MDNCERUZp23XhlXEZbchgCOSVzJXMlc19fdmF1bHRfXzNQQWttSm5pTWdubkFlajVwWWYyakZZa0NiWm93NXB0OXRyX19XQVZFUwALV0FWRVNpbkVBU1QJAQ1wYXJzZUludFZhbHVlAQkAkQMCCQC1CQIFDWtleVZhdWx0QXNzZXQCAl9fAAIAC2RBcHBhZGRyZXNzCQEHQWRkcmVzcwEBGgFXr+OQzUL9+H0Rv2cuMKal1ScDoW6n32NZAAlFVEhhdG9rZW4JAQ10cnlHZXRJbnRlZ2VyAgULZEFwcGFkZHJlc3MCMTNQQWttSm5pTWdubkFlajVwWWYyakZZa0NiWm93NXB0OXRyX2FUb2tlbkJhbGFuY2UADkVUSGF0b2tlblRvdGFsCQENdHJ5R2V0SW50ZWdlcgIFC2RBcHBhZGRyZXNzAhFhVG9rZW5DaXJjdWxhdGlvbgAKcmVzZXJ2ZVN0cgkBDHRyeUdldFN0cmluZwIFC2RBcHBhZGRyZXNzAhFyZXNlcnZlR2xvYmFsRGF0YQAHZ2V0MVN0cgkAkQMCCQC1CQIFCnJlc2VydmVTdHICAXwAAQAIc3RyVG9JbnQJAQ1wYXJzZUludFZhbHVlAQUHZ2V0MVN0cgAPRVRIdG90YWxSZXNlcnZlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgkAtQkCCQEMdHJ5R2V0U3RyaW5nAgULZEFwcGFkZHJlc3MCEXJlc2VydmVHbG9iYWxEYXRhAgF8AAEACkVUSGluVmlyZXMJAGsDBQlFVEhhdG9rZW4FD0VUSHRvdGFsUmVzZXJ2ZQUORVRIYXRva2VuVG90YWwAEkVUSGluVmlyZXNXYXZlbGV0cwkAawMFCkVUSGluVmlyZXMFCGV0aFdhdmVzBQJkOAAKdHZsSW5XYXZlcwkAZAIJAGQCCQBrAwkAaAIFC3dhdmVzSW5Qb29sAAoFDHByb2plY3RTdGFrZQUKdG90YWxTdGFrZQkAawMJAGgCBRB3YXZlc0luV2hpcmxwb29sAAoFEXByb2plY3RTdGFrZVdoaXJsBQ90b3RhbFN0YWtlV2hpcmwFEkVUSGluVmlyZXNXYXZlbGV0cwAPd2hpcmxwb29sU3VwcGx5BAckbWF0Y2gwCQDsBwEFCXdoaXJscG9vbAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEENhbid0IGZpbmQgYXNzZXQABXByaWNlAwkAZwIJAGQCCQBrAwkAZAIFCnR2bEluV2F2ZXMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwUCZDgFD3doaXJscG9vbFN1cHBseQUCZDgJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIhV0hJUkxQT09MIGlzc3VlIHByaWNlIGluIHdhdmVsZXRzCQBkAgkAawMJAGQCBQp0dmxJbldhdmVzCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFAmQ4BQ93aGlybHBvb2xTdXBwbHkFAmQ4CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCIVdISVJMUE9PTCBpc3N1ZSBwcmljZSBpbiB3YXZlbGV0cwkBaQEVYnV5V0hJUkxQT09Md2l0aFdBVkVTAAQWV2hpcmxwb29sQmFsYW5jZUJlZm9yZQkA8AcCBQR0aGlzBQl3aGlybHBvb2wDCQAAAgUWV2hpcmxwb29sQmFsYW5jZUJlZm9yZQUWV2hpcmxwb29sQmFsYW5jZUJlZm9yZQQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEB3N1cnBsdXMJAGsDCQBlAgUFcHJpY2UFAmQ4CAUDcG10BmFtb3VudAUCZDgEC0lzc3VlQW1vdW50AwkAZwIIBQNwbXQGYW1vdW50CQBrAwgFA3BtdAZhbW91bnQFAmQ4BQVwcmljZQkAawMIBQNwbXQGYW1vdW50BQJkOAUFcHJpY2UJAAIBAjBwbGVhc2UgY29udGFjdCBwcm9qZWN0IG93bmVyOiBpc3N1ZSBhbW91bnQgZXJyb3IEDHN1cHBseUFtb3VudAkAaQIJAGUCCAUDcG10BmFtb3VudAUHc3VycGx1cwADBA1jbGVhbkFtb3VudEluCQBlAggFA3BtdAZhbW91bnQJAGsDCAUDcG10BmFtb3VudADIAQCQTgQJQW1vdW50T3V0CQBuBAUQd2hpcmxJbldoaXJscG9vbAkAZQIJAGgCBQJkOAUCZDgJAKADAQkAdgYJAL0CBAkAtgIBBRB3YXZlc0luV2hpcmxwb29sCQC2AgEJAGgCBQJkOAUCZDgJALYCAQkAZAIFEHdhdmVzSW5XaGlybHBvb2wFDWNsZWFuQW1vdW50SW4FBkhBTEZVUAAQCQC2AgEJAGsDAKCNBgCQTgCg9zYABAAQBQdDRUlMSU5HCQBoAgUCZDgFAmQ4BQRET1dOAwkBAiE9AggFA3BtdAdhc3NldElkBQR1bml0CQACAQIXYXR0YWNoIFdBVkVTIHRva2VuIG9ubHkEA2J1eQMJAGYCBQlBbW91bnRPdXQFC0lzc3VlQW1vdW50CQD8BwQJAQdBZGRyZXNzAQUPd2hpcmxwb29sUG9vbElkAgRzd2FwCQDMCAIFD3doaXJscG9vbFN0cmluZwkAzAgCCQBkAgULSXNzdWVBbW91bnQAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0CAUDcG10BmFtb3VudAUDbmlsBQR1bml0AwkAAAIFA2J1eQUDYnV5BBVXaGlybHBvb2xCYWxhbmNlQWZ0ZXIJAPAHAgUEdGhpcwUJd2hpcmxwb29sBBFXaGlybHBvb2xGcm9tU3dhcAkAZQIFFVdoaXJscG9vbEJhbGFuY2VBZnRlcgUWV2hpcmxwb29sQmFsYW5jZUJlZm9yZQkAzAgCCQEHUmVpc3N1ZQMFCXdoaXJscG9vbAMJAGcCBQtJc3N1ZUFtb3VudAUJQW1vdW50T3V0BQtJc3N1ZUFtb3VudAAABgkAzAgCAwkAZgIFCUFtb3VudE91dAULSXNzdWVBbW91bnQJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgURV2hpcmxwb29sRnJvbVN3YXAFCXdoaXJscG9vbAkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQtJc3N1ZUFtb3VudAUJd2hpcmxwb29sCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAwkAZgIFCUFtb3VudE91dAULSXNzdWVBbW91bnQCFXByaWNlIFdISVJMUE9PTC9XQVZFUwIgV0hJUkxQT09ML1dBVkVTIG1pZCBtYXJrZXQgcHJpY2UDCQBmAgUJQW1vdW50T3V0BQtJc3N1ZUFtb3VudAkAawMFAmQ4CAUDcG10BmFtb3VudAURV2hpcmxwb29sRnJvbVN3YXAJAGsDBQJkOAkAaAIFEHdhdmVzSW5XaGlybHBvb2wACQUQd2hpcmxJbldoaXJscG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgIgdG90YWwgV0FWRVMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMDCQBnAgULSXNzdWVBbW91bnQFCUFtb3VudE91dAkAZAIIBQNwbXQGYW1vdW50CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCIHRvdGFsIFdBVkVTIHJlY2VpdmVkIGluIHdhdmVsZXRzCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCIHRvdGFsIFdBVkVTIHJlY2VpdmVkIGluIHdhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAil0b3RhbCB3YXZlbGV0cyByZWNlaXZlZCBmb3IgYmFzZSB0cmVhc3VyeQMJAGcCBQtJc3N1ZUFtb3VudAUJQW1vdW50T3V0CQBkAgkAZQIIBQNwbXQGYW1vdW50BQdzdXJwbHVzCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCKXRvdGFsIHdhdmVsZXRzIHJlY2VpdmVkIGZvciBiYXNlIHRyZWFzdXJ5CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCKXRvdGFsIHdhdmVsZXRzIHJlY2VpdmVkIGZvciBiYXNlIHRyZWFzdXJ5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzAwkAZgIFCUFtb3VudE91dAULSXNzdWVBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMJAGQCBQdzdXJwbHVzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEScHJpY2VTdXJwbHVzU3VwcGx5AAkAzAgCCQEMSW50ZWdlckVudHJ5AgIWQlQgV0FWRVMgaW4gRUFTVCB2YXVsdAULV0FWRVNpbkVBU1QJAMwIAgkBDEludGVnZXJFbnRyeQICIlNUIEJVUk4tWFROIHggUGVwZVRlYW0gaW4gd2F2ZWxldHMJAGsDCQBoAgULd2F2ZXNJblBvb2wACgUMcHJvamVjdFN0YWtlBQp0b3RhbFN0YWtlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhxTVCBXSElSTFBPT0wgQU1NIGluIHdhdmVsZXRzCQBrAwkAaAIFEHdhdmVzSW5XaGlybHBvb2wACgURcHJvamVjdFN0YWtlV2hpcmwFD3RvdGFsU3Rha2VXaGlybAkAzAgCCQEMSW50ZWdlckVudHJ5AgIHU1QgdkVUSAUKRVRIaW5WaXJlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgITU1QgdkVUSCBpbiB3YXZlbGV0cwUSRVRIaW5WaXJlc1dhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhRUb3RhbCBTVCBpbiB3YXZlbGV0cwUKdHZsSW5XYXZlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgIhV0hJUkxQT09MIGlzc3VlIHByaWNlIGluIHdhdmVsZXRzBQVwcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIgV0hJUkxQT09ML1dBVkVTIG1pZCBtYXJrZXQgcHJpY2UJAGsDBQJkOAkAaAIFEHdhdmVzSW5XaGlybHBvb2wACQUQd2hpcmxJbldoaXJscG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgIWV0hJUkxQT09MIHRvdGFsIHN1cHBseQUPd2hpcmxwb29sU3VwcGx5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAg5Ub3RhbCB0cmVhc3VyeQkAZAIFC1dBVkVTaW5FQVNUBQp0dmxJbldhdmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg1OQVYgV0hJUkxQT09MCQBrAwUCZDgJAGQCBQtXQVZFU2luRUFTVAUKdHZsSW5XYXZlcwUPd2hpcmxwb29sU3VwcGx5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAiB0b3RhbCBXQVZFUyByZWNlaXZlZCBpbiB3YXZlbGV0cwkBDXRyeUdldEludGVnZXICBQR0aGlzAiB0b3RhbCBXQVZFUyByZWNlaXZlZCBpbiB3YXZlbGV0cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwkBDXRyeUdldEludGVnZXICBQR0aGlzAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAil0b3RhbCB3YXZlbGV0cyByZWNlaXZlZCBmb3IgYmFzZSB0cmVhc3VyeQkBDXRyeUdldEludGVnZXICBQR0aGlzAil0b3RhbCB3YXZlbGV0cyByZWNlaXZlZCBmb3IgYmFzZSB0cmVhc3VyeQkAzAgCCQEMSW50ZWdlckVudHJ5AgIgdG90YWwgV0FWRVMgcGFpZCBvdXQgaW4gd2F2ZWxldHMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIgdG90YWwgV0FWRVMgcGFpZCBvdXQgaW4gd2F2ZWxldHMJAMwIAgkBDEludGVnZXJFbnRyeQICFHRvdGFsIFdBVkVTIHJlY2VpdmVkCQBpAgkBDXRyeUdldEludGVnZXICBQR0aGlzAiB0b3RhbCBXQVZFUyByZWNlaXZlZCBpbiB3YXZlbGV0cwUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQICGXN1cnBsdXMgcmVjZWl2ZWQgaW4gV0FWRVMJAGkCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFAmQ4CQDMCAIJAQxJbnRlZ2VyRW50cnkCAiZ0b3RhbCBXQVZFUyByZWNlaXZlZCBmb3IgYmFzZSB0cmVhc3VyeQkAaQIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIpdG90YWwgd2F2ZWxldHMgcmVjZWl2ZWQgZm9yIGJhc2UgdHJlYXN1cnkFAmQ4CQDMCAIJAQxJbnRlZ2VyRW50cnkCAh10b3RhbCBXQVZFUyBwYWlkIG91dCBpbiBXQVZFUwkAaQIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIgdG90YWwgV0FWRVMgcGFpZCBvdXQgaW4gd2F2ZWxldHMFAmQ4CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhBST0kgYmFzaXMgcG9pbnRzCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCEFJPSSBiYXNpcyBwb2ludHMFA25pbAFpAQxib29zdFBvb2xBUFkAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQHYmFsYW5jZQMJAGYCBQJkOAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBAhBub3QgZW5vdWdoIFdBVkVTCQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4BAdib29zdDgwCQBrAwUHYmFsYW5jZQBQAGQDCQAAAgUHYm9vc3Q4MAUHYm9vc3Q4MAQLYW1vdW50Qm9vc3QJAGsDBQdib29zdDgwAFAAZAMJAAACBQthbW91bnRCb29zdAULYW1vdW50Qm9vc3QEC2Ftb3VudE93bmVyCQBrAwUHYm9vc3Q4MAAUAGQDCQAAAgULYW1vdW50T3duZXIFC2Ftb3VudE93bmVyBAVib29zdAkA/AcECQEHQWRkcmVzcwEFC3Bvb2xib29zdFNDAgthZGRCb29zdGluZwkAzAgCCQDYBAEFD3doaXJscG9vbFBvb2xJZAkAzAgCAAcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAULYW1vdW50Qm9vc3QFA25pbAMJAAACBQVib29zdAUFYm9vc3QJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQxwcm9qZWN0T3duZXIFC2Ftb3VudE93bmVyBQR1bml0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAiB0b3RhbCBXQVZFUyBwYWlkIG91dCBpbiB3YXZlbGV0cwkAZAIFC2Ftb3VudEJvb3N0CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCIHRvdGFsIFdBVkVTIHBhaWQgb3V0IGluIHdhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhBST0kgYmFzaXMgcG9pbnRzCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzAiB0b3RhbCBXQVZFUyBwYWlkIG91dCBpbiB3YXZlbGV0cwCQTgkBDXRyeUdldEludGVnZXICBQR0aGlzAiB0b3RhbCBXQVZFUyByZWNlaXZlZCBpbiB3YXZlbGV0cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIVQWN0aXZhdGVkIGJsb2NraGVpZ2h0BQZoZWlnaHQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARBib29zdFBvb2xBUFlfYWxsAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEB2JhbGFuY2UDCQBmAgUCZDgICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQACAQIQbm90IGVub3VnaCBXQVZFUwkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAQLYW1vdW50Qm9vc3QJAGsDBQdiYWxhbmNlAFAAZAMJAAACBQthbW91bnRCb29zdAULYW1vdW50Qm9vc3QEC2Ftb3VudE93bmVyCQBrAwUHYmFsYW5jZQAUAGQDCQAAAgULYW1vdW50T3duZXIFC2Ftb3VudE93bmVyBAVib29zdAkA/AcECQEHQWRkcmVzcwEFC3Bvb2xib29zdFNDAgthZGRCb29zdGluZwkAzAgCCQDYBAEFD3doaXJscG9vbFBvb2xJZAkAzAgCAAcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAULYW1vdW50Qm9vc3QFA25pbAMJAAACBQVib29zdAUFYm9vc3QJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQxwcm9qZWN0T3duZXIFC2Ftb3VudE93bmVyBQR1bml0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAiB0b3RhbCBXQVZFUyBwYWlkIG91dCBpbiB3YXZlbGV0cwkAZAIFC2Ftb3VudEJvb3N0CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCIHRvdGFsIFdBVkVTIHBhaWQgb3V0IGluIHdhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhBST0kgYmFzaXMgcG9pbnRzCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzAiB0b3RhbCBXQVZFUyBwYWlkIG91dCBpbiB3YXZlbGV0cwCQTgkBDXRyeUdldEludGVnZXICBQR0aGlzAiB0b3RhbCBXQVZFUyByZWNlaXZlZCBpbiB3YXZlbGV0cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIVQWN0aXZhdGVkIGJsb2NraGVpZ2h0BQZoZWlnaHQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ90cmFuc2ZlclBvb2xBUFkAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQHYmFsYW5jZQMJAGYCBQJkOAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBAhBub3QgZW5vdWdoIFdBVkVTCQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4BAdib29zdDgwCQBrAwUHYmFsYW5jZQBQAGQDCQAAAgUHYm9vc3Q4MAUHYm9vc3Q4MAQLYW1vdW50Qm9vc3QJAGsDBQdib29zdDgwAFAAZAMJAAACBQthbW91bnRCb29zdAULYW1vdW50Qm9vc3QEC2Ftb3VudE93bmVyCQBrAwUHYm9vc3Q4MAAUAGQDCQAAAgULYW1vdW50T3duZXIFC2Ftb3VudE93bmVyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUPd2hpcmxwb29sUG9vbElkBQthbW91bnRCb29zdAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFDHByb2plY3RPd25lcgULYW1vdW50T3duZXIFBHVuaXQJAMwIAgkBDEludGVnZXJFbnRyeQICIHRvdGFsIFdBVkVTIHBhaWQgb3V0IGluIHdhdmVsZXRzCQBkAgULYW1vdW50Qm9vc3QJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIgdG90YWwgV0FWRVMgcGFpZCBvdXQgaW4gd2F2ZWxldHMJAMwIAgkBDEludGVnZXJFbnRyeQICEFJPSSBiYXNpcyBwb2ludHMJAGsDCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCIHRvdGFsIFdBVkVTIHBhaWQgb3V0IGluIHdhdmVsZXRzAJBOCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCIHRvdGFsIFdBVkVTIHJlY2VpdmVkIGluIHdhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVBY3RpdmF0ZWQgYmxvY2toZWlnaHQFBmhlaWdodAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3RyYW5zZmVyUG9vbEFQWV9hbGwAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQHYmFsYW5jZQMJAGYCBQJkOAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBAhBub3QgZW5vdWdoIFdBVkVTCQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4BAthbW91bnRCb29zdAkAawMFB2JhbGFuY2UAUABkAwkAAAIFC2Ftb3VudEJvb3N0BQthbW91bnRCb29zdAQLYW1vdW50T3duZXIJAGsDBQdiYWxhbmNlABQAZAMJAAACBQthbW91bnRPd25lcgULYW1vdW50T3duZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQ93aGlybHBvb2xQb29sSWQFC2Ftb3VudEJvb3N0BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUMcHJvamVjdE93bmVyBQthbW91bnRPd25lcgUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgIgdG90YWwgV0FWRVMgcGFpZCBvdXQgaW4gd2F2ZWxldHMJAGQCBQthbW91bnRCb29zdAkBDXRyeUdldEludGVnZXICBQR0aGlzAiB0b3RhbCBXQVZFUyBwYWlkIG91dCBpbiB3YXZlbGV0cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIQUk9JIGJhc2lzIHBvaW50cwkAawMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIgdG90YWwgV0FWRVMgcGFpZCBvdXQgaW4gd2F2ZWxldHMAkE4JAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIgdG90YWwgV0FWRVMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMJAMwIAgkBDEludGVnZXJFbnRyeQICFUFjdGl2YXRlZCBibG9ja2hlaWdodAUGaGVpZ2h0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQETcG9vbE9uZVRva2VuU3VycGx1cwADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBA1zdXJwbHVzQW1vdW50CQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMEE1Bvb2xPbmVUb2tlblN1cnBsdXMJAPwHBAkBB0FkZHJlc3MBARoBV/0lw71OYZRB77peEmOPxTlvSbWIOvXpbQIhZ2VuZXJhdGVJbmRleFdpdGhPbmVUb2tlbkFuZFN0YWtlCQDMCAIJANgEAQUQYnVybnh0blBQVHBvb2xJZAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQ1zdXJwbHVzQW1vdW50BQNuaWwDCQAAAgUTUG9vbE9uZVRva2VuU3VycGx1cwUTUG9vbE9uZVRva2VuU3VycGx1cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwkAZQIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwUNc3VycGx1c0Ftb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEmNoYW5nZUludGVnZXJFbnRyeQIJa2V5U3RyaW5nB2ludGVnZXIDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlrZXlTdHJpbmcFB2ludGVnZXIFA25pbAFpAQhhY3RpdmF0ZQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhN5b3UgYXJlIG5vdCBhbGxvd2VkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVBY3RpdmF0ZWQgYmxvY2toZWlnaHQFBmhlaWdodAUDbmlsAQJ0eAEGdmVyaWZ5AAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkGAwkAZgIJAGQCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMCFUFjdGl2YXRlZCBibG9ja2hlaWdodAULdW5sb2NrQmxvY2sFBmhlaWdodAcDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQpoZWlyUHViS2V5BgMJAGYCCQBkAgkBDXRyeUdldEludGVnZXICBQR0aGlzAhVBY3RpdmF0ZWQgYmxvY2toZWlnaHQFDHVubG9ja0Jsb2NrMgUGaGVpZ2h0BwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUSUHV6emxlTWFzdGVyUHViS2V57nBQcA==", "height": 2854392, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2RFT5WoK23aJEpAnVyUZa2xNuSBoaaMCyx4YAXNYD5tP Next: 7KcqJWSgnkTciaw7yAkSNeKhp8Lp3Rm8CsfreSCT1bMh Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let TestUser = Address(base58'3N3y7nQfqDc7rBUExjKQi5ZbspWRh9q8PYH')
4+func tryGetInteger (address,key) = match getInteger(address, key) {
5+ case b: Int =>
6+ b
7+ case _ =>
8+ 0
9+}
510
6-let TestUserPubKey = base58'9ggtmbyecVRfUY2zeZhNaoLBp2iymhnQhffXQhemTJaG'
711
8-let TestUser2 = Address(base58'3N8ueTAufEUYDKWJDbfK7aZ4HHxBkX4DXA6')
12+func tryGetString (address,key) = match getString(address, key) {
13+ case b: String =>
14+ b
15+ case _ =>
16+ ""
17+}
918
10-let PuzzleMasterAddress = Address(base58'3PLjwHcz9NEuaTo63NZR9B9okQiKQxZSbmf')
19+
20+let d8 = 100000000
21+
22+let d16 = (d8 * d8)
23+
24+let heirPubKey = base58'2kpmuzw1ZbrtgAN3BrR7vbEW1XrJoJKCstL7mf7XNf2P'
1125
1226 let PuzzleMasterPubKey = base58'4z8CKSYQBKkzx7PBb5uBP1YPa6YAHRNTApW1sQVHT5eU'
1327
28+let unlockBlock = (30 * 1440)
29+
30+let unlockBlock2 = (90 * 1440)
31+
32+let burnxtnPPTpoolId = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx'
33+
34+let projectOwner = base58'3PEtLVxDT8mxAh1SDAn8m7JTGNkdpkaFxBk'
35+
36+let whirlpoolPoolId = base58'3P2myTbd5zpEHcYmNpdWTp5gXS5B8tL1RCY'
37+
38+let whirlpool = base58'fHJWWsh2hZAc4Atv8VRhKy3jNbHLeMwQMsLpdaBY51Y'
39+
40+let whirlpoolString = toBase58String(base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi')
41+
42+let waves = base58'WAVES'
43+
44+let usdterc = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
45+
46+let usdcerc = base58'HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW'
47+
48+let usdtbsc = base58'A81p1LTRyoq2rDR2TNxB2dWYxsiNwCSSi8sXef2SEkwb'
49+
50+let usdcbsc = base58'4BKKSp6NoNcrFHyorZogDyctq1fq6w7114Ym1pw6HUtC'
51+
52+let burnxtn = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns'
53+
54+let eth = base58'3VuV5WTmDz47Dmdn3QpcYjzbSdipjQE4JMdNe1xZpX13'
55+
56+let bnb = base58'66a1br3BrkoaJgP7yEar9hJcSTvJPoH6PYBLqscXcMGo'
57+
58+let wbtc = base58'2Fge5HEBRD3XTeg7Xg3FW5yiB9HVJFQtMXiWMQo72Up6'
59+
60+let btcb = base58'EW1uGLVo21Wd9i2Rhq8o4VKDTCQTGCGXE8DqayHGrLg8'
61+
62+let east = base58'6phK22ztGBW127gUFmdMEHKB3CVd6ZhWox2WtwJkbqTq'
63+
64+let steast = base58'GAB8JowY9UANZ4TQy2TzJyhxjPqXX3DUrb2cdMWrrJus'
65+
66+let swaves = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7'
67+
68+let surf = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
69+
70+let poolboostSC = base58'3P8eeDzUnoDNbQjW617pAe76cEUDQsP1m1V'
71+
72+let PL_Main = Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH')
73+
74+let PL_Defi = Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X')
75+
76+let PL_Low = Address(base58'3PHpuQUPVUoR3AYzFeJzeWJfYLsLTmWssVH')
77+
78+let EAST_stake = Address(base58'3P2hbtheN5apNppqqUK7L7qAwmRFXy91CNa')
79+
80+let WX_WAVES_EAST = Address(base58'3PJVwjfi2fF5Jv9AauayU6xLxrYBn8bpGH1')
81+
82+let SWAVES_stake = Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV')
83+
84+let ethInPool = tryGetInteger(Address(burnxtnPPTpoolId), (("global_" + toBase58String(eth)) + "_balance"))
85+
86+let wavesInPool = tryGetInteger(Address(burnxtnPPTpoolId), (("global_" + toBase58String(waves)) + "_balance"))
87+
88+let ethWaves = fraction(d8, wavesInPool, ethInPool)
89+
90+let projectStake = tryGetInteger(Address(burnxtnPPTpoolId), (toString(this) + "_indexStaked"))
91+
92+let totalStake = tryGetInteger(Address(burnxtnPPTpoolId), "global_poolToken_amount")
93+
94+func PL_value (dAppAddress,asset) = fraction(tryGetInteger(dAppAddress, ((toString(this) + "_supplied_") + toBase58String(asset))), tryGetInteger(dAppAddress, (toBase58String(asset) + "_sRate")), d16)
95+
96+
97+func _loadInt (key_,default_) = match getInteger(SWAVES_stake, key_) {
98+ case a: Int =>
99+ a
100+ case _ =>
101+ default_
102+}
103+
104+
105+func _loadBigInt (key_,default_) = match getBinary(SWAVES_stake, key_) {
106+ case a: ByteVector =>
107+ toBigInt(a)
108+ case _ =>
109+ default_
110+}
111+
112+
113+let lastRate = _loadBigInt("LAST_RATE", toBigInt(1000000000000))
114+
115+let currentRate = _loadBigInt("CURRENT_RATE", toBigInt(0))
116+
117+let lastHeight = _loadInt("LAST_HEIGHT", 0)
118+
119+let targetHeight = min([_loadInt("TARGET_HEIGHT", 0), height])
120+
121+let lastRateUpdated = (lastRate + (currentRate * toBigInt((targetHeight - lastHeight))))
122+
123+let baseAmount = toInt(fraction(toBigInt(assetBalance(WX_WAVES_EAST, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR))
124+
125+let wavesInWX = (wavesBalance(WX_WAVES_EAST).regular + baseAmount)
126+
127+let eastInWX = assetBalance(WX_WAVES_EAST, east)
128+
129+let wavesEast = fraction((d8 * 100), eastInWX, wavesInWX)
130+
131+let wavesInWhirlpool = tryGetInteger(Address(whirlpoolPoolId), (("global_" + toBase58String(waves)) + "_balance"))
132+
133+let whirlInWhirlpool = tryGetInteger(Address(whirlpoolPoolId), (("global_" + whirlpoolString) + "_balance"))
134+
135+let projectStakeWhirl = tryGetInteger(Address(whirlpoolPoolId), (toString(this) + "_indexStaked"))
136+
137+let totalStakeWhirl = tryGetInteger(Address(whirlpoolPoolId), "global_poolToken_amount")
138+
139+let stEastInWaves = (fraction((fraction(assetBalance(this, steast), tryGetInteger(EAST_stake, "%s__rate"), 1000000000000, HALFEVEN) / 100), d8, wavesEast) * 100)
140+
141+let eastInStaking = (fraction(assetBalance(this, steast), tryGetInteger(EAST_stake, "%s__rate"), 1000000000000, HALFEVEN) / 100)
142+
143+let keyVaultAsset = tryGetString(Address(base58'3PMtGnf3LXiEG6isDQLq1xMDKUqjQGqNHLb'), "%s%s%s__vault__3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr__WAVES")
144+
145+let WAVESinEAST = parseIntValue(split(keyVaultAsset, "__")[2])
146+
147+let dAppaddress = Address(base58'3PHxubMUtynEY2AeHq3K1kUizRPN9HUC2rt')
148+
149+let ETHatoken = tryGetInteger(dAppaddress, "3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr_aTokenBalance")
150+
151+let ETHatokenTotal = tryGetInteger(dAppaddress, "aTokenCirculation")
152+
153+let reserveStr = tryGetString(dAppaddress, "reserveGlobalData")
154+
155+let get1Str = split(reserveStr, "|")[1]
156+
157+let strToInt = parseIntValue(get1Str)
158+
159+let ETHtotalReserve = parseIntValue(split(tryGetString(dAppaddress, "reserveGlobalData"), "|")[1])
160+
161+let ETHinVires = fraction(ETHatoken, ETHtotalReserve, ETHatokenTotal)
162+
163+let ETHinViresWavelets = fraction(ETHinVires, ethWaves, d8)
164+
165+let tvlInWaves = ((fraction((wavesInPool * 10), projectStake, totalStake) + fraction((wavesInWhirlpool * 10), projectStakeWhirl, totalStakeWhirl)) + ETHinViresWavelets)
166+
167+let whirlpoolSupply = match assetInfo(whirlpool) {
168+ case asset: Asset =>
169+ asset.quantity
170+ case _ =>
171+ throw("Can't find asset")
172+}
173+
174+let price = if (((fraction((tvlInWaves + tryGetInteger(this, "surplus received in wavelets")), d8, whirlpoolSupply) + d8) >= tryGetInteger(this, "WHIRLPOOL issue price in wavelets")))
175+ then (fraction((tvlInWaves + tryGetInteger(this, "surplus received in wavelets")), d8, whirlpoolSupply) + d8)
176+ else tryGetInteger(this, "WHIRLPOOL issue price in wavelets")
177+
14178 @Callable(i)
15-func activate () = [IntegerEntry(if ((i.caller == this))
16- then "Activated blockheight"
17- else "Activated by anybody blockheight", height)]
179+func buyWHIRLPOOLwithWAVES () = {
180+ let WhirlpoolBalanceBefore = assetBalance(this, whirlpool)
181+ if ((WhirlpoolBalanceBefore == WhirlpoolBalanceBefore))
182+ then {
183+ let pmt = value(i.payments[0])
184+ let surplus = fraction((price - d8), pmt.amount, d8)
185+ let IssueAmount = if ((pmt.amount >= fraction(pmt.amount, d8, price)))
186+ then fraction(pmt.amount, d8, price)
187+ else throw("please contact project owner: issue amount error")
188+ let supplyAmount = ((pmt.amount - surplus) / 3)
189+ let cleanAmountIn = (pmt.amount - fraction(pmt.amount, 200, 10000))
190+ 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)
191+ if ((pmt.assetId != unit))
192+ then throw("attach WAVES token only")
193+ else {
194+ let buy = if ((AmountOut > IssueAmount))
195+ then invoke(Address(whirlpoolPoolId), "swap", [whirlpoolString, (IssueAmount + 1)], [AttachedPayment(unit, pmt.amount)])
196+ else unit
197+ if ((buy == buy))
198+ then {
199+ let WhirlpoolBalanceAfter = assetBalance(this, whirlpool)
200+ let WhirlpoolFromSwap = (WhirlpoolBalanceAfter - WhirlpoolBalanceBefore)
201+[Reissue(whirlpool, if ((IssueAmount >= AmountOut))
202+ then IssueAmount
203+ else 0, true), if ((AmountOut > IssueAmount))
204+ then ScriptTransfer(i.caller, WhirlpoolFromSwap, whirlpool)
205+ else ScriptTransfer(i.caller, IssueAmount, whirlpool), IntegerEntry("WHIRLPOOL issue price in wavelets", price), IntegerEntry(if ((AmountOut > IssueAmount))
206+ then "price WHIRLPOOL/WAVES"
207+ else "WHIRLPOOL/WAVES mid market price", if ((AmountOut > IssueAmount))
208+ then fraction(d8, pmt.amount, WhirlpoolFromSwap)
209+ else fraction(d8, (wavesInWhirlpool * 9), whirlInWhirlpool)), IntegerEntry("total WAVES received in wavelets", if ((IssueAmount >= AmountOut))
210+ then (pmt.amount + tryGetInteger(this, "total WAVES received in wavelets"))
211+ else tryGetInteger(this, "total WAVES received in wavelets")), IntegerEntry("total wavelets received for base treasury", if ((IssueAmount >= AmountOut))
212+ then ((pmt.amount - surplus) + tryGetInteger(this, "total wavelets received for base treasury"))
213+ else tryGetInteger(this, "total wavelets received for base treasury")), IntegerEntry("surplus received in wavelets", if ((AmountOut > IssueAmount))
214+ then getIntegerValue(this, "surplus received in wavelets")
215+ else (surplus + getIntegerValue(this, "surplus received in wavelets")))]
216+ }
217+ else throw("Strict value is not equal to itself.")
218+ }
219+ }
220+ else throw("Strict value is not equal to itself.")
221+ }
222+
223+
224+
225+@Callable(i)
226+func priceSurplusSupply () = [IntegerEntry("BT WAVES in EAST vault", WAVESinEAST), IntegerEntry("ST BURN-XTN x PepeTeam in wavelets", fraction((wavesInPool * 10), projectStake, totalStake)), IntegerEntry("ST WHIRLPOOL AMM in wavelets", fraction((wavesInWhirlpool * 10), projectStakeWhirl, totalStakeWhirl)), IntegerEntry("ST vETH", ETHinVires), IntegerEntry("ST vETH in wavelets", ETHinViresWavelets), IntegerEntry("Total ST in wavelets", tvlInWaves), IntegerEntry("WHIRLPOOL issue price in wavelets", price), IntegerEntry("WHIRLPOOL/WAVES mid market price", fraction(d8, (wavesInWhirlpool * 9), whirlInWhirlpool)), IntegerEntry("WHIRLPOOL total supply", whirlpoolSupply), IntegerEntry("Total treasury", (WAVESinEAST + tvlInWaves)), IntegerEntry("NAV WHIRLPOOL", fraction(d8, (WAVESinEAST + tvlInWaves), whirlpoolSupply)), IntegerEntry("total WAVES received in wavelets", tryGetInteger(this, "total WAVES received in wavelets")), IntegerEntry("surplus received in wavelets", tryGetInteger(this, "surplus received in wavelets")), IntegerEntry("total wavelets received for base treasury", tryGetInteger(this, "total wavelets received for base treasury")), IntegerEntry("total WAVES paid out in wavelets", tryGetInteger(this, "total WAVES paid out in wavelets")), IntegerEntry("total WAVES received", (tryGetInteger(this, "total WAVES received in wavelets") / d8)), IntegerEntry("surplus received in WAVES", (tryGetInteger(this, "surplus received in wavelets") / d8)), IntegerEntry("total WAVES received for base treasury", (tryGetInteger(this, "total wavelets received for base treasury") / d8)), IntegerEntry("total WAVES paid out in WAVES", (tryGetInteger(this, "total WAVES paid out in wavelets") / d8)), IntegerEntry("ROI basis points", tryGetInteger(this, "ROI basis points"))]
227+
228+
229+
230+@Callable(i)
231+func boostPoolAPY () = if ((i.caller != this))
232+ then throw("access only by project owner")
233+ else {
234+ let balance = if ((d8 > wavesBalance(this).available))
235+ then throw("not enough WAVES")
236+ else (wavesBalance(this).available - d8)
237+ let boost80 = fraction(balance, 80, 100)
238+ if ((boost80 == boost80))
239+ then {
240+ let amountBoost = fraction(boost80, 80, 100)
241+ if ((amountBoost == amountBoost))
242+ then {
243+ let amountOwner = fraction(boost80, 20, 100)
244+ if ((amountOwner == amountOwner))
245+ then {
246+ let boost = invoke(Address(poolboostSC), "addBoosting", [toBase58String(whirlpoolPoolId), 7], [AttachedPayment(unit, amountBoost)])
247+ if ((boost == boost))
248+ then [ScriptTransfer(Address(projectOwner), amountOwner, unit), IntegerEntry("total WAVES paid out in wavelets", (amountBoost + tryGetInteger(this, "total WAVES paid out in wavelets"))), IntegerEntry("ROI basis points", fraction(tryGetInteger(this, "total WAVES paid out in wavelets"), 10000, tryGetInteger(this, "total WAVES received in wavelets"))), IntegerEntry("Activated blockheight", height)]
249+ else throw("Strict value is not equal to itself.")
250+ }
251+ else throw("Strict value is not equal to itself.")
252+ }
253+ else throw("Strict value is not equal to itself.")
254+ }
255+ else throw("Strict value is not equal to itself.")
256+ }
257+
258+
259+
260+@Callable(i)
261+func boostPoolAPY_all () = if ((i.caller != this))
262+ then throw("access only by project owner")
263+ else {
264+ let balance = if ((d8 > wavesBalance(this).available))
265+ then throw("not enough WAVES")
266+ else (wavesBalance(this).available - d8)
267+ let amountBoost = fraction(balance, 80, 100)
268+ if ((amountBoost == amountBoost))
269+ then {
270+ let amountOwner = fraction(balance, 20, 100)
271+ if ((amountOwner == amountOwner))
272+ then {
273+ let boost = invoke(Address(poolboostSC), "addBoosting", [toBase58String(whirlpoolPoolId), 7], [AttachedPayment(unit, amountBoost)])
274+ if ((boost == boost))
275+ then [ScriptTransfer(Address(projectOwner), amountOwner, unit), IntegerEntry("total WAVES paid out in wavelets", (amountBoost + tryGetInteger(this, "total WAVES paid out in wavelets"))), IntegerEntry("ROI basis points", fraction(tryGetInteger(this, "total WAVES paid out in wavelets"), 10000, tryGetInteger(this, "total WAVES received in wavelets"))), IntegerEntry("Activated blockheight", height)]
276+ else throw("Strict value is not equal to itself.")
277+ }
278+ else throw("Strict value is not equal to itself.")
279+ }
280+ else throw("Strict value is not equal to itself.")
281+ }
282+
283+
284+
285+@Callable(i)
286+func transferPoolAPY () = if ((i.caller != this))
287+ then throw("access only by project owner")
288+ else {
289+ let balance = if ((d8 > wavesBalance(this).available))
290+ then throw("not enough WAVES")
291+ else (wavesBalance(this).available - d8)
292+ let boost80 = fraction(balance, 80, 100)
293+ if ((boost80 == boost80))
294+ then {
295+ let amountBoost = fraction(boost80, 80, 100)
296+ if ((amountBoost == amountBoost))
297+ then {
298+ let amountOwner = fraction(boost80, 20, 100)
299+ if ((amountOwner == amountOwner))
300+ then [ScriptTransfer(Address(whirlpoolPoolId), amountBoost, unit), ScriptTransfer(Address(projectOwner), amountOwner, unit), IntegerEntry("total WAVES paid out in wavelets", (amountBoost + tryGetInteger(this, "total WAVES paid out in wavelets"))), IntegerEntry("ROI basis points", fraction(tryGetInteger(this, "total WAVES paid out in wavelets"), 10000, tryGetInteger(this, "total WAVES received in wavelets"))), IntegerEntry("Activated blockheight", height)]
301+ else throw("Strict value is not equal to itself.")
302+ }
303+ else throw("Strict value is not equal to itself.")
304+ }
305+ else throw("Strict value is not equal to itself.")
306+ }
307+
308+
309+
310+@Callable(i)
311+func transferPoolAPY_all () = if ((i.caller != this))
312+ then throw("access only by project owner")
313+ else {
314+ let balance = if ((d8 > wavesBalance(this).available))
315+ then throw("not enough WAVES")
316+ else (wavesBalance(this).available - d8)
317+ let amountBoost = fraction(balance, 80, 100)
318+ if ((amountBoost == amountBoost))
319+ then {
320+ let amountOwner = fraction(balance, 20, 100)
321+ if ((amountOwner == amountOwner))
322+ then [ScriptTransfer(Address(whirlpoolPoolId), amountBoost, unit), ScriptTransfer(Address(projectOwner), amountOwner, unit), IntegerEntry("total WAVES paid out in wavelets", (amountBoost + tryGetInteger(this, "total WAVES paid out in wavelets"))), IntegerEntry("ROI basis points", fraction(tryGetInteger(this, "total WAVES paid out in wavelets"), 10000, tryGetInteger(this, "total WAVES received in wavelets"))), IntegerEntry("Activated blockheight", height)]
323+ else throw("Strict value is not equal to itself.")
324+ }
325+ else throw("Strict value is not equal to itself.")
326+ }
327+
328+
329+
330+@Callable(i)
331+func poolOneTokenSurplus () = if ((i.caller != this))
332+ then throw("access only by project owner")
333+ else {
334+ let surplusAmount = tryGetInteger(this, "surplus received in wavelets")
335+ let PoolOneTokenSurplus = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [toBase58String(burnxtnPPTpoolId)], [AttachedPayment(unit, surplusAmount)])
336+ if ((PoolOneTokenSurplus == PoolOneTokenSurplus))
337+ then [IntegerEntry("surplus received in wavelets", (tryGetInteger(this, "surplus received in wavelets") - surplusAmount))]
338+ else throw("Strict value is not equal to itself.")
339+ }
340+
341+
342+
343+@Callable(i)
344+func changeIntegerEntry (keyString,integer) = if ((i.caller != this))
345+ then throw("access only by project owner")
346+ else [IntegerEntry(keyString, integer)]
347+
348+
349+
350+@Callable(i)
351+func activate () = if ((i.caller != this))
352+ then throw("you are not allowed")
353+ else [IntegerEntry("Activated blockheight", height)]
18354
19355
20356 @Verifier(tx)
21-func verify () = {
22- let TestUser2PubKey = base58'2kpmuzw1ZbrtgAN3BrR7vbEW1XrJoJKCstL7mf7XNf2P'
23- if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
24- then true
25- else if (((getIntegerValue(this, "Activated blockheight") + 2) > height))
26- then false
27- else sigVerify(tx.bodyBytes, tx.proofs[0], TestUser2PubKey)
28- }
357+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
358+ then true
359+ else if (((tryGetInteger(this, "Activated blockheight") + unlockBlock) > height))
360+ then false
361+ else if (sigVerify(tx.bodyBytes, tx.proofs[0], heirPubKey))
362+ then true
363+ else if (((tryGetInteger(this, "Activated blockheight") + unlockBlock2) > height))
364+ then false
365+ else sigVerify(tx.bodyBytes, tx.proofs[0], PuzzleMasterPubKey)
29366

github/deemru/w8io/3ef1775 
46.89 ms