tx · CuAWPpy9Y5CLoy7rHSkDvQLWaY5URj4KoCgXKteFwyb5

3PFtWqmN8kUiYaAataR1mMXKNEGohWkKBcB:  -0.01300000 Waves

2024.01.19 18:47 [4004350] smart account 3PFtWqmN8kUiYaAataR1mMXKNEGohWkKBcB > SELF 0.00000000 Waves

{ "type": 13, "id": "CuAWPpy9Y5CLoy7rHSkDvQLWaY5URj4KoCgXKteFwyb5", "fee": 1300000, "feeAssetId": null, "timestamp": 1705679253957, "version": 2, "chainId": 87, "sender": "3PFtWqmN8kUiYaAataR1mMXKNEGohWkKBcB", "senderPublicKey": "9qdwpov7zD621H8zaBNb52C4SFFFzNUPy6BPCzhmD1Wa", "proofs": [ "5mN9siMTYMYE6evcWw34RGHuEswUREwRqRKozUsrs6qwhwbdqjAoDwXLknmYRhYtsXbguMnGAKZFfk4CocnYiPfV" ], "script": "base64:BgIjCAISAwoBCBIECgIBCBIDCgEIEgQKAggIEgMKAQgSBAoCAQgFAQppc1NodXRkb3duAAQHJG1hdGNoMAkAmwgCCQEHQWRkcmVzcwEBGgFXjXhTep8V0j2VNIuCeWTYGdMnHpvyNVqoAgtpc19zaHV0ZG93bgMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAF4BQckbWF0Y2gwBQF4BwENZ2V0QXNzZXRCeXRlcwEKYXNzZXRJZFN0cgMJAAACBQphc3NldElkU3RyAgVXQVZFUwUEdW5pdAkA2QQBBQphc3NldElkU3RyAQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEJAQV2YWx1ZQEFB2Fzc2V0SWQCBVdBVkVTAQ9nZXRUb2tlbkJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBdAUHJG1hdGNoMAkA8AcCBQR0aGlzBQF0CAkA7wcBBQR0aGlzCWF2YWlsYWJsZQETYWRkQXNzZXRCeXRlc1RvTGlzdAIFYWNjdW0EaXRlbQkAzggCBQVhY2N1bQkAzAgCCQENZ2V0QXNzZXRCeXRlcwEFBGl0ZW0FA25pbAYBaQEhZ2VuZXJhdGVJbmRleFdpdGhPbmVUb2tlbkFuZFN0YWtlAQ5tYWluQWRkcmVzc1N0cgQHdG9rZW5JZAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAtiYXNlQXNzZXRJZAUHdG9rZW5JZAQLbWFpbkFkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQ5tYWluQWRkcmVzc1N0cgQIYXNzZXRJZHMKAAIkbAkAtQkCCQERQGV4dHJOYXRpdmUoMTA1MykCBQttYWluQWRkcmVzcwIPc3RhdGljX3Rva2VuSWRzAgEsCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARNhZGRBc3NldEJ5dGVzVG9MaXN0AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBBFzZWNvbmRhcnlBc3NldElkcwkA0QgCBQhhc3NldElkcwkBBXZhbHVlAQkAzwgCBQhhc3NldElkcwUHdG9rZW5JZAQLcG9vbEluZGV4SWQJARFAZXh0ck5hdGl2ZSgxMDUyKQIFC21haW5BZGRyZXNzAhNnbG9iYWxfcG9vbFRva2VuX2lkBAZhbW91bnQJAGkCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudACQTgoBB2hhbmRsZXICBWFjY3VtB2Fzc2V0SWQECmFzc2V0SWRTdHIJAQ5nZXRBc3NldFN0cmluZwEFB2Fzc2V0SWQEC2Fzc2V0V2VpZ2h0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQttYWluQWRkcmVzcwkArAICCQCsAgICB3N0YXRpY18FCmFzc2V0SWRTdHICB193ZWlnaHQEAmluBAckbWF0Y2gwCQD9BwQFC21haW5BZGRyZXNzAgRzd2FwCQDMCAIJAQ5nZXRBc3NldFN0cmluZwEFB2Fzc2V0SWQJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC2Jhc2VBc3NldElkCQBoAgUGYW1vdW50BQthc3NldFdlaWdodAUDbmlsAwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAUBeAAAAwkAAAIFAmluBQJpbgkAzggCBQVhY2N1bQkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJZAUCaW4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQPYmFzZUFzc2V0V2VpZ2h0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQttYWluQWRkcmVzcwkArAICCQCsAgICB3N0YXRpY18JAQ5nZXRBc3NldFN0cmluZwEFC2Jhc2VBc3NldElkAgdfd2VpZ2h0BA9leGNoYW5nZUludm9rZXMKAAIkbAURc2Vjb25kYXJ5QXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQtiYXNlQXNzZXRJZAkAaAIFBmFtb3VudAUPYmFzZUFzc2V0V2VpZ2h0BQNuaWwKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB2hhbmRsZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDkJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkDCQAAAgUPZXhjaGFuZ2VJbnZva2VzBQ9leGNoYW5nZUludm9rZXMEDVBJc3N1ZWRBbW91bnQEByRtYXRjaDAJAP0HBAULbWFpbkFkZHJlc3MCDWdlbmVyYXRlSW5kZXgJAMwIAgcFA25pbAUPZXhjaGFuZ2VJbnZva2VzAwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAUBeAAAAwkAAAIFDVBJc3N1ZWRBbW91bnQFDVBJc3N1ZWRBbW91bnQEC3N0YWtlSW52b2tlCQD9BwQFC21haW5BZGRyZXNzAgpzdGFrZUluZGV4BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3Bvb2xJbmRleElkBQ1QSXNzdWVkQW1vdW50BQNuaWwDCQAAAgULc3Rha2VJbnZva2UFC3N0YWtlSW52b2tlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEfdW5zdGFrZUluZGV4QW5kUmVkZWVtQXNPbmVUb2tlbgILaW5kZXhBbW91bnQObWFpbkFkZHJlc3NTdHIEC21haW5BZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUObWFpbkFkZHJlc3NTdHIECGFzc2V0SWRzCgACJGwJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgULbWFpbkFkZHJlc3MCD3N0YXRpY190b2tlbklkcwIBLAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQETYWRkQXNzZXRCeXRlc1RvTGlzdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQLYmFzZUFzc2V0SWQJAQ1nZXRBc3NldEJ5dGVzAQkBEUBleHRyTmF0aXZlKDEwNTMpAgULbWFpbkFkZHJlc3MCEnN0YXRpY19iYXNlVG9rZW5JZAQRc2Vjb25kYXJ5QXNzZXRJZHMJANEIAgUIYXNzZXRJZHMJAQV2YWx1ZQEJAM8IAgUIYXNzZXRJZHMFC2Jhc2VBc3NldElkBAtwb29sSW5kZXhJZAkBEUBleHRyTmF0aXZlKDEwNTIpAgULbWFpbkFkZHJlc3MCE2dsb2JhbF9wb29sVG9rZW5faWQKAQxmb2xkSGFuZGxlcjECBWFjY3VtB2Fzc2V0SWQJAM4IAgUFYWNjdW0JAMwIAgkBD2dldFRva2VuQmFsYW5jZQEFB2Fzc2V0SWQFA25pbAQOYmFsYW5jZXNCZWZvcmUKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGZvbGRIYW5kbGVyMQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACBQ5iYWxhbmNlc0JlZm9yZQUOYmFsYW5jZXNCZWZvcmUED2Jhc2VBc3NldEJlZm9yZQkBD2dldFRva2VuQmFsYW5jZQEFC2Jhc2VBc3NldElkAwkAAAIFD2Jhc2VBc3NldEJlZm9yZQUPYmFzZUFzc2V0QmVmb3JlBA11bnN0YWtlSW52b2tlCQD9BwQFC21haW5BZGRyZXNzAhV1bnN0YWtlQW5kUmVkZWVtSW5kZXgJAMwIAgULaW5kZXhBbW91bnQFA25pbAUDbmlsAwkAAAIFDXVuc3Rha2VJbnZva2UFDXVuc3Rha2VJbnZva2UEDWJhbGFuY2VzQWZ0ZXIKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjJfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGZvbGRIYW5kbGVyMQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMl8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjJfMgIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACBQ1iYWxhbmNlc0FmdGVyBQ1iYWxhbmNlc0FmdGVyBA5iYXNlQXNzZXRBZnRlcgkBD2dldFRva2VuQmFsYW5jZQEFC2Jhc2VBc3NldElkAwkAAAIFDmJhc2VBc3NldEFmdGVyBQ5iYXNlQXNzZXRBZnRlcgoBDGZvbGRIYW5kbGVyMgIFYWNjdW0HYXNzZXRJZAQIYXNzZXROdW0JAQV2YWx1ZQEJAM8IAgUIYXNzZXRJZHMFB2Fzc2V0SWQEBmFtb3VudAkAZQIJAJEDAgUNYmFsYW5jZXNBZnRlcgUIYXNzZXROdW0JAJEDAgUOYmFsYW5jZXNCZWZvcmUFCGFzc2V0TnVtBAJpbgMJAAACBQdhc3NldElkBQtiYXNlQXNzZXRJZAUGYW1vdW50BAckbWF0Y2gwCQD9BwQFC21haW5BZGRyZXNzAgRzd2FwCQDMCAIJAQ5nZXRBc3NldFN0cmluZwEFC2Jhc2VBc3NldElkCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldElkBQZhbW91bnQFA25pbAMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFAXgAAAMJAAACBQJpbgUCaW4JAGQCBQVhY2N1bQUCaW4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4ECWVnZ0Ftb3VudAoAAiRsBQhhc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmM18xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEMZm9sZEhhbmRsZXIyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYzXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA5CQEFJGYzXzICCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAwkAAAIFCWVnZ0Ftb3VudAUJZWdnQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZAIFCWVnZ0Ftb3VudAkAZQIFDmJhc2VBc3NldEFmdGVyBQ9iYXNlQXNzZXRCZWZvcmUFC2Jhc2VBc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEZZ2VuZXJhdGVJbmRleFdpdGhPbmVUb2tlbgEObWFpbkFkZHJlc3NTdHIEB3Rva2VuSWQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQLYmFzZUFzc2V0SWQFB3Rva2VuSWQEC21haW5BZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUObWFpbkFkZHJlc3NTdHIECGFzc2V0SWRzCgACJGwJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgULbWFpbkFkZHJlc3MCD3N0YXRpY190b2tlbklkcwIBLAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQETYWRkQXNzZXRCeXRlc1RvTGlzdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQRc2Vjb25kYXJ5QXNzZXRJZHMJANEIAgUIYXNzZXRJZHMJAQV2YWx1ZQEJAM8IAgUIYXNzZXRJZHMFB3Rva2VuSWQEC3Bvb2xJbmRleElkCQERQGV4dHJOYXRpdmUoMTA1MikCBQttYWluQWRkcmVzcwITZ2xvYmFsX3Bvb2xUb2tlbl9pZAQGYW1vdW50CQBpAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAkE4KAQdoYW5kbGVyAgVhY2N1bQdhc3NldElkBAphc3NldElkU3RyCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldElkBAthc3NldFdlaWdodAkBEUBleHRyTmF0aXZlKDEwNTApAgULbWFpbkFkZHJlc3MJAKwCAgkArAICAgdzdGF0aWNfBQphc3NldElkU3RyAgdfd2VpZ2h0BAJpbgQHJG1hdGNoMAkA/QcEBQttYWluQWRkcmVzcwIEc3dhcAkAzAgCCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldElkCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQtiYXNlQXNzZXRJZAkAaAIFBmFtb3VudAULYXNzZXRXZWlnaHQFA25pbAMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFAXgAAAMJAAACBQJpbgUCaW4JAM4IAgUFYWNjdW0JAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SWQFAmluBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4ED2Jhc2VBc3NldFdlaWdodAkBEUBleHRyTmF0aXZlKDEwNTApAgULbWFpbkFkZHJlc3MJAKwCAgkArAICAgdzdGF0aWNfCQEOZ2V0QXNzZXRTdHJpbmcBBQtiYXNlQXNzZXRJZAIHX3dlaWdodAQPZXhjaGFuZ2VJbnZva2VzCgACJGwFEXNlY29uZGFyeUFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgULYmFzZUFzc2V0SWQJAGgCBQZhbW91bnQFD2Jhc2VBc3NldFdlaWdodAUDbmlsCgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdoYW5kbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA5CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAwkAAAIFD2V4Y2hhbmdlSW52b2tlcwUPZXhjaGFuZ2VJbnZva2VzBA1QSXNzdWVkQW1vdW50BAckbWF0Y2gwCQD9BwQFC21haW5BZGRyZXNzAg1nZW5lcmF0ZUluZGV4CQDMCAIHBQNuaWwFD2V4Y2hhbmdlSW52b2tlcwMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFAXgAAAMJAAACBQ1QSXNzdWVkQW1vdW50BQ1QSXNzdWVkQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUNUElzc3VlZEFtb3VudAULcG9vbEluZGV4SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARByZWRlZW1Bc09uZVRva2VuAg5tYWluQWRkcmVzc1N0cg1vdXRBc3NldElkU3RyBAttYWluQWRkcmVzcwkBB0FkZHJlc3MBCQDZBAEFDm1haW5BZGRyZXNzU3RyBAhhc3NldElkcwoAAiRsCQC1CQIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFC21haW5BZGRyZXNzAg9zdGF0aWNfdG9rZW5JZHMCASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBE2FkZEFzc2V0Qnl0ZXNUb0xpc3QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEC2Jhc2VBc3NldElkCQENZ2V0QXNzZXRCeXRlcwEFDW91dEFzc2V0SWRTdHIEEXNlY29uZGFyeUFzc2V0SWRzCQDRCAIFCGFzc2V0SWRzCQEFdmFsdWUBCQDPCAIFCGFzc2V0SWRzBQtiYXNlQXNzZXRJZAQLcG9vbEluZGV4SWQJARFAZXh0ck5hdGl2ZSgxMDUyKQIFC21haW5BZGRyZXNzAhNnbG9iYWxfcG9vbFRva2VuX2lkCgEMZm9sZEhhbmRsZXIxAgVhY2N1bQdhc3NldElkCQDOCAIFBWFjY3VtCQDMCAIJAQ9nZXRUb2tlbkJhbGFuY2UBBQdhc3NldElkBQNuaWwEDmJhbGFuY2VzQmVmb3JlCgACJGwFCGFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQxmb2xkSGFuZGxlcjECBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoDCQAAAgUOYmFsYW5jZXNCZWZvcmUFDmJhbGFuY2VzQmVmb3JlBA9iYXNlQXNzZXRCZWZvcmUJAQ9nZXRUb2tlbkJhbGFuY2UBBQtiYXNlQXNzZXRJZAMJAAACBQ9iYXNlQXNzZXRCZWZvcmUFD2Jhc2VBc3NldEJlZm9yZQQNdW5zdGFrZUludm9rZQkA/QcEBQttYWluQWRkcmVzcwILcmVkZWVtSW5kZXgJAMwIAgcFA25pbAkAzAgCCQCRAwIIBQFpCHBheW1lbnRzAAAFA25pbAMJAAACBQ11bnN0YWtlSW52b2tlBQ11bnN0YWtlSW52b2tlBA1iYWxhbmNlc0FmdGVyCgACJGwFCGFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYyXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQxmb2xkSGFuZGxlcjECBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjJfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYyXzICCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoDCQAAAgUNYmFsYW5jZXNBZnRlcgUNYmFsYW5jZXNBZnRlcgQOYmFzZUFzc2V0QWZ0ZXIJAQ9nZXRUb2tlbkJhbGFuY2UBBQtiYXNlQXNzZXRJZAMJAAACBQ5iYXNlQXNzZXRBZnRlcgUOYmFzZUFzc2V0QWZ0ZXIKAQxmb2xkSGFuZGxlcjICBWFjY3VtB2Fzc2V0SWQECGFzc2V0TnVtCQEFdmFsdWUBCQDPCAIFCGFzc2V0SWRzBQdhc3NldElkBAZhbW91bnQJAGUCCQCRAwIFDWJhbGFuY2VzQWZ0ZXIFCGFzc2V0TnVtCQCRAwIFDmJhbGFuY2VzQmVmb3JlBQhhc3NldE51bQQCaW4DCQAAAgUHYXNzZXRJZAULYmFzZUFzc2V0SWQFBmFtb3VudAQHJG1hdGNoMAkA/QcEBQttYWluQWRkcmVzcwIEc3dhcAkAzAgCCQEOZ2V0QXNzZXRTdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJZAUGYW1vdW50BQNuaWwDCQABAgUHJG1hdGNoMAIDSW50BAF4BQckbWF0Y2gwBQF4AAADCQAAAgUCaW4FAmluCQBkAgUFYWNjdW0FAmluCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBANvdXQKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjNfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGZvbGRIYW5kbGVyMgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmM18yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjNfMgIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIJAQUkZjNfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACBQNvdXQFA291dAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFA291dAULYmFzZUFzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARVnZW5lcmF0ZUluZGV4QW5kU3Rha2UBDm1haW5BZGRyZXNzU3RyBAttYWluQWRkcmVzcwkBB0FkZHJlc3MBCQDZBAEFDm1haW5BZGRyZXNzU3RyBAhhc3NldElkcwoAAiRsCQC1CQIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFC21haW5BZGRyZXNzAg9zdGF0aWNfdG9rZW5JZHMCASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBE2FkZEFzc2V0Qnl0ZXNUb0xpc3QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEC2Jhc2VBc3NldElkCQENZ2V0QXNzZXRCeXRlcwEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFC21haW5BZGRyZXNzAhJzdGF0aWNfYmFzZVRva2VuSWQEEXNlY29uZGFyeUFzc2V0SWRzCQDRCAIFCGFzc2V0SWRzCQEFdmFsdWUBCQDPCAIFCGFzc2V0SWRzBQtiYXNlQXNzZXRJZAQLcG9vbEluZGV4SWQJARFAZXh0ck5hdGl2ZSgxMDUyKQIFC21haW5BZGRyZXNzAhNnbG9iYWxfcG9vbFRva2VuX2lkBA1QSXNzdWVkQW1vdW50BAckbWF0Y2gwCQD9BwQFC21haW5BZGRyZXNzAg1nZW5lcmF0ZUluZGV4CQDMCAIGBQNuaWwIBQFpCHBheW1lbnRzAwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAUBeAAAAwkAAAIFDVBJc3N1ZWRBbW91bnQFDVBJc3N1ZWRBbW91bnQEC3N0YWtlSW52b2tlCQD9BwQFC21haW5BZGRyZXNzAgpzdGFrZUluZGV4BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3Bvb2xJbmRleElkBQ1QSXNzdWVkQW1vdW50BQNuaWwDCQAAAgULc3Rha2VJbnZva2UFC3N0YWtlSW52b2tlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEVdW5zdGFrZUFuZFJlZGVlbUluZGV4AgZhbW91bnQObWFpbkFkZHJlc3NTdHIEC21haW5BZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUObWFpbkFkZHJlc3NTdHIECGFzc2V0SWRzCgACJGwJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgULbWFpbkFkZHJlc3MCD3N0YXRpY190b2tlbklkcwIBLAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQETYWRkQXNzZXRCeXRlc1RvTGlzdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQLYmFzZUFzc2V0SWQJAQ1nZXRBc3NldEJ5dGVzAQkBEUBleHRyTmF0aXZlKDEwNTMpAgULbWFpbkFkZHJlc3MCEnN0YXRpY19iYXNlVG9rZW5JZAQRc2Vjb25kYXJ5QXNzZXRJZHMJANEIAgUIYXNzZXRJZHMJAQV2YWx1ZQEJAM8IAgUIYXNzZXRJZHMFC2Jhc2VBc3NldElkBAtwb29sSW5kZXhJZAkBEUBleHRyTmF0aXZlKDEwNTIpAgULbWFpbkFkZHJlc3MCE2dsb2JhbF9wb29sVG9rZW5faWQEDXVuc3Rha2VJbnZva2UJAP0HBAULbWFpbkFkZHJlc3MCDHVuc3Rha2VJbmRleAkAzAgCBQZhbW91bnQFA25pbAgFAWkIcGF5bWVudHMDCQAAAgUNdW5zdGFrZUludm9rZQUNdW5zdGFrZUludm9rZQQMcmVkZWVtSW52b2tlCQD9BwQFC21haW5BZGRyZXNzAgtyZWRlZW1JbmRleAkAzAgCBgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQtwb29sSW5kZXhJZAUGYW1vdW50BQNuaWwDCQAAAgUMcmVkZWVtSW52b2tlBQxyZWRlZW1JbnZva2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQADCQEKaXNTaHV0ZG93bgAHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5hjRTUg==", "height": 4004350, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5Cu7EcKGsZnfzpds55hfRHzZRYHgqYXRERHTp4mfAmao Next: DMpK7frMLg6ukXLxRJHUEgp4pUCerB4bVqxqE3KzSixb Diff:
OldNewDifferences
373373
374374 func $f3_2 ($a,$i) = if (($i >= $s))
375375 then $a
376- else throw("List size exceeds 9")
376+ else throw("List size exceeds 10")
377377
378- $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)
378+ $f3_2($f3_1($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), 10)
379379 }
380380 if ((out == out))
381- then [ScriptTransfer(i.caller, (out + (baseAssetAfter - baseAssetBefore)), baseAssetId)]
381+ then [ScriptTransfer(i.caller, out, baseAssetId)]
382382 else throw("Strict value is not equal to itself.")
383383 }
384384 else throw("Strict value is not equal to itself.")
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) = {
3838 let tokenId = i.payments[0].assetId
3939 let baseAssetId = tokenId
4040 let mainAddress = Address(fromBase58String(mainAddressStr))
4141 let assetIds = {
4242 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
4343 let $s = size($l)
4444 let $acc0 = nil
4545 func $f0_1 ($a,$i) = if (($i >= $s))
4646 then $a
4747 else addAssetBytesToList($a, $l[$i])
4848
4949 func $f0_2 ($a,$i) = if (($i >= $s))
5050 then $a
5151 else throw("List size exceeds 10")
5252
5353 $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)
5454 }
5555 let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, tokenId)))
5656 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
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 generateIndexWithOneToken (mainAddressStr) = {
221221 let tokenId = i.payments[0].assetId
222222 let baseAssetId = tokenId
223223 let mainAddress = Address(fromBase58String(mainAddressStr))
224224 let assetIds = {
225225 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
226226 let $s = size($l)
227227 let $acc0 = nil
228228 func $f0_1 ($a,$i) = if (($i >= $s))
229229 then $a
230230 else addAssetBytesToList($a, $l[$i])
231231
232232 func $f0_2 ($a,$i) = if (($i >= $s))
233233 then $a
234234 else throw("List size exceeds 10")
235235
236236 $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)
237237 }
238238 let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, tokenId)))
239239 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
240240 let amount = (i.payments[0].amount / 10000)
241241 func handler (accum,assetId) = {
242242 let assetIdStr = getAssetString(assetId)
243243 let assetWeight = getIntegerValue(mainAddress, (("static_" + assetIdStr) + "_weight"))
244244 let in = match reentrantInvoke(mainAddress, "swap", [getAssetString(assetId), 0], [AttachedPayment(baseAssetId, (amount * assetWeight))]) {
245245 case x: Int =>
246246 x
247247 case _ =>
248248 0
249249 }
250250 if ((in == in))
251251 then (accum ++ [AttachedPayment(assetId, in)])
252252 else throw("Strict value is not equal to itself.")
253253 }
254254
255255 let baseAssetWeight = getIntegerValue(mainAddress, (("static_" + getAssetString(baseAssetId)) + "_weight"))
256256 let exchangeInvokes = {
257257 let $l = secondaryAssetIds
258258 let $s = size($l)
259259 let $acc0 = [AttachedPayment(baseAssetId, (amount * baseAssetWeight))]
260260 func $f1_1 ($a,$i) = if (($i >= $s))
261261 then $a
262262 else handler($a, $l[$i])
263263
264264 func $f1_2 ($a,$i) = if (($i >= $s))
265265 then $a
266266 else throw("List size exceeds 9")
267267
268268 $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)
269269 }
270270 if ((exchangeInvokes == exchangeInvokes))
271271 then {
272272 let PIssuedAmount = match reentrantInvoke(mainAddress, "generateIndex", [false], exchangeInvokes) {
273273 case x: Int =>
274274 x
275275 case _ =>
276276 0
277277 }
278278 if ((PIssuedAmount == PIssuedAmount))
279279 then [ScriptTransfer(i.caller, PIssuedAmount, poolIndexId)]
280280 else throw("Strict value is not equal to itself.")
281281 }
282282 else throw("Strict value is not equal to itself.")
283283 }
284284
285285
286286
287287 @Callable(i)
288288 func redeemAsOneToken (mainAddressStr,outAssetIdStr) = {
289289 let mainAddress = Address(fromBase58String(mainAddressStr))
290290 let assetIds = {
291291 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
292292 let $s = size($l)
293293 let $acc0 = nil
294294 func $f0_1 ($a,$i) = if (($i >= $s))
295295 then $a
296296 else addAssetBytesToList($a, $l[$i])
297297
298298 func $f0_2 ($a,$i) = if (($i >= $s))
299299 then $a
300300 else throw("List size exceeds 10")
301301
302302 $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)
303303 }
304304 let baseAssetId = getAssetBytes(outAssetIdStr)
305305 let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, baseAssetId)))
306306 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
307307 func foldHandler1 (accum,assetId) = (accum ++ [getTokenBalance(assetId)])
308308
309309 let balancesBefore = {
310310 let $l = assetIds
311311 let $s = size($l)
312312 let $acc0 = nil
313313 func $f1_1 ($a,$i) = if (($i >= $s))
314314 then $a
315315 else foldHandler1($a, $l[$i])
316316
317317 func $f1_2 ($a,$i) = if (($i >= $s))
318318 then $a
319319 else throw("List size exceeds 10")
320320
321321 $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)
322322 }
323323 if ((balancesBefore == balancesBefore))
324324 then {
325325 let baseAssetBefore = getTokenBalance(baseAssetId)
326326 if ((baseAssetBefore == baseAssetBefore))
327327 then {
328328 let unstakeInvoke = reentrantInvoke(mainAddress, "redeemIndex", [false], [i.payments[0]])
329329 if ((unstakeInvoke == unstakeInvoke))
330330 then {
331331 let balancesAfter = {
332332 let $l = assetIds
333333 let $s = size($l)
334334 let $acc0 = nil
335335 func $f2_1 ($a,$i) = if (($i >= $s))
336336 then $a
337337 else foldHandler1($a, $l[$i])
338338
339339 func $f2_2 ($a,$i) = if (($i >= $s))
340340 then $a
341341 else throw("List size exceeds 10")
342342
343343 $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)
344344 }
345345 if ((balancesAfter == balancesAfter))
346346 then {
347347 let baseAssetAfter = getTokenBalance(baseAssetId)
348348 if ((baseAssetAfter == baseAssetAfter))
349349 then {
350350 func foldHandler2 (accum,assetId) = {
351351 let assetNum = value(indexOf(assetIds, assetId))
352352 let amount = (balancesAfter[assetNum] - balancesBefore[assetNum])
353353 let in = if ((assetId == baseAssetId))
354354 then amount
355355 else match reentrantInvoke(mainAddress, "swap", [getAssetString(baseAssetId), 0], [AttachedPayment(assetId, amount)]) {
356356 case x: Int =>
357357 x
358358 case _ =>
359359 0
360360 }
361361 if ((in == in))
362362 then (accum + in)
363363 else throw("Strict value is not equal to itself.")
364364 }
365365
366366 let out = {
367367 let $l = assetIds
368368 let $s = size($l)
369369 let $acc0 = 0
370370 func $f3_1 ($a,$i) = if (($i >= $s))
371371 then $a
372372 else foldHandler2($a, $l[$i])
373373
374374 func $f3_2 ($a,$i) = if (($i >= $s))
375375 then $a
376- else throw("List size exceeds 9")
376+ else throw("List size exceeds 10")
377377
378- $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)
378+ $f3_2($f3_1($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), 10)
379379 }
380380 if ((out == out))
381- then [ScriptTransfer(i.caller, (out + (baseAssetAfter - baseAssetBefore)), baseAssetId)]
381+ then [ScriptTransfer(i.caller, out, baseAssetId)]
382382 else throw("Strict value is not equal to itself.")
383383 }
384384 else throw("Strict value is not equal to itself.")
385385 }
386386 else throw("Strict value is not equal to itself.")
387387 }
388388 else throw("Strict value is not equal to itself.")
389389 }
390390 else throw("Strict value is not equal to itself.")
391391 }
392392 else throw("Strict value is not equal to itself.")
393393 }
394394
395395
396396
397397 @Callable(i)
398398 func generateIndexAndStake (mainAddressStr) = {
399399 let mainAddress = Address(fromBase58String(mainAddressStr))
400400 let assetIds = {
401401 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
402402 let $s = size($l)
403403 let $acc0 = nil
404404 func $f0_1 ($a,$i) = if (($i >= $s))
405405 then $a
406406 else addAssetBytesToList($a, $l[$i])
407407
408408 func $f0_2 ($a,$i) = if (($i >= $s))
409409 then $a
410410 else throw("List size exceeds 10")
411411
412412 $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)
413413 }
414414 let baseAssetId = getAssetBytes(getStringValue(mainAddress, "static_baseTokenId"))
415415 let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, baseAssetId)))
416416 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
417417 let PIssuedAmount = match reentrantInvoke(mainAddress, "generateIndex", [true], i.payments) {
418418 case x: Int =>
419419 x
420420 case _ =>
421421 0
422422 }
423423 if ((PIssuedAmount == PIssuedAmount))
424424 then {
425425 let stakeInvoke = reentrantInvoke(mainAddress, "stakeIndex", nil, [AttachedPayment(poolIndexId, PIssuedAmount)])
426426 if ((stakeInvoke == stakeInvoke))
427427 then nil
428428 else throw("Strict value is not equal to itself.")
429429 }
430430 else throw("Strict value is not equal to itself.")
431431 }
432432
433433
434434
435435 @Callable(i)
436436 func unstakeAndRedeemIndex (amount,mainAddressStr) = {
437437 let mainAddress = Address(fromBase58String(mainAddressStr))
438438 let assetIds = {
439439 let $l = split(getStringValue(mainAddress, "static_tokenIds"), ",")
440440 let $s = size($l)
441441 let $acc0 = nil
442442 func $f0_1 ($a,$i) = if (($i >= $s))
443443 then $a
444444 else addAssetBytesToList($a, $l[$i])
445445
446446 func $f0_2 ($a,$i) = if (($i >= $s))
447447 then $a
448448 else throw("List size exceeds 10")
449449
450450 $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)
451451 }
452452 let baseAssetId = getAssetBytes(getStringValue(mainAddress, "static_baseTokenId"))
453453 let secondaryAssetIds = removeByIndex(assetIds, value(indexOf(assetIds, baseAssetId)))
454454 let poolIndexId = getBinaryValue(mainAddress, "global_poolToken_id")
455455 let unstakeInvoke = reentrantInvoke(mainAddress, "unstakeIndex", [amount], i.payments)
456456 if ((unstakeInvoke == unstakeInvoke))
457457 then {
458458 let redeemInvoke = reentrantInvoke(mainAddress, "redeemIndex", [true], [AttachedPayment(poolIndexId, amount)])
459459 if ((redeemInvoke == redeemInvoke))
460460 then nil
461461 else throw("Strict value is not equal to itself.")
462462 }
463463 else throw("Strict value is not equal to itself.")
464464 }
465465
466466
467467 @Verifier(tx)
468468 func verify () = if (isShutdown())
469469 then false
470470 else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
471471

github/deemru/w8io/873ac7e 
76.58 ms