tx · 8PvYYdYYhteKsXaXJFTmv7wbYXJugzB12d9zk2wJ7qD8

3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr:  -0.01000000 Waves

2023.09.06 15:46 [3809257] smart account 3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr > SELF 0.00000000 Waves

{ "type": 13, "id": "8PvYYdYYhteKsXaXJFTmv7wbYXJugzB12d9zk2wJ7qD8", "fee": 1000000, "feeAssetId": null, "timestamp": 1694004410174, "version": 2, "chainId": 87, "sender": "3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr", "senderPublicKey": "A5AvSRrbVauQKBhPtuWTLTQdE5ka4nVCSDaVANpFur26", "proofs": [ "4v8CfR33fBuRhHSEZsK4eXxzBANUtEU1PaKMyr3o7xHSno8kgJ9L3caeamqDUSPemKwyQ2iQsTWyDHHu2YAf8mXp" ], "script": "base64:BgIKCAISABIAEgASABcAAmQ4AIDC1y8ABnBvb2xJZAEaAVf1RmgngA1o304mdXq0odMoMeAJv/V5eTcACnBvb2xTdHJpbmcJANgEAQUGcG9vbElkAAxwcm9qZWN0b3duZXIBGgFXjh3mUco4I87DkcPEVovVg9NviFb/Nt0LAA93aGlybHBvb2xQb29sSWQBBQV0o/bXAAl3aGlybHBvb2wBIFnjjdzCtSO6ShTcxNCvFAnmZOYEviUGCyZO5VBtl1nHAAZzd2F2ZXMBIAgfyPcWMO1Rwikb7Kwaj/yQcRxZOC3rIYGwN0HwRdFKAAV3YXZlcwEEE6vZMwAHdXNkdGVyYwEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kAB3VzZGNlcmMBIPG/dI9pAmuur847sG/zXfDFSqExbFa33PoqSqHrkRpJAAd1c2R0YnNjASCHhSoUXb0b4GnDpNrWG3dP3AUEm6wF30Gwr4DASTDpogAHdXNkY2JzYwEgLzeUxDAO1B6GL00NeF395F5CPEPe5iQcatRgd4br5bUACWJ1cm54dG5JZAEgJE91eWp+Mzm4+wz/hKlxXF7KLd4zoMRdafnqRBHsTFQAA2V0aAEgJR76/9ghyXCe+8C03j63q4aeBTtm79wH/FHj9agzKHIAA2JuYgEgS7ep4jwDLeZJ/TwoM/wRUkbi6v6x+mu9cBafRBfVHhwABHdidGMBIBKeo3EHNGSP6mN2enCiK9cwBs75vPQVGctmd0xybol/AARidGNiASDIlsraYoy6SPYFNHcPBbtsEP/v2GRaY5157d4CGOemoQALd2F2ZXNpbnBvb2wJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQdBZGRyZXNzAQUGcG9vbElkCQCsAgIJAKwCAgIHZ2xvYmFsXwkA2AQBBQV3YXZlcwIIX2JhbGFuY2UADHByb2plY3RzdGFrZQkBEUBleHRyTmF0aXZlKDEwNTApAgkBB0FkZHJlc3MBBQZwb29sSWQJAKwCAgIjM1BBa21KbmlNZ25uQWVqNXBZZjJqRllrQ2Jab3c1cHQ5dHICDF9pbmRleFN0YWtlZAAKdG90YWxzdGFrZQkBEUBleHRyTmF0aXZlKDEwNTApAgkBB0FkZHJlc3MBBQZwb29sSWQCF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50AAp0dmxpbndhdmVzCQBrAwkAaAIFC3dhdmVzaW5wb29sAAoFDHByb2plY3RzdGFrZQUKdG90YWxzdGFrZQAPd2hpcmxwb29sc3VwcGx5BAckbWF0Y2gwCQDsBwEFCXdoaXJscG9vbAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEENhbid0IGZpbmQgYXNzZXQABXByaWNlAwkAZwIJAGQCCQBrAwkAZAIFCnR2bGlud2F2ZXMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFAmQ4BQ93aGlybHBvb2xzdXBwbHkFAmQ4CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMJAGQCCQBrAwkAZAIFCnR2bGlud2F2ZXMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFAmQ4BQ93aGlybHBvb2xzdXBwbHkFAmQ4CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMEAWkBFWJ1eVdISVJMUE9PTHdpdGhXQVZFUwADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQHc3VycGx1cwkAawMJAGUCBQVwcmljZQUCZDgIBQNwbXQGYW1vdW50BQJkOAQGYW1vdW50CQBrAwgFA3BtdAZhbW91bnQFAmQ4BQVwcmljZQQMc3VwcGx5YW1vdW50CQBpAgkAZQIIBQNwbXQGYW1vdW50BQdzdXJwbHVzAAIEE3N3YXZlc0JhbGFuY2VCZWZvcmUJAPAHAgUEdGhpcwUGc3dhdmVzAwkAAAIFE3N3YXZlc0JhbGFuY2VCZWZvcmUFE3N3YXZlc0JhbGFuY2VCZWZvcmUDCQECIT0CCAUDcG10B2Fzc2V0SWQFBHVuaXQJAAIBAhdhdHRhY2ggV0FWRVMgdG9rZW4gb25seQQTU3VwcGx5V2F2ZXNNYWluUG9vbAkA/AcECQEHQWRkcmVzcwEBGgFXIJRcSq3P9Eg5O4hAs7/b7oxQoKdqz9roAgZzdXBwbHkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUMc3VwcGx5YW1vdW50BQNuaWwDCQAAAgUTU3VwcGx5V2F2ZXNNYWluUG9vbAUTU3VwcGx5V2F2ZXNNYWluUG9vbAQYU3VwcGx5V2F2ZXNXYXZlc0RlZmlQb29sCQD8BwQJAQdBZGRyZXNzAQEaAVcZCzuPP83F9QBSQ7jrpozIrL8UOTE+JL4CBnN1cHBseQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQxzdXBwbHlhbW91bnQFA25pbAMJAAACBRhTdXBwbHlXYXZlc1dhdmVzRGVmaVBvb2wFGFN1cHBseVdhdmVzV2F2ZXNEZWZpUG9vbAkAzAgCCQEHUmVpc3N1ZQMFCXdoaXJscG9vbAUGYW1vdW50BgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAUJd2hpcmxwb29sCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiJzdXJwbHVzIHRyZWFzdXJ5IHZhbHVlIGluIHdhdmVsZXRzBQp0dmxpbndhdmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhZXSElSTFBPT0wgdG90YWwgc3VwcGx5BQ93aGlybHBvb2xzdXBwbHkJAMwIAgkBDEludGVnZXJFbnRyeQICHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMJAGQCBQdzdXJwbHVzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAh53YXZlbGV0cyByZWNlaXZlZCBmb3IgdHJlYXN1cnkJAGUCBQZhbW91bnQFB3N1cnBsdXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJQcmljZVN1cnBsdXNTdXBwbHkACQDMCAIJAQxJbnRlZ2VyRW50cnkCAg1XQVZFUyBpbiBwb29sBQt3YXZlc2lucG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgIMcHJvamVjdHN0YWtlBQxwcm9qZWN0c3Rha2UJAMwIAgkBDEludGVnZXJFbnRyeQICCnRvdGFsc3Rha2UFCnRvdGFsc3Rha2UJAMwIAgkBDEludGVnZXJFbnRyeQICIVdISVJMUE9PTCBpc3N1ZSBwcmljZSBpbiB3YXZlbGV0cwUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQICInN1cnBsdXMgdHJlYXN1cnkgdmFsdWUgaW4gd2F2ZWxldHMFCnR2bGlud2F2ZXMJAMwIAgkBDEludGVnZXJFbnRyeQICFldISVJMUE9PTCB0b3RhbCBzdXBwbHkFD3doaXJscG9vbHN1cHBseQkAzAgCCQEMSW50ZWdlckVudHJ5AgIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwkAzAgCCQEMSW50ZWdlckVudHJ5AgIed2F2ZWxldHMgcmVjZWl2ZWQgZm9yIHRyZWFzdXJ5CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAh9zd2F2ZWxldHMgcmVjZWl2ZWQgZm9yIHRyZWFzdXJ5BQNuaWwBaQETUG9vbE9uZVRva2VuU3VycGx1cwADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBA1zdXJwbHVzYW1vdW50CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzBBNQb29sT25lVG9rZW5TdXJwbHVzCQD8BwQJAQdBZGRyZXNzAQEaAVf9JcO9TmGUQe+6XhJjj8U5b0m1iDr16W0CIWdlbmVyYXRlSW5kZXhXaXRoT25lVG9rZW5BbmRTdGFrZQkAzAgCBQpwb29sU3RyaW5nBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFDXN1cnBsdXNhbW91bnQFA25pbAMJAAACBRNQb29sT25lVG9rZW5TdXJwbHVzBRNQb29sT25lVG9rZW5TdXJwbHVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzCQBlAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwUNc3VycGx1c2Ftb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDEJvb3N0UG9vbEFQWQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBBNzd2F2ZXNCYWxhbmNlQmVmb3JlCQDwBwIFBHRoaXMFBnN3YXZlcwMJAAACBRNzd2F2ZXNCYWxhbmNlQmVmb3JlBRNzd2F2ZXNCYWxhbmNlQmVmb3JlBAtzd2FwYnVybnh0bgkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCAgV3YXZlcwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUJYnVybnh0bklkCQDwBwIFBHRoaXMFCWJ1cm54dG5JZAUDbmlsAwkAAAIFC3N3YXBidXJueHRuBQtzd2FwYnVybnh0bgQLc3dhcHVzZHRlcmMJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgIFd2F2ZXMJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3VzZHRlcmMJAPAHAgUEdGhpcwUHdXNkdGVyYwUDbmlsAwkAAAIFC3N3YXB1c2R0ZXJjBQtzd2FwdXNkdGVyYwQLc3dhcHVzZHRic2MJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgIFd2F2ZXMJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3VzZHRic2MJAPAHAgUEdGhpcwUHdXNkdGJzYwUDbmlsAwkAAAIFC3N3YXB1c2R0YnNjBQtzd2FwdXNkdGJzYwQLc3dhcHVzZGNlcmMJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgIFd2F2ZXMJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3VzZGNlcmMJAPAHAgUEdGhpcwUHdXNkY2VyYwUDbmlsAwkAAAIFC3N3YXB1c2RjZXJjBQtzd2FwdXNkY2VyYwQLc3dhcHVzZGNic2MJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgIFd2F2ZXMJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3VzZGNic2MJAPAHAgUEdGhpcwUHdXNkY2JzYwUDbmlsAwkAAAIFC3N3YXB1c2RjYnNjBQtzd2FwdXNkY2JzYwQHc3dhcGV0aAkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCAgV3YXZlcwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUDZXRoCQDwBwIFBHRoaXMFA2V0aAUDbmlsAwkAAAIFB3N3YXBldGgFB3N3YXBldGgEB3N3YXBibmIJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgIFd2F2ZXMJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFA2JuYgkA8AcCBQR0aGlzBQNibmIFA25pbAMJAAACBQdzd2FwYm5iBQdzd2FwYm5iBAhzd2Fwd2J0YwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCAgV3YXZlcwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEd2J0YwkA8AcCBQR0aGlzBQR3YnRjBQNuaWwDCQAAAgUIc3dhcHdidGMFCHN3YXB3YnRjBAhzd2FwYnRjYgkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCAgV3YXZlcwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEYnRjYgkA8AcCBQR0aGlzBQRidGNiBQNuaWwDCQAAAgUIc3dhcGJ0Y2IFCHN3YXBidGNiBA1Td2F2ZXNEZXBvc2l0CQD8BwQJAQdBZGRyZXNzAQEaAVd9yXuTFHn/51HxsUrHb/lqHYCVR89YI34CB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAMJAGYCCQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4AAAJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgAAAUDbmlsAwkAAAIFDVN3YXZlc0RlcG9zaXQFDVN3YXZlc0RlcG9zaXQEEnN3YXZlc0JhbGFuY2VBZnRlcgkA8AcCBQR0aGlzBQZzd2F2ZXMEEHN3YXZlc0RpZmZlcmVuY2UJAGUCBRJzd2F2ZXNCYWxhbmNlQWZ0ZXIFE3N3YXZlc0JhbGFuY2VCZWZvcmUEC2Ftb3VudEJvb3N0CQBrAwUQc3dhdmVzRGlmZmVyZW5jZQBQAGQEC2Ftb3VudE93bmVyCQBrAwUQc3dhdmVzRGlmZmVyZW5jZQAUAGQEBWJvb3N0CQD8BwQJAQdBZGRyZXNzAQUPd2hpcmxwb29sUG9vbElkAgthZGRCb29zdGluZwkAzAgCAB4FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGc3dhdmVzBQthbW91bnRCb29zdAUDbmlsAwkAAAIFBWJvb3N0BQVib29zdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFDHByb2plY3Rvd25lcgULYW1vdW50T3duZXIFBnN3YXZlcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAHCvHRU=", "height": 3809257, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3xf9bdxd43emt1oMJuVtByyiVhQv62ft5P4tojeH51FJ Next: 5k5D8oas5eMNuz4Z69uBwaqbTb6z8WfC2meStxRR1h2s Diff:
OldNewDifferences
5555 else getIntegerValue(this, "WHIRLPOOL issue price in wavelets")
5656
5757 @Callable(i)
58-func buyWHIRLPOOLwithWAVES () = {
59- let pmt = value(i.payments[0])
60- let surplus = fraction((price - d8), pmt.amount, d8)
61- let amount = fraction(pmt.amount, d8, price)
62- let supplyamount = ((pmt.amount - surplus) / 2)
63- let swavesBalanceBefore = assetBalance(this, swaves)
64- if ((swavesBalanceBefore == swavesBalanceBefore))
65- then if ((pmt.assetId != unit))
66- then throw("attach WAVES token only")
67- else {
68- let SupplyWavesMainPool = invoke(Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH'), "supply", nil, [AttachedPayment(unit, supplyamount)])
69- if ((SupplyWavesMainPool == SupplyWavesMainPool))
70- then {
71- let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)])
72- if ((SupplyWavesWavesDefiPool == SupplyWavesWavesDefiPool))
73- then [Reissue(whirlpool, amount, true), ScriptTransfer(i.caller, amount, 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))]
74- else throw("Strict value is not equal to itself.")
75- }
76- else throw("Strict value is not equal to itself.")
77- }
78- else throw("Strict value is not equal to itself.")
79- }
58+func buyWHIRLPOOLwithWAVES () = if ((i.caller != this))
59+ then throw("access only by project owner")
60+ else {
61+ let pmt = value(i.payments[0])
62+ let surplus = fraction((price - d8), pmt.amount, d8)
63+ let amount = fraction(pmt.amount, d8, price)
64+ let supplyamount = ((pmt.amount - surplus) / 2)
65+ let swavesBalanceBefore = assetBalance(this, swaves)
66+ if ((swavesBalanceBefore == swavesBalanceBefore))
67+ then if ((pmt.assetId != unit))
68+ then throw("attach WAVES token only")
69+ else {
70+ let SupplyWavesMainPool = invoke(Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH'), "supply", nil, [AttachedPayment(unit, supplyamount)])
71+ if ((SupplyWavesMainPool == SupplyWavesMainPool))
72+ then {
73+ let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)])
74+ if ((SupplyWavesWavesDefiPool == SupplyWavesWavesDefiPool))
75+ then [Reissue(whirlpool, amount, true), ScriptTransfer(i.caller, amount, 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))]
76+ else throw("Strict value is not equal to itself.")
77+ }
78+ else throw("Strict value is not equal to itself.")
79+ }
80+ else throw("Strict value is not equal to itself.")
81+ }
8082
8183
8284
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 @Callable(i)
58-func buyWHIRLPOOLwithWAVES () = {
59- let pmt = value(i.payments[0])
60- let surplus = fraction((price - d8), pmt.amount, d8)
61- let amount = fraction(pmt.amount, d8, price)
62- let supplyamount = ((pmt.amount - surplus) / 2)
63- let swavesBalanceBefore = assetBalance(this, swaves)
64- if ((swavesBalanceBefore == swavesBalanceBefore))
65- then if ((pmt.assetId != unit))
66- then throw("attach WAVES token only")
67- else {
68- let SupplyWavesMainPool = invoke(Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH'), "supply", nil, [AttachedPayment(unit, supplyamount)])
69- if ((SupplyWavesMainPool == SupplyWavesMainPool))
70- then {
71- let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)])
72- if ((SupplyWavesWavesDefiPool == SupplyWavesWavesDefiPool))
73- then [Reissue(whirlpool, amount, true), ScriptTransfer(i.caller, amount, 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))]
74- else throw("Strict value is not equal to itself.")
75- }
76- else throw("Strict value is not equal to itself.")
77- }
78- else throw("Strict value is not equal to itself.")
79- }
58+func buyWHIRLPOOLwithWAVES () = if ((i.caller != this))
59+ then throw("access only by project owner")
60+ else {
61+ let pmt = value(i.payments[0])
62+ let surplus = fraction((price - d8), pmt.amount, d8)
63+ let amount = fraction(pmt.amount, d8, price)
64+ let supplyamount = ((pmt.amount - surplus) / 2)
65+ let swavesBalanceBefore = assetBalance(this, swaves)
66+ if ((swavesBalanceBefore == swavesBalanceBefore))
67+ then if ((pmt.assetId != unit))
68+ then throw("attach WAVES token only")
69+ else {
70+ let SupplyWavesMainPool = invoke(Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH'), "supply", nil, [AttachedPayment(unit, supplyamount)])
71+ if ((SupplyWavesMainPool == SupplyWavesMainPool))
72+ then {
73+ let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)])
74+ if ((SupplyWavesWavesDefiPool == SupplyWavesWavesDefiPool))
75+ then [Reissue(whirlpool, amount, true), ScriptTransfer(i.caller, amount, 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))]
76+ else throw("Strict value is not equal to itself.")
77+ }
78+ else throw("Strict value is not equal to itself.")
79+ }
80+ else throw("Strict value is not equal to itself.")
81+ }
8082
8183
8284
8385 @Callable(i)
8486 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"))]
8587
8688
8789
8890 @Callable(i)
8991 func PoolOneTokenSurplus () = if ((i.caller != this))
9092 then throw("access only by project owner")
9193 else {
9294 let surplusamount = getIntegerValue(this, "surplus received in wavelets")
9395 let PoolOneTokenSurplus = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [poolString], [AttachedPayment(unit, surplusamount)])
9496 if ((PoolOneTokenSurplus == PoolOneTokenSurplus))
9597 then [IntegerEntry("surplus received in wavelets", (getIntegerValue(this, "surplus received in wavelets") - surplusamount))]
9698 else throw("Strict value is not equal to itself.")
9799 }
98100
99101
100102
101103 @Callable(i)
102104 func BoostPoolAPY () = if ((i.caller != this))
103105 then throw("access only by project owner")
104106 else {
105107 let swavesBalanceBefore = assetBalance(this, swaves)
106108 if ((swavesBalanceBefore == swavesBalanceBefore))
107109 then {
108110 let swapburnxtn = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(burnxtnId, assetBalance(this, burnxtnId))])
109111 if ((swapburnxtn == swapburnxtn))
110112 then {
111113 let swapusdterc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdterc, assetBalance(this, usdterc))])
112114 if ((swapusdterc == swapusdterc))
113115 then {
114116 let swapusdtbsc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdtbsc, assetBalance(this, usdtbsc))])
115117 if ((swapusdtbsc == swapusdtbsc))
116118 then {
117119 let swapusdcerc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdcerc, assetBalance(this, usdcerc))])
118120 if ((swapusdcerc == swapusdcerc))
119121 then {
120122 let swapusdcbsc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdcbsc, assetBalance(this, usdcbsc))])
121123 if ((swapusdcbsc == swapusdcbsc))
122124 then {
123125 let swapeth = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(eth, assetBalance(this, eth))])
124126 if ((swapeth == swapeth))
125127 then {
126128 let swapbnb = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(bnb, assetBalance(this, bnb))])
127129 if ((swapbnb == swapbnb))
128130 then {
129131 let swapwbtc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(wbtc, assetBalance(this, wbtc))])
130132 if ((swapwbtc == swapwbtc))
131133 then {
132134 let swapbtcb = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(btcb, assetBalance(this, btcb))])
133135 if ((swapbtcb == swapbtcb))
134136 then {
135137 let SwavesDeposit = invoke(Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV'), "deposit", nil, [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0))
136138 then (wavesBalance(this).available - d8)
137139 else 0)])
138140 if ((SwavesDeposit == SwavesDeposit))
139141 then {
140142 let swavesBalanceAfter = assetBalance(this, swaves)
141143 let swavesDifference = (swavesBalanceAfter - swavesBalanceBefore)
142144 let amountBoost = fraction(swavesDifference, 80, 100)
143145 let amountOwner = fraction(swavesDifference, 20, 100)
144146 let boost = invoke(Address(whirlpoolPoolId), "addBoosting", [30], [AttachedPayment(swaves, amountBoost)])
145147 if ((boost == boost))
146148 then [ScriptTransfer(Address(projectowner), amountOwner, swaves)]
147149 else throw("Strict value is not equal to itself.")
148150 }
149151 else throw("Strict value is not equal to itself.")
150152 }
151153 else throw("Strict value is not equal to itself.")
152154 }
153155 else throw("Strict value is not equal to itself.")
154156 }
155157 else throw("Strict value is not equal to itself.")
156158 }
157159 else throw("Strict value is not equal to itself.")
158160 }
159161 else throw("Strict value is not equal to itself.")
160162 }
161163 else throw("Strict value is not equal to itself.")
162164 }
163165 else throw("Strict value is not equal to itself.")
164166 }
165167 else throw("Strict value is not equal to itself.")
166168 }
167169 else throw("Strict value is not equal to itself.")
168170 }
169171 else throw("Strict value is not equal to itself.")
170172 }
171173
172174

github/deemru/w8io/3ef1775 
37.01 ms