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:
OldNewDifferences
6161 let pmt = value(i.payments[0])
6262 let surplus = fraction((price - d8), pmt.amount, d8)
6363 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)
6665 let swavesBalanceBefore = assetBalance(this, swaves)
6766 if ((swavesBalanceBefore == swavesBalanceBefore))
6867 then if ((pmt.assetId != unit))
7372 then {
7473 let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)])
7574 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))]
8676 else throw("Strict value is not equal to itself.")
8777 }
8878 else throw("Strict value is not equal to itself.")
151141 then {
152142 let swavesBalanceAfter = assetBalance(this, swaves)
153143 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)])
155147 if ((boost == boost))
156- then nil
148+ then [ScriptTransfer(Address(projectowner), amountOwner, swaves)]
157149 else throw("Strict value is not equal to itself.")
158150 }
159151 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let d8 = 100000000
55
66 let poolId = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx'
77
88 let poolString = toBase58String(poolId)
99
1010 let projectowner = base58'3PEtLVxDT8mxAh1SDAn8m7JTGNkdpkaFxBk'
1111
1212 let whirlpoolPoolId = base58'change'
1313
1414 let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi'
1515
1616 let swaves = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7'
1717
1818 let waves = base58'WAVES'
1919
2020 let usdterc = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
2121
2222 let usdcerc = base58'HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW'
2323
2424 let usdtbsc = base58'A81p1LTRyoq2rDR2TNxB2dWYxsiNwCSSi8sXef2SEkwb'
2525
2626 let usdcbsc = base58'4BKKSp6NoNcrFHyorZogDyctq1fq6w7114Ym1pw6HUtC'
2727
2828 let burnxtnId = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns'
2929
3030 let eth = base58'3VuV5WTmDz47Dmdn3QpcYjzbSdipjQE4JMdNe1xZpX13'
3131
3232 let bnb = base58'66a1br3BrkoaJgP7yEar9hJcSTvJPoH6PYBLqscXcMGo'
3333
3434 let wbtc = base58'2Fge5HEBRD3XTeg7Xg3FW5yiB9HVJFQtMXiWMQo72Up6'
3535
3636 let btcb = base58'EW1uGLVo21Wd9i2Rhq8o4VKDTCQTGCGXE8DqayHGrLg8'
3737
3838 let wavesinpool = getIntegerValue(Address(poolId), (("global_" + toBase58String(waves)) + "_balance"))
3939
4040 let projectstake = getIntegerValue(Address(poolId), ("3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr" + "_indexStaked"))
4141
4242 let totalstake = getIntegerValue(Address(poolId), "global_poolToken_amount")
4343
4444 let tvlinwaves = fraction((wavesinpool * 10), projectstake, totalstake)
4545
4646 let whirlpoolsupply = match assetInfo(whirlpool) {
4747 case asset: Asset =>
4848 asset.quantity
4949 case _ =>
5050 throw("Can't find asset")
5151 }
5252
5353 let price = if (((fraction((tvlinwaves + getIntegerValue(this, "surplus received in wavelets")), d8, whirlpoolsupply) + d8) >= getIntegerValue(this, "WHIRLPOOL issue price in wavelets")))
5454 then (fraction((tvlinwaves + getIntegerValue(this, "surplus received in wavelets")), d8, whirlpoolsupply) + d8)
5555 else getIntegerValue(this, "WHIRLPOOL issue price in wavelets")
5656
5757 let bonuspercentage = 10
5858
5959 @Callable(i)
6060 func buyWHIRLPOOLwithWAVES () = {
6161 let pmt = value(i.payments[0])
6262 let surplus = fraction((price - d8), pmt.amount, d8)
6363 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)
6665 let swavesBalanceBefore = assetBalance(this, swaves)
6766 if ((swavesBalanceBefore == swavesBalanceBefore))
6867 then if ((pmt.assetId != unit))
6968 then throw("attach WAVES token only")
7069 else {
7170 let SupplyWavesMainPool = invoke(Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH'), "supply", nil, [AttachedPayment(unit, supplyamount)])
7271 if ((SupplyWavesMainPool == SupplyWavesMainPool))
7372 then {
7473 let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)])
7574 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))]
8676 else throw("Strict value is not equal to itself.")
8777 }
8878 else throw("Strict value is not equal to itself.")
8979 }
9080 else throw("Strict value is not equal to itself.")
9181 }
9282
9383
9484
9585 @Callable(i)
9686 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"))]
9787
9888
9989
10090 @Callable(i)
10191 func PoolOneTokenSurplus () = if ((i.caller != this))
10292 then throw("access only by project owner")
10393 else {
10494 let surplusamount = getIntegerValue(this, "surplus received in wavelets")
10595 let PoolOneTokenSurplus = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [poolString], [AttachedPayment(unit, surplusamount)])
10696 if ((PoolOneTokenSurplus == PoolOneTokenSurplus))
10797 then [IntegerEntry("surplus received in wavelets", (getIntegerValue(this, "surplus received in wavelets") - surplusamount))]
10898 else throw("Strict value is not equal to itself.")
10999 }
110100
111101
112102
113103 @Callable(i)
114104 func BoostPoolAPY () = if ((i.caller != this))
115105 then throw("access only by project owner")
116106 else {
117107 let swavesBalanceBefore = assetBalance(this, swaves)
118108 if ((swavesBalanceBefore == swavesBalanceBefore))
119109 then {
120110 let swapburnxtn = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(burnxtnId, assetBalance(this, burnxtnId))])
121111 if ((swapburnxtn == swapburnxtn))
122112 then {
123113 let swapusdterc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdterc, assetBalance(this, usdterc))])
124114 if ((swapusdterc == swapusdterc))
125115 then {
126116 let swapusdtbsc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdtbsc, assetBalance(this, usdtbsc))])
127117 if ((swapusdtbsc == swapusdtbsc))
128118 then {
129119 let swapusdcerc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdcerc, assetBalance(this, usdcerc))])
130120 if ((swapusdcerc == swapusdcerc))
131121 then {
132122 let swapusdcbsc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdcbsc, assetBalance(this, usdcbsc))])
133123 if ((swapusdcbsc == swapusdcbsc))
134124 then {
135125 let swapeth = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(eth, assetBalance(this, eth))])
136126 if ((swapeth == swapeth))
137127 then {
138128 let swapbnb = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(bnb, assetBalance(this, bnb))])
139129 if ((swapbnb == swapbnb))
140130 then {
141131 let swapwbtc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(wbtc, assetBalance(this, wbtc))])
142132 if ((swapwbtc == swapwbtc))
143133 then {
144134 let swapbtcb = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(btcb, assetBalance(this, btcb))])
145135 if ((swapbtcb == swapbtcb))
146136 then {
147137 let SwavesDeposit = invoke(Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV'), "deposit", nil, [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0))
148138 then (wavesBalance(this).available - d8)
149139 else 0)])
150140 if ((SwavesDeposit == SwavesDeposit))
151141 then {
152142 let swavesBalanceAfter = assetBalance(this, swaves)
153143 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)])
155147 if ((boost == boost))
156- then nil
148+ then [ScriptTransfer(Address(projectowner), amountOwner, swaves)]
157149 else throw("Strict value is not equal to itself.")
158150 }
159151 else throw("Strict value is not equal to itself.")
160152 }
161153 else throw("Strict value is not equal to itself.")
162154 }
163155 else throw("Strict value is not equal to itself.")
164156 }
165157 else throw("Strict value is not equal to itself.")
166158 }
167159 else throw("Strict value is not equal to itself.")
168160 }
169161 else throw("Strict value is not equal to itself.")
170162 }
171163 else throw("Strict value is not equal to itself.")
172164 }
173165 else throw("Strict value is not equal to itself.")
174166 }
175167 else throw("Strict value is not equal to itself.")
176168 }
177169 else throw("Strict value is not equal to itself.")
178170 }
179171 else throw("Strict value is not equal to itself.")
180172 }
181173
182174

github/deemru/w8io/3ef1775 
56.64 ms