tx · EmBDvhh7wBDyx8dUVtSxfEmd4EejCD87CCqTHAW6xTdF 3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr: -0.01000000 Waves 2023.08.28 17:37 [3796304] smart account 3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr > SELF 0.00000000 Waves
{ "type": 13, "id": "EmBDvhh7wBDyx8dUVtSxfEmd4EejCD87CCqTHAW6xTdF", "fee": 1000000, "feeAssetId": null, "timestamp": 1693233498259, "version": 2, "chainId": 87, "sender": "3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr", "senderPublicKey": "A5AvSRrbVauQKBhPtuWTLTQdE5ka4nVCSDaVANpFur26", "proofs": [ "3Fbp1SYJeBXmAvM3FU7BbqR2LvBWfkrYQKT9TGSGh96VRi9h7sewkgJnF3GJ6XjHkonGEyGU9kNkZ2WYLJoHPeLL" ], "script": "base64:BgIKCAISABIAEgASABgAAmQ4AIDC1y8ABnBvb2xJZAEaAVf1RmgngA1o304mdXq0odMoMeAJv/V5eTcACnBvb2xTdHJpbmcJANgEAQUGcG9vbElkAAxwcm9qZWN0b3duZXIBGgFXjh3mUco4I87DkcPEVovVg9NviFb/Nt0LAA93aGlybHBvb2xQb29sSWQBBQV0o/bXAAl3aGlybHBvb2wBIFnjjdzCtSO6ShTcxNCvFAnmZOYEviUGCyZO5VBtl1nHAAZzd2F2ZXMBIAgfyPcWMO1Rwikb7Kwaj/yQcRxZOC3rIYGwN0HwRdFKAAV3YXZlcwEEE6vZMwAHdXNkdGVyYwEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kAB3VzZGNlcmMBIPG/dI9pAmuur847sG/zXfDFSqExbFa33PoqSqHrkRpJAAd1c2R0YnNjASCHhSoUXb0b4GnDpNrWG3dP3AUEm6wF30Gwr4DASTDpogAHdXNkY2JzYwEgLzeUxDAO1B6GL00NeF395F5CPEPe5iQcatRgd4br5bUACWJ1cm54dG5JZAEgJE91eWp+Mzm4+wz/hKlxXF7KLd4zoMRdafnqRBHsTFQAA2V0aAEgJR76/9ghyXCe+8C03j63q4aeBTtm79wH/FHj9agzKHIAA2JuYgEgS7ep4jwDLeZJ/TwoM/wRUkbi6v6x+mu9cBafRBfVHhwABHdidGMBIBKeo3EHNGSP6mN2enCiK9cwBs75vPQVGctmd0xybol/AARidGNiASDIlsraYoy6SPYFNHcPBbtsEP/v2GRaY5157d4CGOemoQALd2F2ZXNpbnBvb2wJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQdBZGRyZXNzAQUGcG9vbElkCQCsAgIJAKwCAgIHZ2xvYmFsXwkA2AQBBQV3YXZlcwIIX2JhbGFuY2UADHByb2plY3RzdGFrZQkBEUBleHRyTmF0aXZlKDEwNTApAgkBB0FkZHJlc3MBBQZwb29sSWQJAKwCAgIjM1BBa21KbmlNZ25uQWVqNXBZZjJqRllrQ2Jab3c1cHQ5dHICDF9pbmRleFN0YWtlZAAKdG90YWxzdGFrZQkBEUBleHRyTmF0aXZlKDEwNTApAgkBB0FkZHJlc3MBBQZwb29sSWQCF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50AAp0dmxpbndhdmVzCQBrAwkAaAIFC3dhdmVzaW5wb29sAAoFDHByb2plY3RzdGFrZQUKdG90YWxzdGFrZQAPd2hpcmxwb29sc3VwcGx5BAckbWF0Y2gwCQDsBwEFCXdoaXJscG9vbAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEENhbid0IGZpbmQgYXNzZXQABXByaWNlAwkAZwIJAGQCCQBrAwkAZAIFCnR2bGlud2F2ZXMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFAmQ4BQ93aGlybHBvb2xzdXBwbHkFAmQ4CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMJAGQCCQBrAwkAZAIFCnR2bGlud2F2ZXMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFAmQ4BQ93aGlybHBvb2xzdXBwbHkFAmQ4CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMAD2JvbnVzcGVyY2VudGFnZQAKBAFpARVidXlXSElSTFBPT0x3aXRoV0FWRVMABANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQHc3VycGx1cwkAawMJAGUCBQVwcmljZQUCZDgIBQNwbXQGYW1vdW50BQJkOAQGYW1vdW50CQBrAwgFA3BtdAZhbW91bnQFAmQ4BQVwcmljZQQMc3VwcGx5YW1vdW50CQBpAgkAZQIIBQNwbXQGYW1vdW50BQdzdXJwbHVzAAIEE3N3YXZlc0JhbGFuY2VCZWZvcmUJAPAHAgUEdGhpcwUGc3dhdmVzAwkAAAIFE3N3YXZlc0JhbGFuY2VCZWZvcmUFE3N3YXZlc0JhbGFuY2VCZWZvcmUDCQECIT0CCAUDcG10B2Fzc2V0SWQFBHVuaXQJAAIBAhdhdHRhY2ggV0FWRVMgdG9rZW4gb25seQQTU3VwcGx5V2F2ZXNNYWluUG9vbAkA/AcECQEHQWRkcmVzcwEBGgFXIJRcSq3P9Eg5O4hAs7/b7oxQoKdqz9roAgZzdXBwbHkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUMc3VwcGx5YW1vdW50BQNuaWwDCQAAAgUTU3VwcGx5V2F2ZXNNYWluUG9vbAUTU3VwcGx5V2F2ZXNNYWluUG9vbAQYU3VwcGx5V2F2ZXNXYXZlc0RlZmlQb29sCQD8BwQJAQdBZGRyZXNzAQEaAVcZCzuPP83F9QBSQ7jrpozIrL8UOTE+JL4CBnN1cHBseQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQxzdXBwbHlhbW91bnQFA25pbAMJAAACBRhTdXBwbHlXYXZlc1dhdmVzRGVmaVBvb2wFGFN1cHBseVdhdmVzV2F2ZXNEZWZpUG9vbAkAzAgCCQEHUmVpc3N1ZQMFCXdoaXJscG9vbAkAawMFBmFtb3VudAkAZAIAZAUPYm9udXNwZXJjZW50YWdlAGQGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAawMFBmFtb3VudAkAZAIAZAUPYm9udXNwZXJjZW50YWdlAGQFCXdoaXJscG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgIhV0hJUkxQT09MIGlzc3VlIHByaWNlIGluIHdhdmVsZXRzBQVwcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIic3VycGx1cyB0cmVhc3VyeSB2YWx1ZSBpbiB3YXZlbGV0cwUKdHZsaW53YXZlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgIWV0hJUkxQT09MIHRvdGFsIHN1cHBseQUPd2hpcmxwb29sc3VwcGx5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzCQBkAgUHc3VycGx1cwkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIed2F2ZWxldHMgcmVjZWl2ZWQgZm9yIHRyZWFzdXJ5CQBlAgUGYW1vdW50BQdzdXJwbHVzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESUHJpY2VTdXJwbHVzU3VwcGx5AAkAzAgCCQEMSW50ZWdlckVudHJ5AgINV0FWRVMgaW4gcG9vbAULd2F2ZXNpbnBvb2wJAMwIAgkBDEludGVnZXJFbnRyeQICDHByb2plY3RzdGFrZQUMcHJvamVjdHN0YWtlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgp0b3RhbHN0YWtlBQp0b3RhbHN0YWtlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiJzdXJwbHVzIHRyZWFzdXJ5IHZhbHVlIGluIHdhdmVsZXRzBQp0dmxpbndhdmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZXSElSTFBPT0wgdG90YWwgc3VwcGx5BQ93aGlybHBvb2xzdXBwbHkJAMwIAgkBDEludGVnZXJFbnRyeQICHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMJAMwIAgkBDEludGVnZXJFbnRyeQICHndhdmVsZXRzIHJlY2VpdmVkIGZvciB0cmVhc3VyeQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIfc3dhdmVsZXRzIHJlY2VpdmVkIGZvciB0cmVhc3VyeQUDbmlsAWkBE1Bvb2xPbmVUb2tlblN1cnBsdXMAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQNc3VycGx1c2Ftb3VudAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwQTUG9vbE9uZVRva2VuU3VycGx1cwkA/AcECQEHQWRkcmVzcwEBGgFX/SXDvU5hlEHvul4SY4/FOW9JtYg69eltAiFnZW5lcmF0ZUluZGV4V2l0aE9uZVRva2VuQW5kU3Rha2UJAMwIAgUKcG9vbFN0cmluZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQ1zdXJwbHVzYW1vdW50BQNuaWwDCQAAAgUTUG9vbE9uZVRva2VuU3VycGx1cwUTUG9vbE9uZVRva2VuU3VycGx1cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwkAZQIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFDXN1cnBsdXNhbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxCb29zdFBvb2xBUFkAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQTc3dhdmVzQmFsYW5jZUJlZm9yZQkA8AcCBQR0aGlzBQZzd2F2ZXMDCQAAAgUTc3dhdmVzQmFsYW5jZUJlZm9yZQUTc3dhdmVzQmFsYW5jZUJlZm9yZQQLc3dhcGJ1cm54dG4JAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgIFd2F2ZXMJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCWJ1cm54dG5JZAkA8AcCBQR0aGlzBQlidXJueHRuSWQFA25pbAMJAAACBQtzd2FwYnVybnh0bgULc3dhcGJ1cm54dG4EC3N3YXB1c2R0ZXJjCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAICBXdhdmVzCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQd1c2R0ZXJjCQDwBwIFBHRoaXMFB3VzZHRlcmMFA25pbAMJAAACBQtzd2FwdXNkdGVyYwULc3dhcHVzZHRlcmMEC3N3YXB1c2R0YnNjCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAICBXdhdmVzCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQd1c2R0YnNjCQDwBwIFBHRoaXMFB3VzZHRic2MFA25pbAMJAAACBQtzd2FwdXNkdGJzYwULc3dhcHVzZHRic2MEC3N3YXB1c2RjZXJjCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAICBXdhdmVzCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQd1c2RjZXJjCQDwBwIFBHRoaXMFB3VzZGNlcmMFA25pbAMJAAACBQtzd2FwdXNkY2VyYwULc3dhcHVzZGNlcmMEC3N3YXB1c2RjYnNjCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAICBXdhdmVzCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQd1c2RjYnNjCQDwBwIFBHRoaXMFB3VzZGNic2MFA25pbAMJAAACBQtzd2FwdXNkY2JzYwULc3dhcHVzZGNic2MEB3N3YXBldGgJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgIFd2F2ZXMJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFA2V0aAkA8AcCBQR0aGlzBQNldGgFA25pbAMJAAACBQdzd2FwZXRoBQdzd2FwZXRoBAdzd2FwYm5iCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAICBXdhdmVzCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQNibmIJAPAHAgUEdGhpcwUDYm5iBQNuaWwDCQAAAgUHc3dhcGJuYgUHc3dhcGJuYgQIc3dhcHdidGMJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgIFd2F2ZXMJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHdidGMJAPAHAgUEdGhpcwUEd2J0YwUDbmlsAwkAAAIFCHN3YXB3YnRjBQhzd2Fwd2J0YwQIc3dhcGJ0Y2IJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgIFd2F2ZXMJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBGJ0Y2IJAPAHAgUEdGhpcwUEYnRjYgUDbmlsAwkAAAIFCHN3YXBidGNiBQhzd2FwYnRjYgQNU3dhdmVzRGVwb3NpdAkA/AcECQEHQWRkcmVzcwEBGgFXfcl7kxR5/+dR8bFKx2/5ah2AlUfPWCN+AgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQDCQBmAgkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAAACQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4AAAFA25pbAMJAAACBQ1Td2F2ZXNEZXBvc2l0BQ1Td2F2ZXNEZXBvc2l0BBJzd2F2ZXNCYWxhbmNlQWZ0ZXIJAPAHAgUEdGhpcwUGc3dhdmVzBBBzd2F2ZXNEaWZmZXJlbmNlCQBlAgUSc3dhdmVzQmFsYW5jZUFmdGVyBRNzd2F2ZXNCYWxhbmNlQmVmb3JlBAthbW91bnRCb29zdAkAawMFEHN3YXZlc0RpZmZlcmVuY2UAUABkBAthbW91bnRPd25lcgkAawMFEHN3YXZlc0RpZmZlcmVuY2UAFABkBAVib29zdAkA/AcECQEHQWRkcmVzcwEFD3doaXJscG9vbFBvb2xJZAILYWRkQm9vc3RpbmcJAMwIAgAeBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBnN3YXZlcwULYW1vdW50Qm9vc3QFA25pbAMJAAACBQVib29zdAUFYm9vc3QJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQxwcm9qZWN0b3duZXIFC2Ftb3VudE93bmVyBQZzd2F2ZXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgDkpD8C", "height": 3796304, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5Pt2snR2GCWPf3HeMe3iknKimeAv3Dt7bXzpUn9F4RyU Next: 3xf9bdxd43emt1oMJuVtByyiVhQv62ft5P4tojeH51FJ Diff:
Old | New | Differences | |
---|---|---|---|
61 | 61 | let pmt = value(i.payments[0]) | |
62 | 62 | let surplus = fraction((price - d8), pmt.amount, d8) | |
63 | 63 | let amount = fraction(pmt.amount, d8, price) | |
64 | - | let toLP = fraction(amount, fraction(25, d8, 9), (100 * d8)) | |
65 | - | let supplyamount = (((pmt.amount - toLP) - surplus) / 2) | |
64 | + | let supplyamount = ((pmt.amount - surplus) / 2) | |
66 | 65 | let swavesBalanceBefore = assetBalance(this, swaves) | |
67 | 66 | if ((swavesBalanceBefore == swavesBalanceBefore)) | |
68 | 67 | then if ((pmt.assetId != unit)) | |
73 | 72 | then { | |
74 | 73 | let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)]) | |
75 | 74 | if ((SupplyWavesWavesDefiPool == SupplyWavesWavesDefiPool)) | |
76 | - | then { | |
77 | - | let SwavesDeposit = invoke(Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV'), "deposit", nil, [AttachedPayment(unit, toLP)]) | |
78 | - | if ((SwavesDeposit == SwavesDeposit)) | |
79 | - | then { | |
80 | - | let swavesBalanceAfter = assetBalance(this, swaves) | |
81 | - | let swavesDifference = (swavesBalanceAfter - swavesBalanceBefore) | |
82 | - | [Reissue(whirlpool, fraction((amount + (amount / 4)), (100 + bonuspercentage), 100), true), ScriptTransfer(i.caller, fraction(amount, (100 + bonuspercentage), 100), whirlpool), ScriptTransfer(Address(projectowner), swavesDifference, swaves), ScriptTransfer(Address(projectowner), fraction((amount / 4), (100 + bonuspercentage), 100), whirlpool), IntegerEntry("WHIRLPOOL issue price in wavelets", price), IntegerEntry("surplus treasury value in wavelets", tvlinwaves), IntegerEntry("WHIRLPOOL total supply", whirlpoolsupply), IntegerEntry("surplus received in wavelets", (surplus + getIntegerValue(this, "surplus received in wavelets"))), IntegerEntry("wavelets received for treasury", (amount - surplus))] | |
83 | - | } | |
84 | - | else throw("Strict value is not equal to itself.") | |
85 | - | } | |
75 | + | then [Reissue(whirlpool, fraction(amount, (100 + bonuspercentage), 100), true), ScriptTransfer(i.caller, fraction(amount, (100 + bonuspercentage), 100), whirlpool), IntegerEntry("WHIRLPOOL issue price in wavelets", price), IntegerEntry("surplus treasury value in wavelets", tvlinwaves), IntegerEntry("WHIRLPOOL total supply", whirlpoolsupply), IntegerEntry("surplus received in wavelets", (surplus + getIntegerValue(this, "surplus received in wavelets"))), IntegerEntry("wavelets received for treasury", (amount - surplus))] | |
86 | 76 | else throw("Strict value is not equal to itself.") | |
87 | 77 | } | |
88 | 78 | else throw("Strict value is not equal to itself.") | |
151 | 141 | then { | |
152 | 142 | let swavesBalanceAfter = assetBalance(this, swaves) | |
153 | 143 | let swavesDifference = (swavesBalanceAfter - swavesBalanceBefore) | |
154 | - | let boost = invoke(Address(whirlpoolPoolId), "addBoosting", [30], [AttachedPayment(swaves, swavesDifference)]) | |
144 | + | let amountBoost = fraction(swavesDifference, 80, 100) | |
145 | + | let amountOwner = fraction(swavesDifference, 20, 100) | |
146 | + | let boost = invoke(Address(whirlpoolPoolId), "addBoosting", [30], [AttachedPayment(swaves, amountBoost)]) | |
155 | 147 | if ((boost == boost)) | |
156 | - | then | |
148 | + | then [ScriptTransfer(Address(projectowner), amountOwner, swaves)] | |
157 | 149 | else throw("Strict value is not equal to itself.") | |
158 | 150 | } | |
159 | 151 | else throw("Strict value is not equal to itself.") |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let d8 = 100000000 | |
5 | 5 | ||
6 | 6 | let poolId = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx' | |
7 | 7 | ||
8 | 8 | let poolString = toBase58String(poolId) | |
9 | 9 | ||
10 | 10 | let projectowner = base58'3PEtLVxDT8mxAh1SDAn8m7JTGNkdpkaFxBk' | |
11 | 11 | ||
12 | 12 | let whirlpoolPoolId = base58'change' | |
13 | 13 | ||
14 | 14 | let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi' | |
15 | 15 | ||
16 | 16 | let swaves = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7' | |
17 | 17 | ||
18 | 18 | let waves = base58'WAVES' | |
19 | 19 | ||
20 | 20 | let usdterc = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
21 | 21 | ||
22 | 22 | let usdcerc = base58'HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW' | |
23 | 23 | ||
24 | 24 | let usdtbsc = base58'A81p1LTRyoq2rDR2TNxB2dWYxsiNwCSSi8sXef2SEkwb' | |
25 | 25 | ||
26 | 26 | let usdcbsc = base58'4BKKSp6NoNcrFHyorZogDyctq1fq6w7114Ym1pw6HUtC' | |
27 | 27 | ||
28 | 28 | let burnxtnId = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns' | |
29 | 29 | ||
30 | 30 | let eth = base58'3VuV5WTmDz47Dmdn3QpcYjzbSdipjQE4JMdNe1xZpX13' | |
31 | 31 | ||
32 | 32 | let bnb = base58'66a1br3BrkoaJgP7yEar9hJcSTvJPoH6PYBLqscXcMGo' | |
33 | 33 | ||
34 | 34 | let wbtc = base58'2Fge5HEBRD3XTeg7Xg3FW5yiB9HVJFQtMXiWMQo72Up6' | |
35 | 35 | ||
36 | 36 | let btcb = base58'EW1uGLVo21Wd9i2Rhq8o4VKDTCQTGCGXE8DqayHGrLg8' | |
37 | 37 | ||
38 | 38 | let wavesinpool = getIntegerValue(Address(poolId), (("global_" + toBase58String(waves)) + "_balance")) | |
39 | 39 | ||
40 | 40 | let projectstake = getIntegerValue(Address(poolId), ("3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr" + "_indexStaked")) | |
41 | 41 | ||
42 | 42 | let totalstake = getIntegerValue(Address(poolId), "global_poolToken_amount") | |
43 | 43 | ||
44 | 44 | let tvlinwaves = fraction((wavesinpool * 10), projectstake, totalstake) | |
45 | 45 | ||
46 | 46 | let whirlpoolsupply = match assetInfo(whirlpool) { | |
47 | 47 | case asset: Asset => | |
48 | 48 | asset.quantity | |
49 | 49 | case _ => | |
50 | 50 | throw("Can't find asset") | |
51 | 51 | } | |
52 | 52 | ||
53 | 53 | let price = if (((fraction((tvlinwaves + getIntegerValue(this, "surplus received in wavelets")), d8, whirlpoolsupply) + d8) >= getIntegerValue(this, "WHIRLPOOL issue price in wavelets"))) | |
54 | 54 | then (fraction((tvlinwaves + getIntegerValue(this, "surplus received in wavelets")), d8, whirlpoolsupply) + d8) | |
55 | 55 | else getIntegerValue(this, "WHIRLPOOL issue price in wavelets") | |
56 | 56 | ||
57 | 57 | let bonuspercentage = 10 | |
58 | 58 | ||
59 | 59 | @Callable(i) | |
60 | 60 | func buyWHIRLPOOLwithWAVES () = { | |
61 | 61 | let pmt = value(i.payments[0]) | |
62 | 62 | let surplus = fraction((price - d8), pmt.amount, d8) | |
63 | 63 | let amount = fraction(pmt.amount, d8, price) | |
64 | - | let toLP = fraction(amount, fraction(25, d8, 9), (100 * d8)) | |
65 | - | let supplyamount = (((pmt.amount - toLP) - surplus) / 2) | |
64 | + | let supplyamount = ((pmt.amount - surplus) / 2) | |
66 | 65 | let swavesBalanceBefore = assetBalance(this, swaves) | |
67 | 66 | if ((swavesBalanceBefore == swavesBalanceBefore)) | |
68 | 67 | then if ((pmt.assetId != unit)) | |
69 | 68 | then throw("attach WAVES token only") | |
70 | 69 | else { | |
71 | 70 | let SupplyWavesMainPool = invoke(Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH'), "supply", nil, [AttachedPayment(unit, supplyamount)]) | |
72 | 71 | if ((SupplyWavesMainPool == SupplyWavesMainPool)) | |
73 | 72 | then { | |
74 | 73 | let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)]) | |
75 | 74 | if ((SupplyWavesWavesDefiPool == SupplyWavesWavesDefiPool)) | |
76 | - | then { | |
77 | - | let SwavesDeposit = invoke(Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV'), "deposit", nil, [AttachedPayment(unit, toLP)]) | |
78 | - | if ((SwavesDeposit == SwavesDeposit)) | |
79 | - | then { | |
80 | - | let swavesBalanceAfter = assetBalance(this, swaves) | |
81 | - | let swavesDifference = (swavesBalanceAfter - swavesBalanceBefore) | |
82 | - | [Reissue(whirlpool, fraction((amount + (amount / 4)), (100 + bonuspercentage), 100), true), ScriptTransfer(i.caller, fraction(amount, (100 + bonuspercentage), 100), whirlpool), ScriptTransfer(Address(projectowner), swavesDifference, swaves), ScriptTransfer(Address(projectowner), fraction((amount / 4), (100 + bonuspercentage), 100), whirlpool), IntegerEntry("WHIRLPOOL issue price in wavelets", price), IntegerEntry("surplus treasury value in wavelets", tvlinwaves), IntegerEntry("WHIRLPOOL total supply", whirlpoolsupply), IntegerEntry("surplus received in wavelets", (surplus + getIntegerValue(this, "surplus received in wavelets"))), IntegerEntry("wavelets received for treasury", (amount - surplus))] | |
83 | - | } | |
84 | - | else throw("Strict value is not equal to itself.") | |
85 | - | } | |
75 | + | then [Reissue(whirlpool, fraction(amount, (100 + bonuspercentage), 100), true), ScriptTransfer(i.caller, fraction(amount, (100 + bonuspercentage), 100), whirlpool), IntegerEntry("WHIRLPOOL issue price in wavelets", price), IntegerEntry("surplus treasury value in wavelets", tvlinwaves), IntegerEntry("WHIRLPOOL total supply", whirlpoolsupply), IntegerEntry("surplus received in wavelets", (surplus + getIntegerValue(this, "surplus received in wavelets"))), IntegerEntry("wavelets received for treasury", (amount - surplus))] | |
86 | 76 | else throw("Strict value is not equal to itself.") | |
87 | 77 | } | |
88 | 78 | else throw("Strict value is not equal to itself.") | |
89 | 79 | } | |
90 | 80 | else throw("Strict value is not equal to itself.") | |
91 | 81 | } | |
92 | 82 | ||
93 | 83 | ||
94 | 84 | ||
95 | 85 | @Callable(i) | |
96 | 86 | func PriceSurplusSupply () = [IntegerEntry("WAVES in pool", wavesinpool), IntegerEntry("projectstake", projectstake), IntegerEntry("totalstake", totalstake), IntegerEntry("WHIRLPOOL issue price in wavelets", price), IntegerEntry("surplus treasury value in wavelets", tvlinwaves), IntegerEntry("WHIRLPOOL total supply", whirlpoolsupply), IntegerEntry("surplus received in wavelets", getIntegerValue(this, "surplus received in wavelets")), IntegerEntry("wavelets received for treasury", getIntegerValue(this, "swavelets received for treasury"))] | |
97 | 87 | ||
98 | 88 | ||
99 | 89 | ||
100 | 90 | @Callable(i) | |
101 | 91 | func PoolOneTokenSurplus () = if ((i.caller != this)) | |
102 | 92 | then throw("access only by project owner") | |
103 | 93 | else { | |
104 | 94 | let surplusamount = getIntegerValue(this, "surplus received in wavelets") | |
105 | 95 | let PoolOneTokenSurplus = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [poolString], [AttachedPayment(unit, surplusamount)]) | |
106 | 96 | if ((PoolOneTokenSurplus == PoolOneTokenSurplus)) | |
107 | 97 | then [IntegerEntry("surplus received in wavelets", (getIntegerValue(this, "surplus received in wavelets") - surplusamount))] | |
108 | 98 | else throw("Strict value is not equal to itself.") | |
109 | 99 | } | |
110 | 100 | ||
111 | 101 | ||
112 | 102 | ||
113 | 103 | @Callable(i) | |
114 | 104 | func BoostPoolAPY () = if ((i.caller != this)) | |
115 | 105 | then throw("access only by project owner") | |
116 | 106 | else { | |
117 | 107 | let swavesBalanceBefore = assetBalance(this, swaves) | |
118 | 108 | if ((swavesBalanceBefore == swavesBalanceBefore)) | |
119 | 109 | then { | |
120 | 110 | let swapburnxtn = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(burnxtnId, assetBalance(this, burnxtnId))]) | |
121 | 111 | if ((swapburnxtn == swapburnxtn)) | |
122 | 112 | then { | |
123 | 113 | let swapusdterc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdterc, assetBalance(this, usdterc))]) | |
124 | 114 | if ((swapusdterc == swapusdterc)) | |
125 | 115 | then { | |
126 | 116 | let swapusdtbsc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdtbsc, assetBalance(this, usdtbsc))]) | |
127 | 117 | if ((swapusdtbsc == swapusdtbsc)) | |
128 | 118 | then { | |
129 | 119 | let swapusdcerc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdcerc, assetBalance(this, usdcerc))]) | |
130 | 120 | if ((swapusdcerc == swapusdcerc)) | |
131 | 121 | then { | |
132 | 122 | let swapusdcbsc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdcbsc, assetBalance(this, usdcbsc))]) | |
133 | 123 | if ((swapusdcbsc == swapusdcbsc)) | |
134 | 124 | then { | |
135 | 125 | let swapeth = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(eth, assetBalance(this, eth))]) | |
136 | 126 | if ((swapeth == swapeth)) | |
137 | 127 | then { | |
138 | 128 | let swapbnb = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(bnb, assetBalance(this, bnb))]) | |
139 | 129 | if ((swapbnb == swapbnb)) | |
140 | 130 | then { | |
141 | 131 | let swapwbtc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(wbtc, assetBalance(this, wbtc))]) | |
142 | 132 | if ((swapwbtc == swapwbtc)) | |
143 | 133 | then { | |
144 | 134 | let swapbtcb = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(btcb, assetBalance(this, btcb))]) | |
145 | 135 | if ((swapbtcb == swapbtcb)) | |
146 | 136 | then { | |
147 | 137 | let SwavesDeposit = invoke(Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV'), "deposit", nil, [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0)) | |
148 | 138 | then (wavesBalance(this).available - d8) | |
149 | 139 | else 0)]) | |
150 | 140 | if ((SwavesDeposit == SwavesDeposit)) | |
151 | 141 | then { | |
152 | 142 | let swavesBalanceAfter = assetBalance(this, swaves) | |
153 | 143 | let swavesDifference = (swavesBalanceAfter - swavesBalanceBefore) | |
154 | - | let boost = invoke(Address(whirlpoolPoolId), "addBoosting", [30], [AttachedPayment(swaves, swavesDifference)]) | |
144 | + | let amountBoost = fraction(swavesDifference, 80, 100) | |
145 | + | let amountOwner = fraction(swavesDifference, 20, 100) | |
146 | + | let boost = invoke(Address(whirlpoolPoolId), "addBoosting", [30], [AttachedPayment(swaves, amountBoost)]) | |
155 | 147 | if ((boost == boost)) | |
156 | - | then | |
148 | + | then [ScriptTransfer(Address(projectowner), amountOwner, swaves)] | |
157 | 149 | else throw("Strict value is not equal to itself.") | |
158 | 150 | } | |
159 | 151 | else throw("Strict value is not equal to itself.") | |
160 | 152 | } | |
161 | 153 | else throw("Strict value is not equal to itself.") | |
162 | 154 | } | |
163 | 155 | else throw("Strict value is not equal to itself.") | |
164 | 156 | } | |
165 | 157 | else throw("Strict value is not equal to itself.") | |
166 | 158 | } | |
167 | 159 | else throw("Strict value is not equal to itself.") | |
168 | 160 | } | |
169 | 161 | else throw("Strict value is not equal to itself.") | |
170 | 162 | } | |
171 | 163 | else throw("Strict value is not equal to itself.") | |
172 | 164 | } | |
173 | 165 | else throw("Strict value is not equal to itself.") | |
174 | 166 | } | |
175 | 167 | else throw("Strict value is not equal to itself.") | |
176 | 168 | } | |
177 | 169 | else throw("Strict value is not equal to itself.") | |
178 | 170 | } | |
179 | 171 | else throw("Strict value is not equal to itself.") | |
180 | 172 | } | |
181 | 173 | ||
182 | 174 |
github/deemru/w8io/3ef1775 56.64 ms ◑