tx · 3xf9bdxd43emt1oMJuVtByyiVhQv62ft5P4tojeH51FJ 3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr: -0.01000000 Waves 2023.08.31 10:28 [3800222] smart account 3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr > SELF 0.00000000 Waves
{ "type": 13, "id": "3xf9bdxd43emt1oMJuVtByyiVhQv62ft5P4tojeH51FJ", "fee": 1000000, "feeAssetId": null, "timestamp": 1693466933798, "version": 2, "chainId": 87, "sender": "3PAkmJniMgnnAej5pYf2jFYkCbZow5pt9tr", "senderPublicKey": "A5AvSRrbVauQKBhPtuWTLTQdE5ka4nVCSDaVANpFur26", "proofs": [ "5mqxSedJNeVxekdCCymdneCGCnQjGpixuSDUrW4kUzBJy4BVxHje9i2hbjAvoMqkGzSpVBgtMZAodutNgNXss5xF" ], "script": "base64:BgIKCAISABIAEgASABcAAmQ4AIDC1y8ABnBvb2xJZAEaAVf1RmgngA1o304mdXq0odMoMeAJv/V5eTcACnBvb2xTdHJpbmcJANgEAQUGcG9vbElkAAxwcm9qZWN0b3duZXIBGgFXjh3mUco4I87DkcPEVovVg9NviFb/Nt0LAA93aGlybHBvb2xQb29sSWQBBQV0o/bXAAl3aGlybHBvb2wBIFnjjdzCtSO6ShTcxNCvFAnmZOYEviUGCyZO5VBtl1nHAAZzd2F2ZXMBIAgfyPcWMO1Rwikb7Kwaj/yQcRxZOC3rIYGwN0HwRdFKAAV3YXZlcwEEE6vZMwAHdXNkdGVyYwEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kAB3VzZGNlcmMBIPG/dI9pAmuur847sG/zXfDFSqExbFa33PoqSqHrkRpJAAd1c2R0YnNjASCHhSoUXb0b4GnDpNrWG3dP3AUEm6wF30Gwr4DASTDpogAHdXNkY2JzYwEgLzeUxDAO1B6GL00NeF395F5CPEPe5iQcatRgd4br5bUACWJ1cm54dG5JZAEgJE91eWp+Mzm4+wz/hKlxXF7KLd4zoMRdafnqRBHsTFQAA2V0aAEgJR76/9ghyXCe+8C03j63q4aeBTtm79wH/FHj9agzKHIAA2JuYgEgS7ep4jwDLeZJ/TwoM/wRUkbi6v6x+mu9cBafRBfVHhwABHdidGMBIBKeo3EHNGSP6mN2enCiK9cwBs75vPQVGctmd0xybol/AARidGNiASDIlsraYoy6SPYFNHcPBbtsEP/v2GRaY5157d4CGOemoQALd2F2ZXNpbnBvb2wJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQdBZGRyZXNzAQUGcG9vbElkCQCsAgIJAKwCAgIHZ2xvYmFsXwkA2AQBBQV3YXZlcwIIX2JhbGFuY2UADHByb2plY3RzdGFrZQkBEUBleHRyTmF0aXZlKDEwNTApAgkBB0FkZHJlc3MBBQZwb29sSWQJAKwCAgIjM1BBa21KbmlNZ25uQWVqNXBZZjJqRllrQ2Jab3c1cHQ5dHICDF9pbmRleFN0YWtlZAAKdG90YWxzdGFrZQkBEUBleHRyTmF0aXZlKDEwNTApAgkBB0FkZHJlc3MBBQZwb29sSWQCF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50AAp0dmxpbndhdmVzCQBrAwkAaAIFC3dhdmVzaW5wb29sAAoFDHByb2plY3RzdGFrZQUKdG90YWxzdGFrZQAPd2hpcmxwb29sc3VwcGx5BAckbWF0Y2gwCQDsBwEFCXdoaXJscG9vbAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEENhbid0IGZpbmQgYXNzZXQABXByaWNlAwkAZwIJAGQCCQBrAwkAZAIFCnR2bGlud2F2ZXMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFAmQ4BQ93aGlybHBvb2xzdXBwbHkFAmQ4CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMJAGQCCQBrAwkAZAIFCnR2bGlud2F2ZXMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMFAmQ4BQ93aGlybHBvb2xzdXBwbHkFAmQ4CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAiFXSElSTFBPT0wgaXNzdWUgcHJpY2UgaW4gd2F2ZWxldHMEAWkBFWJ1eVdISVJMUE9PTHdpdGhXQVZFUwAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAdzdXJwbHVzCQBrAwkAZQIFBXByaWNlBQJkOAgFA3BtdAZhbW91bnQFAmQ4BAZhbW91bnQJAGsDCAUDcG10BmFtb3VudAUCZDgFBXByaWNlBAxzdXBwbHlhbW91bnQJAGkCCQBlAggFA3BtdAZhbW91bnQFB3N1cnBsdXMAAgQTc3dhdmVzQmFsYW5jZUJlZm9yZQkA8AcCBQR0aGlzBQZzd2F2ZXMDCQAAAgUTc3dhdmVzQmFsYW5jZUJlZm9yZQUTc3dhdmVzQmFsYW5jZUJlZm9yZQMJAQIhPQIIBQNwbXQHYXNzZXRJZAUEdW5pdAkAAgECF2F0dGFjaCBXQVZFUyB0b2tlbiBvbmx5BBNTdXBwbHlXYXZlc01haW5Qb29sCQD8BwQJAQdBZGRyZXNzAQEaAVcglFxKrc/0SDk7iECzv9vujFCgp2rP2ugCBnN1cHBseQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQxzdXBwbHlhbW91bnQFA25pbAMJAAACBRNTdXBwbHlXYXZlc01haW5Qb29sBRNTdXBwbHlXYXZlc01haW5Qb29sBBhTdXBwbHlXYXZlc1dhdmVzRGVmaVBvb2wJAPwHBAkBB0FkZHJlc3MBARoBVxkLO48/zcX1AFJDuOumjMisvxQ5MT4kvgIGc3VwcGx5BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFDHN1cHBseWFtb3VudAUDbmlsAwkAAAIFGFN1cHBseVdhdmVzV2F2ZXNEZWZpUG9vbAUYU3VwcGx5V2F2ZXNXYXZlc0RlZmlQb29sCQDMCAIJAQdSZWlzc3VlAwUJd2hpcmxwb29sBQZhbW91bnQGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQl3aGlybHBvb2wJAMwIAgkBDEludGVnZXJFbnRyeQICIVdISVJMUE9PTCBpc3N1ZSBwcmljZSBpbiB3YXZlbGV0cwUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQICInN1cnBsdXMgdHJlYXN1cnkgdmFsdWUgaW4gd2F2ZWxldHMFCnR2bGlud2F2ZXMJAMwIAgkBDEludGVnZXJFbnRyeQICFldISVJMUE9PTCB0b3RhbCBzdXBwbHkFD3doaXJscG9vbHN1cHBseQkAzAgCCQEMSW50ZWdlckVudHJ5AgIcc3VycGx1cyByZWNlaXZlZCBpbiB3YXZlbGV0cwkAZAIFB3N1cnBsdXMJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMJAMwIAgkBDEludGVnZXJFbnRyeQICHndhdmVsZXRzIHJlY2VpdmVkIGZvciB0cmVhc3VyeQkAZQIFBmFtb3VudAUHc3VycGx1cwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBElByaWNlU3VycGx1c1N1cHBseQAJAMwIAgkBDEludGVnZXJFbnRyeQICDVdBVkVTIGluIHBvb2wFC3dhdmVzaW5wb29sCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgxwcm9qZWN0c3Rha2UFDHByb2plY3RzdGFrZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIKdG90YWxzdGFrZQUKdG90YWxzdGFrZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIhV0hJUkxQT09MIGlzc3VlIHByaWNlIGluIHdhdmVsZXRzBQVwcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIic3VycGx1cyB0cmVhc3VyeSB2YWx1ZSBpbiB3YXZlbGV0cwUKdHZsaW53YXZlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgIWV0hJUkxQT09MIHRvdGFsIHN1cHBseQUPd2hpcmxwb29sc3VwcGx5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAh53YXZlbGV0cyByZWNlaXZlZCBmb3IgdHJlYXN1cnkJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCH3N3YXZlbGV0cyByZWNlaXZlZCBmb3IgdHJlYXN1cnkFA25pbAFpARNQb29sT25lVG9rZW5TdXJwbHVzAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEDXN1cnBsdXNhbW91bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMEE1Bvb2xPbmVUb2tlblN1cnBsdXMJAPwHBAkBB0FkZHJlc3MBARoBV/0lw71OYZRB77peEmOPxTlvSbWIOvXpbQIhZ2VuZXJhdGVJbmRleFdpdGhPbmVUb2tlbkFuZFN0YWtlCQDMCAIFCnBvb2xTdHJpbmcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUNc3VycGx1c2Ftb3VudAUDbmlsAwkAAAIFE1Bvb2xPbmVUb2tlblN1cnBsdXMFE1Bvb2xPbmVUb2tlblN1cnBsdXMJAMwIAgkBDEludGVnZXJFbnRyeQICHHN1cnBsdXMgcmVjZWl2ZWQgaW4gd2F2ZWxldHMJAGUCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhxzdXJwbHVzIHJlY2VpdmVkIGluIHdhdmVsZXRzBQ1zdXJwbHVzYW1vdW50BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMQm9vc3RQb29sQVBZAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEE3N3YXZlc0JhbGFuY2VCZWZvcmUJAPAHAgUEdGhpcwUGc3dhdmVzAwkAAAIFE3N3YXZlc0JhbGFuY2VCZWZvcmUFE3N3YXZlc0JhbGFuY2VCZWZvcmUEC3N3YXBidXJueHRuCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAICBXdhdmVzCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkBQNuaWwDCQAAAgULc3dhcGJ1cm54dG4FC3N3YXBidXJueHRuBAtzd2FwdXNkdGVyYwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCAgV3YXZlcwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdXNkdGVyYwkA8AcCBQR0aGlzBQd1c2R0ZXJjBQNuaWwDCQAAAgULc3dhcHVzZHRlcmMFC3N3YXB1c2R0ZXJjBAtzd2FwdXNkdGJzYwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCAgV3YXZlcwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdXNkdGJzYwkA8AcCBQR0aGlzBQd1c2R0YnNjBQNuaWwDCQAAAgULc3dhcHVzZHRic2MFC3N3YXB1c2R0YnNjBAtzd2FwdXNkY2VyYwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCAgV3YXZlcwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdXNkY2VyYwkA8AcCBQR0aGlzBQd1c2RjZXJjBQNuaWwDCQAAAgULc3dhcHVzZGNlcmMFC3N3YXB1c2RjZXJjBAtzd2FwdXNkY2JzYwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCAgV3YXZlcwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdXNkY2JzYwkA8AcCBQR0aGlzBQd1c2RjYnNjBQNuaWwDCQAAAgULc3dhcHVzZGNic2MFC3N3YXB1c2RjYnNjBAdzd2FwZXRoCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAICBXdhdmVzCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQNldGgJAPAHAgUEdGhpcwUDZXRoBQNuaWwDCQAAAgUHc3dhcGV0aAUHc3dhcGV0aAQHc3dhcGJuYgkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCAgV3YXZlcwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUDYm5iCQDwBwIFBHRoaXMFA2JuYgUDbmlsAwkAAAIFB3N3YXBibmIFB3N3YXBibmIECHN3YXB3YnRjCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAICBXdhdmVzCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR3YnRjCQDwBwIFBHRoaXMFBHdidGMFA25pbAMJAAACBQhzd2Fwd2J0YwUIc3dhcHdidGMECHN3YXBidGNiCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAICBXdhdmVzCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQRidGNiCQDwBwIFBHRoaXMFBGJ0Y2IFA25pbAMJAAACBQhzd2FwYnRjYgUIc3dhcGJ0Y2IEDVN3YXZlc0RlcG9zaXQJAPwHBAkBB0FkZHJlc3MBARoBV33Je5MUef/nUfGxSsdv+WodgJVHz1gjfgIHZGVwb3NpdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0AwkAZgIJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgAAAkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAAABQNuaWwDCQAAAgUNU3dhdmVzRGVwb3NpdAUNU3dhdmVzRGVwb3NpdAQSc3dhdmVzQmFsYW5jZUFmdGVyCQDwBwIFBHRoaXMFBnN3YXZlcwQQc3dhdmVzRGlmZmVyZW5jZQkAZQIFEnN3YXZlc0JhbGFuY2VBZnRlcgUTc3dhdmVzQmFsYW5jZUJlZm9yZQQLYW1vdW50Qm9vc3QJAGsDBRBzd2F2ZXNEaWZmZXJlbmNlAFAAZAQLYW1vdW50T3duZXIJAGsDBRBzd2F2ZXNEaWZmZXJlbmNlABQAZAQFYm9vc3QJAPwHBAkBB0FkZHJlc3MBBQ93aGlybHBvb2xQb29sSWQCC2FkZEJvb3N0aW5nCQDMCAIAHgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZzd2F2ZXMFC2Ftb3VudEJvb3N0BQNuaWwDCQAAAgUFYm9vc3QFBWJvb3N0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUMcHJvamVjdG93bmVyBQthbW91bnRPd25lcgUGc3dhdmVzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AnbEuhg==", "height": 3800222, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EmBDvhh7wBDyx8dUVtSxfEmd4EejCD87CCqTHAW6xTdF Next: 8PvYYdYYhteKsXaXJFTmv7wbYXJugzB12d9zk2wJ7qD8 Diff:
Old | New | Differences | |
---|---|---|---|
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 | - | let bonuspercentage = 10 | |
58 | - | ||
59 | 57 | @Callable(i) | |
60 | 58 | func buyWHIRLPOOLwithWAVES () = { | |
61 | 59 | let pmt = value(i.payments[0]) | |
72 | 70 | then { | |
73 | 71 | let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)]) | |
74 | 72 | if ((SupplyWavesWavesDefiPool == SupplyWavesWavesDefiPool)) | |
75 | - | then [Reissue(whirlpool, | |
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))] | |
76 | 74 | else throw("Strict value is not equal to itself.") | |
77 | 75 | } | |
78 | 76 | 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 | - | let bonuspercentage = 10 | |
58 | - | ||
59 | 57 | @Callable(i) | |
60 | 58 | func buyWHIRLPOOLwithWAVES () = { | |
61 | 59 | let pmt = value(i.payments[0]) | |
62 | 60 | let surplus = fraction((price - d8), pmt.amount, d8) | |
63 | 61 | let amount = fraction(pmt.amount, d8, price) | |
64 | 62 | let supplyamount = ((pmt.amount - surplus) / 2) | |
65 | 63 | let swavesBalanceBefore = assetBalance(this, swaves) | |
66 | 64 | if ((swavesBalanceBefore == swavesBalanceBefore)) | |
67 | 65 | then if ((pmt.assetId != unit)) | |
68 | 66 | then throw("attach WAVES token only") | |
69 | 67 | else { | |
70 | 68 | let SupplyWavesMainPool = invoke(Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH'), "supply", nil, [AttachedPayment(unit, supplyamount)]) | |
71 | 69 | if ((SupplyWavesMainPool == SupplyWavesMainPool)) | |
72 | 70 | then { | |
73 | 71 | let SupplyWavesWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(unit, supplyamount)]) | |
74 | 72 | if ((SupplyWavesWavesDefiPool == SupplyWavesWavesDefiPool)) | |
75 | - | then [Reissue(whirlpool, | |
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))] | |
76 | 74 | else throw("Strict value is not equal to itself.") | |
77 | 75 | } | |
78 | 76 | else throw("Strict value is not equal to itself.") | |
79 | 77 | } | |
80 | 78 | else throw("Strict value is not equal to itself.") | |
81 | 79 | } | |
82 | 80 | ||
83 | 81 | ||
84 | 82 | ||
85 | 83 | @Callable(i) | |
86 | 84 | 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"))] | |
87 | 85 | ||
88 | 86 | ||
89 | 87 | ||
90 | 88 | @Callable(i) | |
91 | 89 | func PoolOneTokenSurplus () = if ((i.caller != this)) | |
92 | 90 | then throw("access only by project owner") | |
93 | 91 | else { | |
94 | 92 | let surplusamount = getIntegerValue(this, "surplus received in wavelets") | |
95 | 93 | let PoolOneTokenSurplus = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [poolString], [AttachedPayment(unit, surplusamount)]) | |
96 | 94 | if ((PoolOneTokenSurplus == PoolOneTokenSurplus)) | |
97 | 95 | then [IntegerEntry("surplus received in wavelets", (getIntegerValue(this, "surplus received in wavelets") - surplusamount))] | |
98 | 96 | else throw("Strict value is not equal to itself.") | |
99 | 97 | } | |
100 | 98 | ||
101 | 99 | ||
102 | 100 | ||
103 | 101 | @Callable(i) | |
104 | 102 | func BoostPoolAPY () = if ((i.caller != this)) | |
105 | 103 | then throw("access only by project owner") | |
106 | 104 | else { | |
107 | 105 | let swavesBalanceBefore = assetBalance(this, swaves) | |
108 | 106 | if ((swavesBalanceBefore == swavesBalanceBefore)) | |
109 | 107 | then { | |
110 | 108 | let swapburnxtn = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(burnxtnId, assetBalance(this, burnxtnId))]) | |
111 | 109 | if ((swapburnxtn == swapburnxtn)) | |
112 | 110 | then { | |
113 | 111 | let swapusdterc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdterc, assetBalance(this, usdterc))]) | |
114 | 112 | if ((swapusdterc == swapusdterc)) | |
115 | 113 | then { | |
116 | 114 | let swapusdtbsc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdtbsc, assetBalance(this, usdtbsc))]) | |
117 | 115 | if ((swapusdtbsc == swapusdtbsc)) | |
118 | 116 | then { | |
119 | 117 | let swapusdcerc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdcerc, assetBalance(this, usdcerc))]) | |
120 | 118 | if ((swapusdcerc == swapusdcerc)) | |
121 | 119 | then { | |
122 | 120 | let swapusdcbsc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(usdcbsc, assetBalance(this, usdcbsc))]) | |
123 | 121 | if ((swapusdcbsc == swapusdcbsc)) | |
124 | 122 | then { | |
125 | 123 | let swapeth = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(eth, assetBalance(this, eth))]) | |
126 | 124 | if ((swapeth == swapeth)) | |
127 | 125 | then { | |
128 | 126 | let swapbnb = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(bnb, assetBalance(this, bnb))]) | |
129 | 127 | if ((swapbnb == swapbnb)) | |
130 | 128 | then { | |
131 | 129 | let swapwbtc = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(wbtc, assetBalance(this, wbtc))]) | |
132 | 130 | if ((swapwbtc == swapwbtc)) | |
133 | 131 | then { | |
134 | 132 | let swapbtcb = invoke(Address(poolId), "swap", ["waves", 0], [AttachedPayment(btcb, assetBalance(this, btcb))]) | |
135 | 133 | if ((swapbtcb == swapbtcb)) | |
136 | 134 | then { | |
137 | 135 | let SwavesDeposit = invoke(Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV'), "deposit", nil, [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0)) | |
138 | 136 | then (wavesBalance(this).available - d8) | |
139 | 137 | else 0)]) | |
140 | 138 | if ((SwavesDeposit == SwavesDeposit)) | |
141 | 139 | then { | |
142 | 140 | let swavesBalanceAfter = assetBalance(this, swaves) | |
143 | 141 | let swavesDifference = (swavesBalanceAfter - swavesBalanceBefore) | |
144 | 142 | let amountBoost = fraction(swavesDifference, 80, 100) | |
145 | 143 | let amountOwner = fraction(swavesDifference, 20, 100) | |
146 | 144 | let boost = invoke(Address(whirlpoolPoolId), "addBoosting", [30], [AttachedPayment(swaves, amountBoost)]) | |
147 | 145 | if ((boost == boost)) | |
148 | 146 | then [ScriptTransfer(Address(projectowner), amountOwner, swaves)] | |
149 | 147 | else throw("Strict value is not equal to itself.") | |
150 | 148 | } | |
151 | 149 | else throw("Strict value is not equal to itself.") | |
152 | 150 | } | |
153 | 151 | else throw("Strict value is not equal to itself.") | |
154 | 152 | } | |
155 | 153 | else throw("Strict value is not equal to itself.") | |
156 | 154 | } | |
157 | 155 | else throw("Strict value is not equal to itself.") | |
158 | 156 | } | |
159 | 157 | else throw("Strict value is not equal to itself.") | |
160 | 158 | } | |
161 | 159 | else throw("Strict value is not equal to itself.") | |
162 | 160 | } | |
163 | 161 | else throw("Strict value is not equal to itself.") | |
164 | 162 | } | |
165 | 163 | else throw("Strict value is not equal to itself.") | |
166 | 164 | } | |
167 | 165 | else throw("Strict value is not equal to itself.") | |
168 | 166 | } | |
169 | 167 | else throw("Strict value is not equal to itself.") | |
170 | 168 | } | |
171 | 169 | else throw("Strict value is not equal to itself.") | |
172 | 170 | } | |
173 | 171 | ||
174 | 172 |
github/deemru/w8io/6500d08 61.59 ms ◑