tx · GikwpRtYPTcT6BeZruDsJqwVjpkm54jB7q8xCEeNujVV

3PQoBfUKHkJAeGWhooLP7WS8ovb54av9Jp2:  -0.01000000 Waves

2023.12.20 15:39 [3960961] smart account 3PQoBfUKHkJAeGWhooLP7WS8ovb54av9Jp2 > SELF 0.00000000 Waves

{ "type": 13, "id": "GikwpRtYPTcT6BeZruDsJqwVjpkm54jB7q8xCEeNujVV", "fee": 1000000, "feeAssetId": null, "timestamp": 1703076060377, "version": 2, "chainId": 87, "sender": "3PQoBfUKHkJAeGWhooLP7WS8ovb54av9Jp2", "senderPublicKey": "4qegNTFAzMPavgBUwNXw5omMQEAhsPJKtSBxJfs8ALM6", "proofs": [ "5gtL8TqHgmgcTDRnjGnE4fBMNtdMLx7PMP9JLCjCnYUvNRW2EbiKKgNK5BDoHzSgThozQP4YFdXrsQkDEwgoXaqT" ], "script": "base64:BgIYCAISAwoBCBIECgIBCBIDCgEIEgQKAgEIBQEKaXNTaHV0ZG93bgAEByRtYXRjaDAJAJsIAgkBB0FkZHJlc3MBARoBV414U3qfFdI9lTSLgnlk2BnTJx6b8jVaqAILaXNfc2h1dGRvd24DCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBeAUHJG1hdGNoMAUBeAcBDWdldEFzc2V0Qnl0ZXMBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFBHVuaXQJANkEAQUKYXNzZXRJZFN0cgEOZ2V0QXNzZXRTdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBCQEFdmFsdWUBBQdhc3NldElkAgVXQVZFUwEPZ2V0VG9rZW5CYWxhbmNlAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAXQFByRtYXRjaDAJAPAHAgUEdGhpcwUBdAgJAO8HAQUEdGhpcwlhdmFpbGFibGUBE2FkZEFzc2V0Qnl0ZXNUb0xpc3QCBWFjY3VtBGl0ZW0JAM4IAgUFYWNjdW0JAMwIAgkBDWdldEFzc2V0Qnl0ZXMBBQRpdGVtBQNuaWwEAWkBIWdlbmVyYXRlSW5kZXhXaXRoT25lVG9rZW5BbmRTdGFrZQEObWFpbkFkZHJlc3NTdHIEB3Rva2VuSWQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQLYmFzZUFzc2V0SWQFB3Rva2VuSWQEC21haW5BZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUObWFpbkFkZHJlc3NTdHIECGFzc2V0SWRzCgACJGwJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgULbWFpbkFkZHJlc3MCD3N0YXRpY190b2tlbklkcwIBLAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQETYWRkQXNzZXRCeXRlc1RvTGlzdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQRc2Vjb25kYXJ5QXNzZXRJZHMJANEIAgUIYXNzZXRJZHMJAQV2YWx1ZQEJAM8IAgUIYXNzZXRJZHMFB3Rva2VuSWQEC3Bvb2xJbmRleElkCQERQGV4dHJOYXRpdmUoMTA1MikCBQttYWluQWRkcmVzcwITZ2xvYmFsX3Bvb2xUb2tlbl9pZAQGYW1vdW50CQBpAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAkE4KAQdoYW5kbGVyAgVhY2N1bQdhc3NldElkBAphc3NldElkU3RyCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldElkBAthc3NldFdlaWdodAkBEUBleHRyTmF0aXZlKDEwNTApAgULbWFpbkFkZHJlc3MJAKwCAgkArAICAgdzdGF0aWNfBQphc3NldElkU3RyAgdfd2VpZ2h0BAJpbgQHJG1hdGNoMAkA/QcEBQttYWluQWRkcmVzcwIEc3dhcAkAzAgCCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldElkCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQtiYXNlQXNzZXRJZAkAaAIFBmFtb3VudAULYXNzZXRXZWlnaHQFA25pbAMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFAXgAAAMJAAACBQJpbgUCaW4JAM4IAgUFYWNjdW0JAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SWQFAmluBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4ED2Jhc2VBc3NldFdlaWdodAkBEUBleHRyTmF0aXZlKDEwNTApAgULbWFpbkFkZHJlc3MJAKwCAgkArAICAgdzdGF0aWNfCQEOZ2V0QXNzZXRTdHJpbmcBBQtiYXNlQXNzZXRJZAIHX3dlaWdodAQPZXhjaGFuZ2VJbnZva2VzCgACJGwFEXNlY29uZGFyeUFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgULYmFzZUFzc2V0SWQJAGgCBQZhbW91bnQFD2Jhc2VBc3NldFdlaWdodAUDbmlsCgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdoYW5kbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA5CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAwkAAAIFD2V4Y2hhbmdlSW52b2tlcwUPZXhjaGFuZ2VJbnZva2VzBA1QSXNzdWVkQW1vdW50BAckbWF0Y2gwCQD9BwQFC21haW5BZGRyZXNzAg1nZW5lcmF0ZUluZGV4CQDMCAIHBQNuaWwFD2V4Y2hhbmdlSW52b2tlcwMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFAXgAAAMJAAACBQ1QSXNzdWVkQW1vdW50BQ1QSXNzdWVkQW1vdW50BAtzdGFrZUludm9rZQkA/QcEBQttYWluQWRkcmVzcwIKc3Rha2VJbmRleAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQtwb29sSW5kZXhJZAUNUElzc3VlZEFtb3VudAUDbmlsAwkAAAIFC3N0YWtlSW52b2tlBQtzdGFrZUludm9rZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBH3Vuc3Rha2VJbmRleEFuZFJlZGVlbUFzT25lVG9rZW4CC2luZGV4QW1vdW50Dm1haW5BZGRyZXNzU3RyBAttYWluQWRkcmVzcwkBB0FkZHJlc3MBCQDZBAEFDm1haW5BZGRyZXNzU3RyBAhhc3NldElkcwoAAiRsCQC1CQIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFC21haW5BZGRyZXNzAg9zdGF0aWNfdG9rZW5JZHMCASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBE2FkZEFzc2V0Qnl0ZXNUb0xpc3QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEC2Jhc2VBc3NldElkCQENZ2V0QXNzZXRCeXRlcwEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFC21haW5BZGRyZXNzAhJzdGF0aWNfYmFzZVRva2VuSWQEEXNlY29uZGFyeUFzc2V0SWRzCQDRCAIFCGFzc2V0SWRzCQEFdmFsdWUBCQDPCAIFCGFzc2V0SWRzBQtiYXNlQXNzZXRJZAQLcG9vbEluZGV4SWQJARFAZXh0ck5hdGl2ZSgxMDUyKQIFC21haW5BZGRyZXNzAhNnbG9iYWxfcG9vbFRva2VuX2lkCgEMZm9sZEhhbmRsZXIxAgVhY2N1bQdhc3NldElkCQDOCAIFBWFjY3VtCQDMCAIJAQ9nZXRUb2tlbkJhbGFuY2UBBQdhc3NldElkBQNuaWwEDmJhbGFuY2VzQmVmb3JlCgACJGwFCGFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQxmb2xkSGFuZGxlcjECBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoDCQAAAgUOYmFsYW5jZXNCZWZvcmUFDmJhbGFuY2VzQmVmb3JlBA9iYXNlQXNzZXRCZWZvcmUJAQ9nZXRUb2tlbkJhbGFuY2UBBQtiYXNlQXNzZXRJZAMJAAACBQ9iYXNlQXNzZXRCZWZvcmUFD2Jhc2VBc3NldEJlZm9yZQQNdW5zdGFrZUludm9rZQkA/QcEBQttYWluQWRkcmVzcwIVdW5zdGFrZUFuZFJlZGVlbUluZGV4CQDMCAIFC2luZGV4QW1vdW50BQNuaWwFA25pbAMJAAACBQ11bnN0YWtlSW52b2tlBQ11bnN0YWtlSW52b2tlBA1iYWxhbmNlc0FmdGVyCgACJGwFCGFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYyXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQxmb2xkSGFuZGxlcjECBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjJfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYyXzICCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoDCQAAAgUNYmFsYW5jZXNBZnRlcgUNYmFsYW5jZXNBZnRlcgQOYmFzZUFzc2V0QWZ0ZXIJAQ9nZXRUb2tlbkJhbGFuY2UBBQtiYXNlQXNzZXRJZAMJAAACBQ5iYXNlQXNzZXRBZnRlcgUOYmFzZUFzc2V0QWZ0ZXIKAQxmb2xkSGFuZGxlcjICBWFjY3VtB2Fzc2V0SWQECGFzc2V0TnVtCQEFdmFsdWUBCQDPCAIFCGFzc2V0SWRzBQdhc3NldElkBAZhbW91bnQJAGUCCQCRAwIFDWJhbGFuY2VzQWZ0ZXIFCGFzc2V0TnVtCQCRAwIFDmJhbGFuY2VzQmVmb3JlBQhhc3NldE51bQQCaW4DCQAAAgUHYXNzZXRJZAULYmFzZUFzc2V0SWQFBmFtb3VudAQHJG1hdGNoMAkA/QcEBQttYWluQWRkcmVzcwIEc3dhcAkAzAgCCQEOZ2V0QXNzZXRTdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJZAUGYW1vdW50BQNuaWwDCQABAgUHJG1hdGNoMAIDSW50BAF4BQckbWF0Y2gwBQF4AAADCQAAAgUCaW4FAmluCQBkAgUFYWNjdW0FAmluCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAllZ2dBbW91bnQKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjNfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGZvbGRIYW5kbGVyMgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmM18yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgOQkBBSRmM18yAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQMJAAACBQllZ2dBbW91bnQFCWVnZ0Ftb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGQCBQllZ2dBbW91bnQJAGUCBQ5iYXNlQXNzZXRBZnRlcgUPYmFzZUFzc2V0QmVmb3JlBQtiYXNlQXNzZXRJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFWdlbmVyYXRlSW5kZXhBbmRTdGFrZQEObWFpbkFkZHJlc3NTdHIEC21haW5BZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUObWFpbkFkZHJlc3NTdHIECGFzc2V0SWRzCgACJGwJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgULbWFpbkFkZHJlc3MCD3N0YXRpY190b2tlbklkcwIBLAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQETYWRkQXNzZXRCeXRlc1RvTGlzdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQLYmFzZUFzc2V0SWQJAQ1nZXRBc3NldEJ5dGVzAQkBEUBleHRyTmF0aXZlKDEwNTMpAgULbWFpbkFkZHJlc3MCEnN0YXRpY19iYXNlVG9rZW5JZAQRc2Vjb25kYXJ5QXNzZXRJZHMJANEIAgUIYXNzZXRJZHMJAQV2YWx1ZQEJAM8IAgUIYXNzZXRJZHMFC2Jhc2VBc3NldElkBAtwb29sSW5kZXhJZAkBEUBleHRyTmF0aXZlKDEwNTIpAgULbWFpbkFkZHJlc3MCE2dsb2JhbF9wb29sVG9rZW5faWQEDVBJc3N1ZWRBbW91bnQEByRtYXRjaDAJAP0HBAULbWFpbkFkZHJlc3MCDWdlbmVyYXRlSW5kZXgJAMwIAgYFA25pbAgFAWkIcGF5bWVudHMDCQABAgUHJG1hdGNoMAIDSW50BAF4BQckbWF0Y2gwBQF4AAADCQAAAgUNUElzc3VlZEFtb3VudAUNUElzc3VlZEFtb3VudAQLc3Rha2VJbnZva2UJAP0HBAULbWFpbkFkZHJlc3MCCnN0YWtlSW5kZXgFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgULcG9vbEluZGV4SWQFDVBJc3N1ZWRBbW91bnQFA25pbAMJAAACBQtzdGFrZUludm9rZQULc3Rha2VJbnZva2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARV1bnN0YWtlQW5kUmVkZWVtSW5kZXgCBmFtb3VudA5tYWluQWRkcmVzc1N0cgQLbWFpbkFkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQ5tYWluQWRkcmVzc1N0cgQIYXNzZXRJZHMKAAIkbAkAtQkCCQERQGV4dHJOYXRpdmUoMTA1MykCBQttYWluQWRkcmVzcwIPc3RhdGljX3Rva2VuSWRzAgEsCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARNhZGRBc3NldEJ5dGVzVG9MaXN0AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBAtiYXNlQXNzZXRJZAkBDWdldEFzc2V0Qnl0ZXMBCQERQGV4dHJOYXRpdmUoMTA1MykCBQttYWluQWRkcmVzcwISc3RhdGljX2Jhc2VUb2tlbklkBBFzZWNvbmRhcnlBc3NldElkcwkA0QgCBQhhc3NldElkcwkBBXZhbHVlAQkAzwgCBQhhc3NldElkcwULYmFzZUFzc2V0SWQEC3Bvb2xJbmRleElkCQERQGV4dHJOYXRpdmUoMTA1MikCBQttYWluQWRkcmVzcwITZ2xvYmFsX3Bvb2xUb2tlbl9pZAQNdW5zdGFrZUludm9rZQkA/QcEBQttYWluQWRkcmVzcwIMdW5zdGFrZUluZGV4CQDMCAIFBmFtb3VudAUDbmlsCAUBaQhwYXltZW50cwMJAAACBQ11bnN0YWtlSW52b2tlBQ11bnN0YWtlSW52b2tlBAxyZWRlZW1JbnZva2UJAP0HBAULbWFpbkFkZHJlc3MCC3JlZGVlbUluZGV4CQDMCAIGBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3Bvb2xJbmRleElkBQZhbW91bnQFA25pbAMJAAACBQxyZWRlZW1JbnZva2UFDHJlZGVlbUludm9rZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAMJAQppc1NodXRkb3duAAcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXnAo67C", "height": 3960961, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CTEnouJGg4XPm8KQ8jbepVDbCyjx4NGy7pD4tzwdcQXv Next: 3RhX27tnen3UcVbBU8ad8R5zFQCPdcbecWBoqFNKcubo Diff:
OldNewDifferences
3535
3636 @Callable(i)
3737 func generateIndexWithOneTokenAndStake (mainAddressStr) = {
38+ let tokenId = i.payments[0].assetId
39+ let baseAssetId = tokenId
3840 let mainAddress = Address(fromBase58String(mainAddressStr))
3941 let assetIds = {
4042 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
5052
5153 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
5254 }
53- let baseAssetId = getAssetBytes(getStringValue(mainAddress, "static_baseTokenId"))
54- let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, baseAssetId)))
55+ let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, tokenId)))
5556 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
56- let tokenId = i.payments[0].assetId
5757 let amount = (i.payments[0].amount / 10000)
5858 func handler (accum,assetId) = {
5959 let assetIdStr = getAssetString(assetId)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func isShutdown () = match getBoolean(Address(base58'3PEpv9hRFWEEBU22WRnLsw1bH4YGtcU728o'), "is_shutdown") {
55 case x: Boolean =>
66 x
77 case _ =>
88 false
99 }
1010
1111
1212 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
1313 then unit
1414 else fromBase58String(assetIdStr)
1515
1616
1717 func getAssetString (assetId) = match assetId {
1818 case b: ByteVector =>
1919 toBase58String(value(assetId))
2020 case _ =>
2121 "WAVES"
2222 }
2323
2424
2525 func getTokenBalance (assetId) = match assetId {
2626 case t: ByteVector =>
2727 assetBalance(this, t)
2828 case _ =>
2929 wavesBalance(this).available
3030 }
3131
3232
3333 func addAssetBytesToList (accum,item) = (accum ++ [getAssetBytes(item)])
3434
3535
3636 @Callable(i)
3737 func generateIndexWithOneTokenAndStake (mainAddressStr) = {
38+ let tokenId = i.payments[0].assetId
39+ let baseAssetId = tokenId
3840 let mainAddress = Address(fromBase58String(mainAddressStr))
3941 let assetIds = {
4042 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
4143 let $s = size($l)
4244 let $acc0 = nil
4345 func $f0_1 ($a,$i) = if (($i >= $s))
4446 then $a
4547 else addAssetBytesToList($a, $l[$i])
4648
4749 func $f0_2 ($a,$i) = if (($i >= $s))
4850 then $a
4951 else throw("List size exceeds 10")
5052
5153 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
5254 }
53- let baseAssetId = getAssetBytes(getStringValue(mainAddress, "static_baseTokenId"))
54- let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, baseAssetId)))
55+ let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, tokenId)))
5556 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
56- let tokenId = i.payments[0].assetId
5757 let amount = (i.payments[0].amount / 10000)
5858 func handler (accum,assetId) = {
5959 let assetIdStr = getAssetString(assetId)
6060 let assetWeight = getIntegerValue(mainAddress, (("static_" + assetIdStr) + "_weight"))
6161 let in = match reentrantInvoke(mainAddress, "swap", [getAssetString(assetId), 0], [AttachedPayment(baseAssetId, (amount * assetWeight))]) {
6262 case x: Int =>
6363 x
6464 case _ =>
6565 0
6666 }
6767 if ((in == in))
6868 then (accum ++ [AttachedPayment(assetId, in)])
6969 else throw("Strict value is not equal to itself.")
7070 }
7171
7272 let baseAssetWeight = getIntegerValue(mainAddress, (("static_" + getAssetString(baseAssetId)) + "_weight"))
7373 let exchangeInvokes = {
7474 let $l = secondaryAssetIds
7575 let $s = size($l)
7676 let $acc0 = [AttachedPayment(baseAssetId, (amount * baseAssetWeight))]
7777 func $f1_1 ($a,$i) = if (($i >= $s))
7878 then $a
7979 else handler($a, $l[$i])
8080
8181 func $f1_2 ($a,$i) = if (($i >= $s))
8282 then $a
8383 else throw("List size exceeds 9")
8484
8585 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9)
8686 }
8787 if ((exchangeInvokes == exchangeInvokes))
8888 then {
8989 let PIssuedAmount = match reentrantInvoke(mainAddress, "generateIndex", [false], exchangeInvokes) {
9090 case x: Int =>
9191 x
9292 case _ =>
9393 0
9494 }
9595 if ((PIssuedAmount == PIssuedAmount))
9696 then {
9797 let stakeInvoke = reentrantInvoke(mainAddress, "stakeIndex", nil, [AttachedPayment(poolIndexId, PIssuedAmount)])
9898 if ((stakeInvoke == stakeInvoke))
9999 then nil
100100 else throw("Strict value is not equal to itself.")
101101 }
102102 else throw("Strict value is not equal to itself.")
103103 }
104104 else throw("Strict value is not equal to itself.")
105105 }
106106
107107
108108
109109 @Callable(i)
110110 func unstakeIndexAndRedeemAsOneToken (indexAmount,mainAddressStr) = {
111111 let mainAddress = Address(fromBase58String(mainAddressStr))
112112 let assetIds = {
113113 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
114114 let $s = size($l)
115115 let $acc0 = nil
116116 func $f0_1 ($a,$i) = if (($i >= $s))
117117 then $a
118118 else addAssetBytesToList($a, $l[$i])
119119
120120 func $f0_2 ($a,$i) = if (($i >= $s))
121121 then $a
122122 else throw("List size exceeds 10")
123123
124124 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
125125 }
126126 let baseAssetId = getAssetBytes(getStringValue(mainAddress, "static_baseTokenId"))
127127 let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, baseAssetId)))
128128 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
129129 func foldHandler1 (accum,assetId) = (accum ++ [getTokenBalance(assetId)])
130130
131131 let balancesBefore = {
132132 let $l = assetIds
133133 let $s = size($l)
134134 let $acc0 = nil
135135 func $f1_1 ($a,$i) = if (($i >= $s))
136136 then $a
137137 else foldHandler1($a, $l[$i])
138138
139139 func $f1_2 ($a,$i) = if (($i >= $s))
140140 then $a
141141 else throw("List size exceeds 10")
142142
143143 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
144144 }
145145 if ((balancesBefore == balancesBefore))
146146 then {
147147 let baseAssetBefore = getTokenBalance(baseAssetId)
148148 if ((baseAssetBefore == baseAssetBefore))
149149 then {
150150 let unstakeInvoke = reentrantInvoke(mainAddress, "unstakeAndRedeemIndex", [indexAmount], nil)
151151 if ((unstakeInvoke == unstakeInvoke))
152152 then {
153153 let balancesAfter = {
154154 let $l = assetIds
155155 let $s = size($l)
156156 let $acc0 = nil
157157 func $f2_1 ($a,$i) = if (($i >= $s))
158158 then $a
159159 else foldHandler1($a, $l[$i])
160160
161161 func $f2_2 ($a,$i) = if (($i >= $s))
162162 then $a
163163 else throw("List size exceeds 10")
164164
165165 $f2_2($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
166166 }
167167 if ((balancesAfter == balancesAfter))
168168 then {
169169 let baseAssetAfter = getTokenBalance(baseAssetId)
170170 if ((baseAssetAfter == baseAssetAfter))
171171 then {
172172 func foldHandler2 (accum,assetId) = {
173173 let assetNum = value(indexOf(assetIds, assetId))
174174 let amount = (balancesAfter[assetNum] - balancesBefore[assetNum])
175175 let in = if ((assetId == baseAssetId))
176176 then amount
177177 else match reentrantInvoke(mainAddress, "swap", [getAssetString(baseAssetId), 0], [AttachedPayment(assetId, amount)]) {
178178 case x: Int =>
179179 x
180180 case _ =>
181181 0
182182 }
183183 if ((in == in))
184184 then (accum + in)
185185 else throw("Strict value is not equal to itself.")
186186 }
187187
188188 let eggAmount = {
189189 let $l = assetIds
190190 let $s = size($l)
191191 let $acc0 = 0
192192 func $f3_1 ($a,$i) = if (($i >= $s))
193193 then $a
194194 else foldHandler2($a, $l[$i])
195195
196196 func $f3_2 ($a,$i) = if (($i >= $s))
197197 then $a
198198 else throw("List size exceeds 9")
199199
200200 $f3_2($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9)
201201 }
202202 if ((eggAmount == eggAmount))
203203 then [ScriptTransfer(i.caller, (eggAmount + (baseAssetAfter - baseAssetBefore)), baseAssetId)]
204204 else throw("Strict value is not equal to itself.")
205205 }
206206 else throw("Strict value is not equal to itself.")
207207 }
208208 else throw("Strict value is not equal to itself.")
209209 }
210210 else throw("Strict value is not equal to itself.")
211211 }
212212 else throw("Strict value is not equal to itself.")
213213 }
214214 else throw("Strict value is not equal to itself.")
215215 }
216216
217217
218218
219219 @Callable(i)
220220 func generateIndexAndStake (mainAddressStr) = {
221221 let mainAddress = Address(fromBase58String(mainAddressStr))
222222 let assetIds = {
223223 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
224224 let $s = size($l)
225225 let $acc0 = nil
226226 func $f0_1 ($a,$i) = if (($i >= $s))
227227 then $a
228228 else addAssetBytesToList($a, $l[$i])
229229
230230 func $f0_2 ($a,$i) = if (($i >= $s))
231231 then $a
232232 else throw("List size exceeds 10")
233233
234234 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
235235 }
236236 let baseAssetId = getAssetBytes(getStringValue(mainAddress, "static_baseTokenId"))
237237 let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, baseAssetId)))
238238 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
239239 let PIssuedAmount = match reentrantInvoke(mainAddress, "generateIndex", [true], i.payments) {
240240 case x: Int =>
241241 x
242242 case _ =>
243243 0
244244 }
245245 if ((PIssuedAmount == PIssuedAmount))
246246 then {
247247 let stakeInvoke = reentrantInvoke(mainAddress, "stakeIndex", nil, [AttachedPayment(poolIndexId, PIssuedAmount)])
248248 if ((stakeInvoke == stakeInvoke))
249249 then nil
250250 else throw("Strict value is not equal to itself.")
251251 }
252252 else throw("Strict value is not equal to itself.")
253253 }
254254
255255
256256
257257 @Callable(i)
258258 func unstakeAndRedeemIndex (amount,mainAddressStr) = {
259259 let mainAddress = Address(fromBase58String(mainAddressStr))
260260 let assetIds = {
261261 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
262262 let $s = size($l)
263263 let $acc0 = nil
264264 func $f0_1 ($a,$i) = if (($i >= $s))
265265 then $a
266266 else addAssetBytesToList($a, $l[$i])
267267
268268 func $f0_2 ($a,$i) = if (($i >= $s))
269269 then $a
270270 else throw("List size exceeds 10")
271271
272272 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
273273 }
274274 let baseAssetId = getAssetBytes(getStringValue(mainAddress, "static_baseTokenId"))
275275 let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, baseAssetId)))
276276 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
277277 let unstakeInvoke = reentrantInvoke(mainAddress, "unstakeIndex", [amount], i.payments)
278278 if ((unstakeInvoke == unstakeInvoke))
279279 then {
280280 let redeemInvoke = reentrantInvoke(mainAddress, "redeemIndex", [true], [AttachedPayment(poolIndexId, amount)])
281281 if ((redeemInvoke == redeemInvoke))
282282 then nil
283283 else throw("Strict value is not equal to itself.")
284284 }
285285 else throw("Strict value is not equal to itself.")
286286 }
287287
288288
289289 @Verifier(tx)
290290 func verify () = if (isShutdown())
291291 then false
292292 else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
293293

github/deemru/w8io/3ef1775 
39.10 ms