tx · DpKXMs41UNXFgD4aHoCLyMW4krKgJQy1tx5WS1RsndM7 3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov: -0.00700000 Waves 2024.05.10 10:32 [4165672] smart account 3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov > SELF 0.00000000 Waves
{ "type": 13, "id": "DpKXMs41UNXFgD4aHoCLyMW4krKgJQy1tx5WS1RsndM7", "fee": 700000, "feeAssetId": null, "timestamp": 1715326382214, "version": 2, "chainId": 87, "sender": "3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov", "senderPublicKey": "5BKRz3VCmywzUUoj3kTwCzrCiP8waYbkaymD8B1kdRH2", "proofs": [ "3yKq8CvWzrvVcNbfeWpRWFZv1Q4aUur7MEAace5zAP7yZ8S1Ftehb63xCma23MN6hSfjvgLr2w33fyoe9mrQ4ASB" ], "script": "base64:BgITCAISABIAEgASABIDCgEBEgASACwBDXRyeUdldEludGVnZXICB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAANa2V5QnVybkFtb3VudAILYnVybiBhbW91bnQAEGtleUJ1cm54dG5BbW91bnQCFGJ1cm4gQlVSTi1YVE4gYW1vdW50AAZzd29wU0MJAQdBZGRyZXNzAQEaAVcgwotmdqzDwOOe8T/DRVkao2I+pdqXdIoACHN3b3BGYXJtCQEHQWRkcmVzcwEBGgFXOA3mS0bn/lAXI/6gVE3IB+UeLVkQk5pKAAdzd29wR292CQEHQWRkcmVzcwEBGgFXyVect296lgzLCCI5D3yGiYCibNyztxbtAAdpbnZva2VyCQEHQWRkcmVzcwEBGgFXGIkbJG0v4kSlsrku0GQjUC4p33Iw2jJZAAJkNgDAhD0AAmQ4AIDC1y8AB3Bvb2xCQkIBGgFXUu6TVhRNfgeM0oUP5n5cVzd+HJ/vPIIdAAZwb29sQlcBGgFXGCUUEzHiFPCLE3aJSZgT5fcL7rnq7WazAApwb29sU1dBVkVTARoBV7vtytlQtB5TwDm6mmeIwOuxot1r5d3R8AAGcG9vbExQARoBV/rVs69JTbhS1HYqsBxjXic5Vwgrqxr5+wAFeHRuSWQBILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAlidXJueHRuSWQBICRPdXlqfjM5uPsM/4SpcVxeyi3eM6DEXWn56kQR7ExUAAZzdXJmSWQBIJLR9EriEQEr9H7q3iGOPcX7yfJ9zoey7VIZ8DpOJFj1AAZzd29wSWQBIMuWPoXm9ZNWT495gxEUeE8mfozeVJJ81uGtwFxoqK7sAAZzd2F2ZXMBIAgfyPcWMO1Rwikb7Kwaj/yQcRxZOC3rIYGwN0HwRdFKAAZwdXp6bGUBIPEa/iX+9pk49GkqxN/hEtZHssbKDro3Ca93bR+OouVjAAd2dnh0bmxwASBsrfjgz4rhcUcNCnloAXRiOOvvbXnzzY2ztsZHwrhpBwAFcHpCQkIBIIkNw2LvScJ0QWOCxp7fPYTQX6ynKz4xzSrBJ2h9zxW6AAd1c2R0cHB0ASDgBv4zYFEZrA2h9Py6/N/gup8lamOIQ+Y05SaU8J1fDwAMU1dBVkVTX3N0YWtlCQEHQWRkcmVzcwEBGgFXfcl7kxR5/+dR8bFKx2/5ah2AlUfPWCN+AQhfbG9hZEludAIEa2V5XwhkZWZhdWx0XwQHJG1hdGNoMAkAmggCBQxTV0FWRVNfc3Rha2UFBGtleV8DCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhBQhkZWZhdWx0XwELX2xvYWRCaWdJbnQCBGtleV8IZGVmYXVsdF8EByRtYXRjaDAJAJwIAgUMU1dBVkVTX3N0YWtlBQRrZXlfAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWEFByRtYXRjaDAJAJ4DAQUBYQUIZGVmYXVsdF8AEFdYX0JVUk5YVE5fV0FWRVMJAQdBZGRyZXNzAQEaAVcr4q5xe33JMLUgeecWxWttV0CBpTgWPT4ADFdYX1dBVkVTX1VTRAkBB0FkZHJlc3MBARoBV8Kagd0AR3Oa9tPEi8EZV+BX9bjKd6RwoQAIbGFzdFJhdGUJAQtfbG9hZEJpZ0ludAICCUxBU1RfUkFURQkAtgIBAICglKWNHQALY3VycmVudFJhdGUJAQtfbG9hZEJpZ0ludAICDENVUlJFTlRfUkFURQkAtgIBAAAACmxhc3RIZWlnaHQJAQhfbG9hZEludAICC0xBU1RfSEVJR0hUAAAADHRhcmdldEhlaWdodAkAlwMBCQDMCAIJAQhfbG9hZEludAICDVRBUkdFVF9IRUlHSFQAAAkAzAgCBQZoZWlnaHQFA25pbAAPbGFzdFJhdGVVcGRhdGVkCQC3AgIFCGxhc3RSYXRlCQC5AgIFC2N1cnJlbnRSYXRlCQC2AgEJAGUCBQx0YXJnZXRIZWlnaHQFCmxhc3RIZWlnaHQACmJhc2VBbW91bnQJAKADAQkAvQIECQC2AgEJAPAHAgUQV1hfQlVSTlhUTl9XQVZFUwUGc3dhdmVzBQ9sYXN0UmF0ZVVwZGF0ZWQJALYCAQCAoJSljR0FBUZMT09SAAtiYXNlQW1vdW50MgkAoAMBCQC9AgQJALYCAQkA8AcCBQxXWF9XQVZFU19VU0QFBnN3YXZlcwUPbGFzdFJhdGVVcGRhdGVkCQC2AgEAgKCUpY0dBQVGTE9PUgAJd2F2ZXNJbldYCQBkAggJAO8HAQUQV1hfQlVSTlhUTl9XQVZFUwdyZWd1bGFyBQpiYXNlQW1vdW50AAtidXJueHRuSW5XWAkA8AcCBRBXWF9CVVJOWFROX1dBVkVTBQlidXJueHRuSWQAEWJ1cm54dG53YXZlc3ByaWNlCQBrAwUCZDgFCXdhdmVzSW5XWAULYnVybnh0bkluV1gACndhdmVzSW5XWDIJAGQCCAkA7wcBBQxXWF9XQVZFU19VU0QHcmVndWxhcgULYmFzZUFtb3VudDIAB3VzZEluV1gJAPAHAgUMV1hfV0FWRVNfVVNEBQd1c2R0cHB0AA13YXZlc3VzZHByaWNlCQBrAwUCZDYFCndhdmVzSW5XWDIFB3VzZEluV1gAD2J1cm54dG51c2RwcmljZQkAawMFEWJ1cm54dG53YXZlc3ByaWNlBQ13YXZlc3VzZHByaWNlBQJkNgADQVRIAwkAZgIFEWJ1cm54dG53YXZlc3ByaWNlCQERQGV4dHJOYXRpdmUoMTA1NSkBAg9BVEggaW4gd2F2ZWxldHMFEWJ1cm54dG53YXZlc3ByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAg9BVEggaW4gd2F2ZWxldHMABkFUSHVzZAMJAGYCBQ9idXJueHRudXNkcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDU1KQECD0FUSCBpbiBjZW50bGV0cwUPYnVybnh0bnVzZHByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAg9BVEggaW4gY2VudGxldHMAC3ByaWNlZ3Jvd3RoCQBpAgkAZQIJAGsDBQJkOAURYnVybnh0bndhdmVzcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCIWludGlhbCBwcmljZSBCVVJOLVhUTiBpbiB3YXZlbGV0cwUCZDgAwIQ9BwFpAQdpbnZva2UxAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEBWNsYWltCQD8BwQFBHRoaXMCBWNsYWltBQNuaWwFA25pbAMJAAACBQVjbGFpbQUFY2xhaW0EBmRFbnRyeQkA/AcEBQR0aGlzAgZkRW50cnkFA25pbAUDbmlsAwkAAAIFBmRFbnRyeQUGZEVudHJ5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFY2xhaW0AAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQUYnVybnh0bkJhbGFuY2VCZWZvcmUJAPAHAgUEdGhpcwUJYnVybnh0bklkAwkAAAIFFGJ1cm54dG5CYWxhbmNlQmVmb3JlBRRidXJueHRuQmFsYW5jZUJlZm9yZQQIY2xhaW1JbnYJAPwHBAkBB0FkZHJlc3MBBQpwb29sU1dBVkVTAhFjbGFpbUluZGV4UmV3YXJkcwUDbmlsBQNuaWwDCQAAAgUIY2xhaW1JbnYFCGNsYWltSW52BAljbGFpbUludlcJAPwHBAkBB0FkZHJlc3MBBQZwb29sQlcCEWNsYWltSW5kZXhSZXdhcmRzBQNuaWwFA25pbAMJAAACBQljbGFpbUludlcFCWNsYWltSW52VwQRYnVybnh0bkRpZmZlcmVuY2UJAGUCCQDwBwIFBHRoaXMFCWJ1cm54dG5JZAUUYnVybnh0bkJhbGFuY2VCZWZvcmUJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleUJ1cm54dG5BbW91bnQFEWJ1cm54dG5EaWZmZXJlbmNlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFB2ludm9rZXIFEWJ1cm54dG5EaWZmZXJlbmNlBQlidXJueHRuSWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQZkRW50cnkAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgkAzAgCCQEMSW50ZWdlckVudHJ5AgIiQlVSTi1YVE4gLyBXQVZFUyBwcmljZSBpbiB3YXZlbGV0cwURYnVybnh0bndhdmVzcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQICDlByaWNlIGdyb3d0aCAlBQtwcmljZWdyb3d0aAkAzAgCCQEMSW50ZWdlckVudHJ5AgIPQVRIIGluIHdhdmVsZXRzBQNBVEgJAMwIAgkBDEludGVnZXJFbnRyeQICIEJVUk4tWFROIC8gVVNEIHByaWNlIGluIGNlbnRsZXRzBQ9idXJueHRudXNkcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQICD0FUSCBpbiBjZW50bGV0cwUGQVRIdXNkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVBY3RpdmF0ZWQgYmxvY2toZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgIPV2F2ZXMvVVNEIHByaWNlBQ13YXZlc3VzZHByaWNlBQNuaWwBaQEHaW52b2tlMgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAxjbGFpbVN3b3BHb3YJAPwHBAUHc3dvcEdvdgIUY2xhaW1BbmRXaXRoZHJhd1NXT1AFA25pbAUDbmlsAwkAAAIFDGNsYWltU3dvcEdvdgUMY2xhaW1Td29wR292BBBjbGFpbVN3b3BGYXJtaW5nCQD8BwQFCHN3b3BGYXJtAghjbGFpbUFsbAkAzAgCCQDMCAICIzNQSGFOZ29tQmtydkVMMlFudUphclFWSmE3MXdqdzlxaXFHBQNuaWwFA25pbAUDbmlsAwkAAAIFEGNsYWltU3dvcEZhcm1pbmcFEGNsYWltU3dvcEZhcm1pbmcEEHN3YXBTd29wVG9QdXp6bGUJAPwHBAUGc3dvcFNDAgxyb3V0aW5nVHJhZGUJAMwIAgkAzAgCAiMzUDI3UzlWMzZrdzJNY2pXUlozN0F4VHg4aXdrZDdIWHc2VwkAzAgCAiMzUEJIeUV3bUVSUjFDRWtyVE5iUGoyYmd5aXNUZlBScWZlZQUDbmlsCQDMCAIJAMwIAgIEY3BtbQkAzAgCAgRjcG1tBQNuaWwJAMwIAgkAzAgCAAEJAMwIAgABBQNuaWwJAMwIAgkAzAgCAAAJAMwIAgAABQNuaWwJAMwIAgkAzAgCAg9BX2Fzc2V0X2JhbGFuY2UJAMwIAgIPQl9hc3NldF9iYWxhbmNlCQDMCAICD0JfYXNzZXRfYmFsYW5jZQkAzAgCAg9BX2Fzc2V0X2JhbGFuY2UFA25pbAkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGc3dvcElkCQDwBwIFBHRoaXMFBnN3b3BJZAUDbmlsAwkAAAIFEHN3YXBTd29wVG9QdXp6bGUFEHN3YXBTd29wVG9QdXp6bGUEA2ludgMJAGYCCQDwBwIFBHRoaXMFBnB1enpsZQAACQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCCQDYBAEFB3Bvb2xCQkIFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGcHV6emxlCQDwBwIFBHRoaXMFBnB1enpsZQUDbmlsBQR1bml0AwkAAAIFA2ludgUDaW52BApzdGFrZVBaYmJiAwkAZgIJAPAHAgUEdGhpcwUFcHpCQkIAAAkA/AcECQEHQWRkcmVzcwEFB3Bvb2xCQkICDXN0YWtlSW5kZXhGb3IJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBXB6QkJCCQDwBwIFBHRoaXMFBXB6QkJCBQNuaWwFBHVuaXQDCQAAAgUKc3Rha2VQWmJiYgUKc3Rha2VQWmJiYgQHc3dhcFh0bgkA/AcEBQZzd29wU0MCDGNhbGxGdW5jdGlvbgkAzAgCAghleGNoYW5nZQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUFeHRuSWQJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5QnVybkFtb3VudAUDbmlsAwkAAAIFB3N3YXBYdG4FB3N3YXBYdG4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUHaW52b2tlcgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlCdXJuQW1vdW50BQV4dG5JZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQdpbnZva2VyCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUJ1cm5BbW91bnQFBnN1cmZJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmJ1cm5BbW91bnQBBmFtb3VudAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUJ1cm5BbW91bnQFBmFtb3VudAUDbmlsAWkBCHdpdGhkcmF3AAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBARoBVxiJGyRtL+JEpbK5LtBkI1AuKd9yMNoyWQkAAgECCW5vIGFjY2VzcwQId2l0aGRyYXcJAPwHBAkBB0FkZHJlc3MBARoBV3US3ZOCD1veJXYVOctJ1R9TKAnE6HFeJwIVd2l0aGRyYXdWZXN0ZWRBbGxVU0ROCQDMCAIHCQDMCAIGBQNuaWwFA25pbAMJAAACBQh3aXRoZHJhdwUId2l0aGRyYXcFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1pbXBvcnRWVlhUTkxQAAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBARoBVxiJGyRtL+JEpbK5LtBkI1AuKd9yMNoyWQkAAgECCW5vIGFjY2VzcwQGaW1wb3J0CQD8BwQJAQdBZGRyZXNzAQEaAVd1Et2Tgg9b3iV2FTnLSdUfUygJxOhxXicCCGltcG9ydExQBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3Z2eHRubHAJAPAHAgUEdGhpcwUHdnZ4dG5scAUDbmlsAwkAAAIFBmltcG9ydAUGaW1wb3J0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AJf25/g==", "height": 4165672, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HjF75CSvACwEuKyNTXFGG57XTyBvxbozGTw2FRCzc7YH Next: BcRVpSUM3dA4SubmxaH9UBdn5bBNs2CkspH44RF5HLXn Diff:
Old | New | Differences | |
---|---|---|---|
85 | 85 | ||
86 | 86 | let baseAmount = toInt(fraction(toBigInt(assetBalance(WX_BURNXTN_WAVES, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR)) | |
87 | 87 | ||
88 | + | let baseAmount2 = toInt(fraction(toBigInt(assetBalance(WX_WAVES_USD, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR)) | |
89 | + | ||
88 | 90 | let wavesInWX = (wavesBalance(WX_BURNXTN_WAVES).regular + baseAmount) | |
89 | 91 | ||
90 | 92 | let burnxtnInWX = assetBalance(WX_BURNXTN_WAVES, burnxtnId) | |
91 | 93 | ||
92 | 94 | let burnxtnwavesprice = fraction(d8, wavesInWX, burnxtnInWX) | |
93 | 95 | ||
94 | - | let wavesInWX2 = (wavesBalance(WX_WAVES_USD).regular + | |
96 | + | let wavesInWX2 = (wavesBalance(WX_WAVES_USD).regular + baseAmount2) | |
95 | 97 | ||
96 | 98 | let usdInWX = assetBalance(WX_WAVES_USD, usdtppt) | |
97 | 99 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func tryGetInteger (address,key) = match getInteger(address, key) { | |
5 | 5 | case b: Int => | |
6 | 6 | b | |
7 | 7 | case _ => | |
8 | 8 | 0 | |
9 | 9 | } | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | let keyBurnAmount = "burn amount" | |
13 | 13 | ||
14 | 14 | let keyBurnxtnAmount = "burn BURN-XTN amount" | |
15 | 15 | ||
16 | 16 | let swopSC = Address(base58'3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj') | |
17 | 17 | ||
18 | 18 | let swopFarm = Address(base58'3P73HDkPqG15nLXevjCbmXtazHYTZbpPoPw') | |
19 | 19 | ||
20 | 20 | let swopGov = Address(base58'3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS') | |
21 | 21 | ||
22 | 22 | let invoker = Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt') | |
23 | 23 | ||
24 | 24 | let d6 = 1000000 | |
25 | 25 | ||
26 | 26 | let d8 = 100000000 | |
27 | 27 | ||
28 | 28 | let poolBBB = base58'3P9VPwVfNj3dDevQZt1Z951A4K57cmQmCgk' | |
29 | 29 | ||
30 | 30 | let poolBW = base58'3P48ZN6yghcoQaHPtLM9V2hFc5cd4ARd1hc' | |
31 | 31 | ||
32 | 32 | let poolSWAVES = base58'3PK4ZxDsRB8pNSuiYbco9K8BchqnhhKwYsq' | |
33 | 33 | ||
34 | 34 | let poolLP = base58'3PQoBfUKHkJAeGWhooLP7WS8ovb54av9Jp2' | |
35 | 35 | ||
36 | 36 | let xtnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
37 | 37 | ||
38 | 38 | let burnxtnId = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns' | |
39 | 39 | ||
40 | 40 | let surfId = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL' | |
41 | 41 | ||
42 | 42 | let swopId = base58'Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT' | |
43 | 43 | ||
44 | 44 | let swaves = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7' | |
45 | 45 | ||
46 | 46 | let puzzle = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS' | |
47 | 47 | ||
48 | 48 | let vvxtnlp = base58'8KEtor9aSsSj38MknyAE7k1uRThHY9prAXgiE4D7WpyL' | |
49 | 49 | ||
50 | 50 | let pzBBB = base58'AE12ZN9PQyPKHR5CqR2Qau31JqS68rZbVYxaJbRM8kFj' | |
51 | 51 | ||
52 | 52 | let usdtppt = base58'G5WWWzzVsWRyzGf32xojbnfp7gXbWrgqJT8RcVWEfLmC' | |
53 | 53 | ||
54 | 54 | let SWAVES_stake = Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV') | |
55 | 55 | ||
56 | 56 | func _loadInt (key_,default_) = match getInteger(SWAVES_stake, key_) { | |
57 | 57 | case a: Int => | |
58 | 58 | a | |
59 | 59 | case _ => | |
60 | 60 | default_ | |
61 | 61 | } | |
62 | 62 | ||
63 | 63 | ||
64 | 64 | func _loadBigInt (key_,default_) = match getBinary(SWAVES_stake, key_) { | |
65 | 65 | case a: ByteVector => | |
66 | 66 | toBigInt(a) | |
67 | 67 | case _ => | |
68 | 68 | default_ | |
69 | 69 | } | |
70 | 70 | ||
71 | 71 | ||
72 | 72 | let WX_BURNXTN_WAVES = Address(base58'3P5vwLbXddLWpsRspftMxLuzfsjk3dLT3n5') | |
73 | 73 | ||
74 | 74 | let WX_WAVES_USD = Address(base58'3PKfrupEydU2nZAghVjZAfvCwMBkzuR1F52') | |
75 | 75 | ||
76 | 76 | let lastRate = _loadBigInt("LAST_RATE", toBigInt(1000000000000)) | |
77 | 77 | ||
78 | 78 | let currentRate = _loadBigInt("CURRENT_RATE", toBigInt(0)) | |
79 | 79 | ||
80 | 80 | let lastHeight = _loadInt("LAST_HEIGHT", 0) | |
81 | 81 | ||
82 | 82 | let targetHeight = min([_loadInt("TARGET_HEIGHT", 0), height]) | |
83 | 83 | ||
84 | 84 | let lastRateUpdated = (lastRate + (currentRate * toBigInt((targetHeight - lastHeight)))) | |
85 | 85 | ||
86 | 86 | let baseAmount = toInt(fraction(toBigInt(assetBalance(WX_BURNXTN_WAVES, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR)) | |
87 | 87 | ||
88 | + | let baseAmount2 = toInt(fraction(toBigInt(assetBalance(WX_WAVES_USD, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR)) | |
89 | + | ||
88 | 90 | let wavesInWX = (wavesBalance(WX_BURNXTN_WAVES).regular + baseAmount) | |
89 | 91 | ||
90 | 92 | let burnxtnInWX = assetBalance(WX_BURNXTN_WAVES, burnxtnId) | |
91 | 93 | ||
92 | 94 | let burnxtnwavesprice = fraction(d8, wavesInWX, burnxtnInWX) | |
93 | 95 | ||
94 | - | let wavesInWX2 = (wavesBalance(WX_WAVES_USD).regular + | |
96 | + | let wavesInWX2 = (wavesBalance(WX_WAVES_USD).regular + baseAmount2) | |
95 | 97 | ||
96 | 98 | let usdInWX = assetBalance(WX_WAVES_USD, usdtppt) | |
97 | 99 | ||
98 | 100 | let wavesusdprice = fraction(d6, wavesInWX2, usdInWX) | |
99 | 101 | ||
100 | 102 | let burnxtnusdprice = fraction(burnxtnwavesprice, wavesusdprice, d6) | |
101 | 103 | ||
102 | 104 | let ATH = if ((burnxtnwavesprice > getIntegerValue("ATH in wavelets"))) | |
103 | 105 | then burnxtnwavesprice | |
104 | 106 | else getIntegerValue(this, "ATH in wavelets") | |
105 | 107 | ||
106 | 108 | let ATHusd = if ((burnxtnusdprice > getIntegerValue("ATH in centlets"))) | |
107 | 109 | then burnxtnusdprice | |
108 | 110 | else getIntegerValue(this, "ATH in centlets") | |
109 | 111 | ||
110 | 112 | let pricegrowth = ((fraction(d8, burnxtnwavesprice, getIntegerValue(this, "intial price BURN-XTN in wavelets")) - d8) / 1000000) | |
111 | 113 | ||
112 | 114 | @Callable(i) | |
113 | 115 | func invoke1 () = if ((i.caller != this)) | |
114 | 116 | then throw("access only by project owner") | |
115 | 117 | else { | |
116 | 118 | let claim = invoke(this, "claim", nil, nil) | |
117 | 119 | if ((claim == claim)) | |
118 | 120 | then { | |
119 | 121 | let dEntry = invoke(this, "dEntry", nil, nil) | |
120 | 122 | if ((dEntry == dEntry)) | |
121 | 123 | then nil | |
122 | 124 | else throw("Strict value is not equal to itself.") | |
123 | 125 | } | |
124 | 126 | else throw("Strict value is not equal to itself.") | |
125 | 127 | } | |
126 | 128 | ||
127 | 129 | ||
128 | 130 | ||
129 | 131 | @Callable(i) | |
130 | 132 | func claim () = if ((i.caller != this)) | |
131 | 133 | then throw("access only by project owner") | |
132 | 134 | else { | |
133 | 135 | let burnxtnBalanceBefore = assetBalance(this, burnxtnId) | |
134 | 136 | if ((burnxtnBalanceBefore == burnxtnBalanceBefore)) | |
135 | 137 | then { | |
136 | 138 | let claimInv = invoke(Address(poolSWAVES), "claimIndexRewards", nil, nil) | |
137 | 139 | if ((claimInv == claimInv)) | |
138 | 140 | then { | |
139 | 141 | let claimInvW = invoke(Address(poolBW), "claimIndexRewards", nil, nil) | |
140 | 142 | if ((claimInvW == claimInvW)) | |
141 | 143 | then { | |
142 | 144 | let burnxtnDifference = (assetBalance(this, burnxtnId) - burnxtnBalanceBefore) | |
143 | 145 | [IntegerEntry(keyBurnxtnAmount, burnxtnDifference), ScriptTransfer(invoker, burnxtnDifference, burnxtnId)] | |
144 | 146 | } | |
145 | 147 | else throw("Strict value is not equal to itself.") | |
146 | 148 | } | |
147 | 149 | else throw("Strict value is not equal to itself.") | |
148 | 150 | } | |
149 | 151 | else throw("Strict value is not equal to itself.") | |
150 | 152 | } | |
151 | 153 | ||
152 | 154 | ||
153 | 155 | ||
154 | 156 | @Callable(i) | |
155 | 157 | func dEntry () = if ((i.caller != this)) | |
156 | 158 | then throw("access only by project owner") | |
157 | 159 | else [IntegerEntry("BURN-XTN / WAVES price in wavelets", burnxtnwavesprice), IntegerEntry("Price growth %", pricegrowth), IntegerEntry("ATH in wavelets", ATH), IntegerEntry("BURN-XTN / USD price in centlets", burnxtnusdprice), IntegerEntry("ATH in centlets", ATHusd), IntegerEntry("Activated blockheight", height), IntegerEntry("Waves/USD price", wavesusdprice)] | |
158 | 160 | ||
159 | 161 | ||
160 | 162 | ||
161 | 163 | @Callable(i) | |
162 | 164 | func invoke2 () = if ((i.caller != this)) | |
163 | 165 | then throw("access only by project owner") | |
164 | 166 | else { | |
165 | 167 | let claimSwopGov = invoke(swopGov, "claimAndWithdrawSWOP", nil, nil) | |
166 | 168 | if ((claimSwopGov == claimSwopGov)) | |
167 | 169 | then { | |
168 | 170 | let claimSwopFarming = invoke(swopFarm, "claimAll", [["3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG"]], nil) | |
169 | 171 | if ((claimSwopFarming == claimSwopFarming)) | |
170 | 172 | then { | |
171 | 173 | let swapSwopToPuzzle = invoke(swopSC, "routingTrade", [["3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W", "3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee"], ["cpmm", "cpmm"], [1, 1], [0, 0], ["A_asset_balance", "B_asset_balance", "B_asset_balance", "A_asset_balance"], 1], [AttachedPayment(swopId, assetBalance(this, swopId))]) | |
172 | 174 | if ((swapSwopToPuzzle == swapSwopToPuzzle)) | |
173 | 175 | then { | |
174 | 176 | let inv = if ((assetBalance(this, puzzle) > 0)) | |
175 | 177 | then invoke(Address(poolLP), "generateWithOneToken", [toBase58String(poolBBB)], [AttachedPayment(puzzle, assetBalance(this, puzzle))]) | |
176 | 178 | else unit | |
177 | 179 | if ((inv == inv)) | |
178 | 180 | then { | |
179 | 181 | let stakePZbbb = if ((assetBalance(this, pzBBB) > 0)) | |
180 | 182 | then invoke(Address(poolBBB), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBBB, assetBalance(this, pzBBB))]) | |
181 | 183 | else unit | |
182 | 184 | if ((stakePZbbb == stakePZbbb)) | |
183 | 185 | then { | |
184 | 186 | let swapXtn = invoke(swopSC, "callFunction", ["exchange", 1], [AttachedPayment(xtnId, tryGetInteger(this, keyBurnAmount))]) | |
185 | 187 | if ((swapXtn == swapXtn)) | |
186 | 188 | then [ScriptTransfer(invoker, tryGetInteger(this, keyBurnAmount), xtnId), ScriptTransfer(invoker, tryGetInteger(this, keyBurnAmount), surfId)] | |
187 | 189 | else throw("Strict value is not equal to itself.") | |
188 | 190 | } | |
189 | 191 | else throw("Strict value is not equal to itself.") | |
190 | 192 | } | |
191 | 193 | else throw("Strict value is not equal to itself.") | |
192 | 194 | } | |
193 | 195 | else throw("Strict value is not equal to itself.") | |
194 | 196 | } | |
195 | 197 | else throw("Strict value is not equal to itself.") | |
196 | 198 | } | |
197 | 199 | else throw("Strict value is not equal to itself.") | |
198 | 200 | } | |
199 | 201 | ||
200 | 202 | ||
201 | 203 | ||
202 | 204 | @Callable(i) | |
203 | 205 | func burnAmount (amount) = if ((i.caller != this)) | |
204 | 206 | then throw("access only by project owner") | |
205 | 207 | else [IntegerEntry(keyBurnAmount, amount)] | |
206 | 208 | ||
207 | 209 | ||
208 | 210 | ||
209 | 211 | @Callable(i) | |
210 | 212 | func withdraw () = if ((i.caller != Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt'))) | |
211 | 213 | then throw("no access") | |
212 | 214 | else { | |
213 | 215 | let withdraw = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllUSDN", [false, true], nil) | |
214 | 216 | if ((withdraw == withdraw)) | |
215 | 217 | then nil | |
216 | 218 | else throw("Strict value is not equal to itself.") | |
217 | 219 | } | |
218 | 220 | ||
219 | 221 | ||
220 | 222 | ||
221 | 223 | @Callable(i) | |
222 | 224 | func importVVXTNLP () = if ((i.caller != Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt'))) | |
223 | 225 | then throw("no access") | |
224 | 226 | else { | |
225 | 227 | let import = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "importLP", nil, [AttachedPayment(vvxtnlp, assetBalance(this, vvxtnlp))]) | |
226 | 228 | if ((import == import)) | |
227 | 229 | then nil | |
228 | 230 | else throw("Strict value is not equal to itself.") | |
229 | 231 | } | |
230 | 232 | ||
231 | 233 |
github/deemru/w8io/0e76f2f 56.25 ms ◑