tx · Dkr8mqCcGu3FDDEij5QdxT3TcaD9yaV1RiXvo98CRx6y

3N1BZvVvgXB4QTHaJWC1uf7P7Ph1A17ci7t:  -0.05000000 Waves

2023.07.12 15:24 [2662676] smart account 3N1BZvVvgXB4QTHaJWC1uf7P7Ph1A17ci7t > SELF 0.00000000 Waves

{ "type": 13, "id": "Dkr8mqCcGu3FDDEij5QdxT3TcaD9yaV1RiXvo98CRx6y", "fee": 5000000, "feeAssetId": null, "timestamp": 1689164703182, "version": 2, "chainId": 84, "sender": "3N1BZvVvgXB4QTHaJWC1uf7P7Ph1A17ci7t", "senderPublicKey": "GP8baMhc9hbEPpQDcKtCTQjCG6bCAAoEzLw5bF7kVwoY", "proofs": [ "grUkTp4qYrLyRkxmacCAjeQ5W9TuBuRk5LwYnRbyoFuu7h3ifNYZK6x8BubvqkbVMa6PuEPg34bPsP6wftrgFsw" ], "script": "base64:BgK5DggCEgMKAQgSABIAEgASABIECgIICBIDCgEIEgMKAQgiA1NFUCIJUFJFQ0lTSU9OIgdFTkFCTEVEIghESVNBQkxFRCIEZGl2cCICX3giAl95IgRtdWxwIghjb252NnRvOCICX3YiCGNvbnY4dG82IgRqb2luIgJhciIOa2V5SW5pdGlhbGl6ZWQiFWtleUNvb3JkaW5hdG9yQWRkcmVzcyISa2V5VmVyaWZpZXJBZGRyZXNzIgxrZXlFYXN0QXNzZXQiCWtleVNpZ25lZCIIX2FkZHJlc3MiBV90eElkIhFrZXlQcm90b2NvbEFjdGl2ZSINaXNJbml0aWFsaXplZCIPbXVzdEluaXRpYWxpemVkIhJtdXN0Tm90SW5pdGlhbGl6ZWQiCG11c3RTZWxmIgFpIgtjb29yZGluYXRvciIIdmVyaWZpZXIiByRtYXRjaDAiAXMiD2dldEVhc3RBc3NldFN0ciIMZ2V0RWFzdEFzc2V0Ighpc0FjdGl2ZSIKbXVzdEFjdGl2ZSINaGFzT25lUGF5bWVudCIUZ2V0QXNzZXRJZEZyb21TdHJpbmciB2Fzc2V0SWQiB2lzQXNzZXQiAXAiDWNoZWNraW5nQXNzZXQiAmJ2IgRuYW1lIgckbWF0Y2gxIgVhc3NldCIDZXJyIgxwYXltZW50QXNzZXQiDGNoZWNrQWRkcmVzcyIHYWRkcmVzcyIWZ2V0Q3VycmVudFRpbWVzdGFtcFNlYyIKa2V5QmFsYW5jZSIHa2V5UmF0ZSIJa2V5U3RFYXN0IglnZXRTdEVhc3QiCmdldEJhbGFuY2UiB2dldFJhdGUiEklkeEFzc2V0UG9vbFN0YXR1cyIWSWR4QXNzZXRQb29sQ29udHJhY3RJZCIaSWR4QmFsYW5jZXNMYXN0RWFzdEJhbGFuY2UiGElkeEJhbGFuY2VzTGFzdFRpbWVzdGFtcCIcSWR4QmFsYW5jZXNMYXN0U3RFYXN0QmFsYW5jZSIQa2V5QXNzZXRzSW5Qb29scyIMa2V5QXNzZXRQb29sIghfYXNzZXRJZCIUa2V5QXNzZXRQb29sQmFsYW5jZXMiCV9hc3NldFN0ciIQZ2V0QXNzZXRzSW5Qb29scyIMZ2V0QXNzZXRQb29sIgdwb29sQXJyIgRwb29sIg5nZXRFYXN0QmFsYW5jZSIJZWFzdEFzc2V0IgdiYWxhbmNlIhlnZXRDdXJyZW50UG9vbEVhc3RCYWxhbmNlIg1pc1Bvb2xFbmFibGVkIgdwb29sQ2ZnIgphc3NldEV4aXN0Ig1kYXRhQXNzZXRQb29sIgdfc3RhdHVzIghfcG9vbFN0ciIUZ2V0QXNzZXRQb29sQmFsYW5jZXMiC2JhbGFuY2VzQXJyIg9sYXN0RWFzdEJhbGFuY2UiDWxhc3RUaW1lc3RhbXAiEWxhc3RTdEVhc3RCYWxhbmNlIhd1cGRhdGVBc3NldFBvb2xCYWxhbmNlcyIXX2N1cnJlbnRQb29sRWFzdEJhbGFuY2UiGF9uZXdTdEVhc3RCYWxhbmNlRm9yUG9vbCINdXBkYXRlQmFsYW5jZSIHX2Ftb3VudCIKdXBkYXRlUmF0ZSIFX3JhdGUiC2lzc3VlU3RFYXN0IgZzdEVhc3QiCmJ1cm5TdEVhc3QiCnNlbmRTdEVhc3QiCl9yZWNpcGllbnQiCHNlbmRFYXN0Ig5zdEVhc3RRdWFudGl0eSITX2Nvb3JkaW5hdG9yQWRkcmVzcyIGY2hlY2tzIghzdEVhc3RJZCIEcmF0ZSITc3RBc3NldEFtb3VudEJlZm9yZSIOdXBkYXRlQmFsYW5jZXMiA2FjYyIEbmV4dCIFY2hlY2siFmN1cnJlbnRQb29sRWFzdEJhbGFuY2UiDSR0MDE1ODAxMTU5MTMiAUAiEm9sZFBvb2xFYXN0QmFsYW5jZSIQb2xkU3RFYXN0QmFsYW5jZSIPcG9vbEJhbGFuY2VEaWZmIgtzdEFzc2V0RGlmZiIXbmV3U3RFYXN0QmFsYW5jZUZvclBvb2wiB2FjdGlvbnMiBmFzc2V0cyINJHQwMTY0OTQxNjY4NSICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiGHBvb2xBc3NldEJhbGFuY2VzQWN0aW9ucyIXdG90YWxTdEVhc3RBbW91bnRDaGFuZ2UiF3RvdGFsRWFzdEJhbGFuY2VzQ2hhbmdlIghzdEVhc3RPcCIOdXBkYXRlZEJhbGFuY2UiB3BheW1lbnQiFGRvVXBkYXRlUG9vbEJhbGFuY2VzIg9tYWluQXNzZXRBbW91bnQiCXRvUmVpc3N1ZSIOdHJhbnNmZXJBbW91bnQiDW5ld0Vhc3RBbW91bnQiDHN0RWFz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bAEJAMwIAgICJXMJAMwIAgIEcmF0ZQUDbmlsAQFaAAkBAWwBCQDMCAICAiVzCQDMCAICBnN0RWFzdAUDbmlsAQJhYQAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkBAVoAAQJhYgAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAVgAAAABAmFjAAkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAVkAAAJhZAABAAJhZQACAAJhZgABAAJhZwACAAJhaAADAQJhaQAJAQFsAQkAzAgCAgIlcwkAzAgCAg1hc3NldHNJblBvb2xzBQNuaWwBAmFqAQJhawkBAWwBCQDMCAICBCVzJXMJAMwIAgIJYXNzZXRQb29sCQDMCAIFAmFrBQNuaWwBAmFsAQJhbQkBAWwBCQDMCAICBCVzJXMJAMwIAgIRYXNzZXRQb29sQmFsYW5jZXMJAMwIAgUCYW0FA25pbAECYW4ABAFDCQCdCAIFBHRoaXMJAQJhaQADCQABAgUBQwIGU3RyaW5nBAFEBQFDCQC1CQIFAUQFAWEDCQABAgUBQwIEVW5pdAUDbmlsCQACAQILTWF0Y2ggZXJyb3IBAmFvAQJhawQCYXAJALUJAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkBAmFqAQUCYWsFAWEEAmFxCQCRAwIFAmFwBQJhZQUCYXEBAmFyAQFzBAJhcwkBAUYABAFWCQERQGV4dHJOYXRpdmUoMTA2MikBBQFzBAJhdAkA8AcCBQFWBQJhcwUCYXQBAmF1AQJhawQCYXEJAQJhbwEFAmFrBAJhdAkBAmFyAQUCYXEFAmF0AQJhdgECYW0EAmF3CQERQGV4dHJOYXRpdmUoMTA1OCkBCQECYWoBBQJhbQQCYXAJALUJAgUCYXcFAWEDCQECIT0CCQCRAwIFAmFwBQJhZAUBYwkAAgEJAKwCAgkArAICAgZBc3NldCAFAmFtAg8gaXMgbm90IGVuYWJsZWQFBHVuaXQBAmF4AQJhbQQBQwkAoggBCQECYWoBBQJhbQMJAAECBQFDAgZTdHJpbmcEAUQFAUMGAwkAAQIFAUMCBFVuaXQHCQACAQILTWF0Y2ggZXJyb3IBAmF5AgJhegJhQQkBAWwBCQDMCAICBCVzJXMJAMwIAgUCYXoJAMwIAgUCYUEFA25pbAECYUIBAmFtBAJhQwQBQwkAoggBCQECYWwBBQJhbQMJAAECBQFDAgZTdHJpbmcEAUQFAUMJALUJAgUBRAUBYQMJAAECBQFDAgRVbml0CQDMCAICBiVkJWQlZAkAzAgCAgEwCQDMCAIJAKQDAQkBAVcACQDMCAICATAFA25pbAkAAgECC01hdGNoIGVycm9yBAJhRAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFDBQJhZgQCYUUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhQwUCYWcEAmFGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYUMFAmFoCQCVCgMFAmFEBQJhRQUCYUYBAmFHAgJhSAJhSQkAuQkCCQDMCAICBiVkJWQlZAkAzAgCCQCkAwEFAmFICQDMCAIJAKQDAQkBAVcACQDMCAIJAKQDAQUCYUkFA25pbAUBYQECYUoBAmFLBAJhdAkAZAIJAQJhYgAFAmFLCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAAFAmF0BQNuaWwBAmFMAQJhTQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVkABQJhTQUDbmlsAQJhTgECYUsEAmFPCQECYWEACQDMCAIJAQdSZWlzc3VlAwUCYU8FAmFLBgUDbmlsAQJhUAECYUsEAmFPCQECYWEACQDMCAIJAQRCdXJuAgUCYU8FAmFLBQNuaWwBAmFRAgJhUgJhSwQCYU8JAQJhYQAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVIFAmFLBQJhTwUDbmlsAQJhUwICYVICYUsEAmFzCQEBRgAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVIFAmFLBQJhcwUDbmlsAQJhVAAEAmFPCQECYWEABAFDCQDsBwEFAmFPAwkAAQIFAUMCBUFzc2V0BAFSBQFDCAUBUghxdWFudGl0eQkAAgECF0Nhbid0IGZpbmQgc3RFQVNUIGFzc2V0CAF6AQppbml0aWFsaXplAQJhVQQCYVYJAMwIAgkBAXkBBQF6CQDMCAIJAQF4AAkAzAgCCQEBVQEFAmFVBQNuaWwDCQAAAgUCYVYFAmFWBAJhTwkAwwgHAgZzdEVBU1QCAAAAAAgGBQR1bml0AAAEAmFXCQC4CAEFAmFPCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBbgAGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFvAAUCYVUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoACQDYBAEFAmFXCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWQAFAWIJAMwIAgUCYU8FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgF6ARR1cGRhdGVMcFBvb2xCYWxhbmNlcwAEAmFWCQDMCAIJAQF3AAkAzAgCCQEBeQEFAXoFA25pbAMJAAACBQJhVgUCYVYEAmFYCQECYWMABAJhWQkBAmFUAAoBAmFaAgJiYQJiYgQBQwUCYmIDCQABAgUBQwIGU3RyaW5nBAFSBQFDBAJiYwkAzAgCCQECYXYBBQFSBQNuaWwDCQAAAgUCYmMFAmJjBAJiZAkBAmF1AQUBUgQCYmUKAAJiZgkBAmFCAQUBUgMJAAECBQJiZgIPKEludCwgSW50LCBJbnQpBQJiZgkAAgEJAKwCAgkAAwEFAmJmAiQgY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQsIEludCkEAmJnCAUCYmUCXzEEAmFFCAUCYmUCXzIEAmJoCAUCYmUCXzMEAmJpCQBlAgUCYmQFAmJnBAJiagkBAWkBCQEBZQIFAmJpBQJhWAQCYmsJAGQCBQJiaAUCYmoEAmJsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbAEFAVIJAQJhRwIFAmJkBQJiawUDbmlsCQCVCgMJAM4IAggFAmJhAl8xBQJibAkAZAIIBQJiYQJfMgUCYmoJAGQCCAUCYmECXzMFAmJpCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAQIFAUMCBFVuaXQFAmJhCQACAQILTWF0Y2ggZXJyb3IEAmJtCQECYW4ABAJibgMJAGYCAAEJAJADAQUCYm0JAJUKAwUDbmlsAAAAAAoAAmJvBQJibQoAAmJwCQCQAwEFAmJvCgACYnEJAJUKAwUDbmlsAAAAAAoBAmJyAgJicwJidAMJAGcCBQJidAUCYnAFAmJzCQECYVoCBQJicwkAkQMCBQJibwUCYnQKAQJidQICYnMCYnQDCQBnAgUCYnQFAmJwBQJicwkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQECYnUCCQECYnICCQECYnICCQECYnICCQECYnICCQECYnICCQECYnICCQECYnICCQECYnICCQECYnICCQECYnICBQJicQAAAAEAAgADAAQABQAGAAcACAAJAAoEAmJ2CAUCYm4CXzEEAmJ3CAUCYm4CXzIEAmJ4CAUCYm4CXzMEAmFPCQECYWEABAJieQMJAGYCBQJidwAACQECYU4BBQJidwkBAmFQAQkAaAIFAmJ3AP///////////wEEAmJ6CQECYUoBBQJieAkAzggCCQDOCAIFAmJ2BQJieQUCYnoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BegEFc3Rha2UABAJiQQkAkQMCCAUBeghwYXltZW50cwAABAJhcwkBAUYABAJhVgkAzAgCCQEBSAAJAMwIAgkBAUkBBQF6CQDMCAIJAQFMAgUCYkEFAmFzBQNuaWwDCQAAAgUCYVYFAmFWBAJiQgkA/AcEBQR0aGlzAhR1cGRhdGVMcFBvb2xCYWxhbmNlcwUDbmlsBQNuaWwDCQAAAgUCYkIFAmJCBAJhWAkBAmFjAAQCYkMJAQFpAQgFAmJBBmFtb3VudAQCYkQJAQFlAgUCYkMFAmFYCQCUCgIJAM4IAgkAzggCCQECYUoBCAUCYkEGYW1vdW50CQECYU4BBQJiRAkBAmFRAggFAXoGY2FsbGVyBQJiRAUCYkQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BegEHdW5zdGFrZQAEAmJBCQCRAwIIBQF6CHBheW1lbnRzAAAEAmFPCQECYWEABAJhVgkAzAgCCQEBSAAJAMwIAgkBAUkBBQF6CQDMCAIJAQFMAgUCYkEFAmFPBQNuaWwDCQAAAgUCYVYFAmFWBAJiQgkA/AcEBQR0aGlzAhR1cGRhdGVMcFBvb2xCYWxhbmNlcwUDbmlsBQNuaWwDCQAAAgUCYkIFAmJCBAJhWAkBAmFjAAQCYkUJAQFrAQkBAWgCCAUCYkEGYW1vdW50BQJhWAkAzggCCQDOCAIJAQJhSgEJAQEtAQUCYkUJAQJhUAEIBQJiQQZhbW91bnQJAQJhUwIIBQF6BmNhbGxlcgUCYkUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BegERYWRkU3Rha2luZ1Jld2FyZHMABAJiQQkAkQMCCAUBeghwYXltZW50cwAABAJhcwkBAUYABAJhVgkAzAgCCQEBSAAJAMwIAgkBAUkBBQF6CQDMCAIJAQFMAgUCYkEFAmFzBQNuaWwDCQAAAgUCYVYFAmFWBAJiQgkA/AcEBQR0aGlzAhR1cGRhdGVMcFBvb2xCYWxhbmNlcwUDbmlsBQNuaWwDCQAAAgUCYkIFAmJCBAJhdAkBAmFiAAQCYkYJAQFpAQkAZAIFAmF0CAUCYkEGYW1vdW50BAJiRwkBAmFUAAQCYkgJAQFlAgUCYkYFAmJHCQDOCAIJAQJhSgEIBQJiQQZhbW91bnQJAQJhTAEFAmJICQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAXoBDGFkZEFzc2V0UG9vbAICYUECYW0EAmFWCQDMCAIJAQF3AAkAzAgCCQEBeQEFAXoFA25pbAMJAAACBQJhVgUCYVYDCQEBIQEJAQFVAQUCYUEJAAIBAhRBZGRyZXNzIGlzIG5vdCB2YWxpZAMJAQJheAEFAmFtCQACAQIUQXNzZXQgaXMgYWxyZWFkeSBzZXQEAmJJCQC5CQIJAM4IAgkBAmFuAAkAzAgCBQJhbQUDbmlsBQFhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhagEFAmFtCQECYXkCBQFjBQJhQQkAzAgCCQELU3RyaW5nRW50cnkCCQECYWkABQJiSQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAXoBEGRpc2FibGVBc3NldFBvb2wBAmFtBAJiYwkAzAgCCQEBdwAJAMwIAgkBAXkBBQF6BQNuaWwDCQAAAgUCYmMFAmJjBAJiSgkAtQkCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAmFqAQUCYW0CDVVua25vd24gYXNzZXQFAWEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFqAQUCYW0JAQJheQIFAWQJAJEDAgUCYkoFAmFlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BegEPZW5hYmxlQXNzZXRQb29sAQJhbQQCYmMJAMwIAgkBAXcACQDMCAIJAQF5AQUBegUDbmlsAwkAAAIFAmJjBQJiYwQCYkoJALUJAgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhagEFAmFtAg1Vbmtub3duIGFzc2V0BQFhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhagEFAmFtCQECYXkCBQFjCQCRAwIFAmJKBQJhZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiSwECYkwABAFDCQEBQgADCQABAgUBQwIGU3RyaW5nBAFWBQFDCQELdmFsdWVPckVsc2UCCQCbCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAVYJAQFyAgkApQgBBQR0aGlzCQDYBAEIBQJiSwJpZAcJAPQDAwgFAmJLCWJvZHlCeXRlcwkAkQMCCAUCYksGcHJvb2ZzAAAIBQJiSw9zZW5kZXJQdWJsaWNLZXlYUuXI", "height": 2662676, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "__"
5+
6+let b = 1000000000000
7+
8+let c = "ENABLED"
9+
10+let d = "DISABLED"
11+
12+func e (f,g) = fraction(f, b, g, HALFEVEN)
13+
14+
15+func h (f,g) = fraction(f, g, b, HALFEVEN)
16+
17+
18+func i (j) = (j * 100)
19+
20+
21+func k (j) = (j / 100)
22+
23+
24+func l (m) = makeString(m, a)
25+
26+
27+func n () = l(["%s", "initialized"])
28+
29+
30+func o () = l(["%s", "coordinatorAddress"])
31+
32+
33+func p () = l(["%s", "verifierAddress"])
34+
35+
36+func q () = l(["%s", "eastAsset"])
37+
38+
39+func r (s,t) = l(["%s%s%s", "signed", s, t])
40+
41+
42+func u () = l(["%s", "protocolActive"])
43+
44+
45+func v () = valueOrElse(getBoolean(this, n()), false)
46+
47+
48+func w () = if (!(v()))
49+ then throw("Not initialized")
50+ else unit
51+
52+
53+func x () = if (v())
54+ then throw("Already initialized")
55+ else unit
56+
57+
58+func y (z) = if ((z.caller != this))
59+ then throw("Only self invocation allowed.")
60+ else unit
61+
62+
63+func A () = addressFromStringValue(valueOrErrorMessage(getString(o()), "Coordinator is not set"))
64+
65+
66+func B () = {
67+ let C = getString(o())
68+ if ($isInstanceOf(C, "String"))
69+ then {
70+ let D = C
71+ getString(addressFromStringValue(D), p())
72+ }
73+ else if ($isInstanceOf(C, "Unit"))
74+ then unit
75+ else throw("Match error")
76+ }
77+
78+
79+func E () = valueOrErrorMessage(getString(A(), q()), "East asset is not set")
80+
81+
82+func F () = fromBase58String(E())
83+
84+
85+func G () = valueOrElse(getBoolean(A(), u()), false)
86+
87+
88+func H () = if (if (!(G()))
89+ then true
90+ else !(v()))
91+ then throw("Protocol is disabled. Please contact support.")
92+ else unit
93+
94+
95+func I (z) = (size(z.payments) == 1)
96+
97+
98+func J (K) = if ((K == "WAVES"))
99+ then unit
100+ else fromBase58String(K)
101+
102+
103+func L (M,N) = {
104+ let K = {
105+ let C = N
106+ if ($isInstanceOf(C, "ByteVector"))
107+ then {
108+ let O = C
109+ O
110+ }
111+ else if ($isInstanceOf(C, "String"))
112+ then {
113+ let D = C
114+ J(D)
115+ }
116+ else if ($isInstanceOf(C, "Unit"))
117+ then unit
118+ else throw("Match error")
119+ }
120+ let C = K
121+ if ($isInstanceOf(C, "ByteVector"))
122+ then {
123+ let O = C
124+ let P = {
125+ let Q = assetInfo(O)
126+ if ($isInstanceOf(Q, "Asset"))
127+ then {
128+ let R = Q
129+ R.name
130+ }
131+ else if ($isInstanceOf(Q, "Unit"))
132+ then throw(("Can't find asset " + toBase58String(O)))
133+ else throw("Match error")
134+ }
135+ let S = throw(("Attached payment asset is not " + P))
136+ let Q = M.assetId
137+ if ($isInstanceOf(Q, "ByteVector"))
138+ then {
139+ let T = Q
140+ if ((T != K))
141+ then S
142+ else unit
143+ }
144+ else if ($isInstanceOf(Q, "Unit"))
145+ then S
146+ else throw("Match error")
147+ }
148+ else if ($isInstanceOf(C, "Unit"))
149+ then if ((M.assetId != unit))
150+ then throw("Attached payment asset is not WAVES")
151+ else unit
152+ else throw("Match error")
153+ }
154+
155+
156+func U (s) = {
157+ let C = addressFromString(s)
158+ if ($isInstanceOf(C, "Address"))
159+ then {
160+ let V = C
161+ true
162+ }
163+ else if ($isInstanceOf(C, "Unit"))
164+ then throw("Invalid address")
165+ else throw("Match error")
166+ }
167+
168+
169+func W () = (lastBlock.timestamp / 1000)
170+
171+
172+func X () = l(["%s", "balance"])
173+
174+
175+func Y () = l(["%s", "rate"])
176+
177+
178+func Z () = l(["%s", "stEast"])
179+
180+
181+func aa () = fromBase58String(getStringValue(this, Z()))
182+
183+
184+func ab () = valueOrElse(getInteger(X()), 0)
185+
186+
187+func ac () = getIntegerValue(Y())
188+
189+
190+let ad = 1
191+
192+let ae = 2
193+
194+let af = 1
195+
196+let ag = 2
197+
198+let ah = 3
199+
200+func ai () = l(["%s", "assetsInPools"])
201+
202+
203+func aj (ak) = l(["%s%s", "assetPool", ak])
204+
205+
206+func al (am) = l(["%s%s", "assetPoolBalances", am])
207+
208+
209+func an () = {
210+ let C = getString(this, ai())
211+ if ($isInstanceOf(C, "String"))
212+ then {
213+ let D = C
214+ split(D, a)
215+ }
216+ else if ($isInstanceOf(C, "Unit"))
217+ then nil
218+ else throw("Match error")
219+ }
220+
221+
222+func ao (ak) = {
223+ let ap = split(getStringValue(this, aj(ak)), a)
224+ let aq = ap[ae]
225+ aq
226+ }
227+
228+
229+func ar (s) = {
230+ let as = F()
231+ let V = addressFromStringValue(s)
232+ let at = assetBalance(V, as)
233+ at
234+ }
235+
236+
237+func au (ak) = {
238+ let aq = ao(ak)
239+ let at = ar(aq)
240+ at
241+ }
242+
243+
244+func av (am) = {
245+ let aw = getStringValue(aj(am))
246+ let ap = split(aw, a)
247+ if ((ap[ad] != c))
248+ then throw((("Asset " + am) + " is not enabled"))
249+ else unit
250+ }
251+
252+
253+func ax (am) = {
254+ let C = getString(aj(am))
255+ if ($isInstanceOf(C, "String"))
256+ then {
257+ let D = C
258+ true
259+ }
260+ else if ($isInstanceOf(C, "Unit"))
261+ then false
262+ else throw("Match error")
263+ }
264+
265+
266+func ay (az,aA) = l(["%s%s", az, aA])
267+
268+
269+func aB (am) = {
270+ let aC = {
271+ let C = getString(al(am))
272+ if ($isInstanceOf(C, "String"))
273+ then {
274+ let D = C
275+ split(D, a)
276+ }
277+ else if ($isInstanceOf(C, "Unit"))
278+ then ["%d%d%d", "0", toString(W()), "0"]
279+ else throw("Match error")
280+ }
281+ let aD = parseIntValue(aC[af])
282+ let aE = parseIntValue(aC[ag])
283+ let aF = parseIntValue(aC[ah])
284+ $Tuple3(aD, aE, aF)
285+ }
286+
287+
288+func aG (aH,aI) = makeString(["%d%d%d", toString(aH), toString(W()), toString(aI)], a)
289+
290+
291+func aJ (aK) = {
292+ let at = (ab() + aK)
293+[IntegerEntry(X(), at)]
294+ }
295+
296+
297+func aL (aM) = [IntegerEntry(Y(), aM)]
298+
299+
300+func aN (aK) = {
301+ let aO = aa()
302+[Reissue(aO, aK, true)]
303+ }
304+
305+
306+func aP (aK) = {
307+ let aO = aa()
308+[Burn(aO, aK)]
309+ }
310+
311+
312+func aQ (aR,aK) = {
313+ let aO = aa()
314+[ScriptTransfer(aR, aK, aO)]
315+ }
316+
317+
318+func aS (aR,aK) = {
319+ let as = F()
320+[ScriptTransfer(aR, aK, as)]
321+ }
322+
323+
324+func aT () = {
325+ let aO = aa()
326+ let C = assetInfo(aO)
327+ if ($isInstanceOf(C, "Asset"))
328+ then {
329+ let R = C
330+ R.quantity
331+ }
332+ else throw("Can't find stEAST asset")
333+ }
334+
335+
336+@Callable(z)
337+func initialize (aU) = {
338+ let aV = [y(z), x(), U(aU)]
339+ if ((aV == aV))
340+ then {
341+ let aO = Issue("stEAST", "", 0, 8, true, unit, 0)
342+ let aW = calculateAssetId(aO)
343+[BooleanEntry(n(), true), StringEntry(o(), aU), StringEntry(Z(), toBase58String(aW)), IntegerEntry(Y(), b), aO]
344+ }
345+ else throw("Strict value is not equal to itself.")
346+ }
347+
348+
349+
350+@Callable(z)
351+func updateLpPoolBalances () = {
352+ let aV = [w(), y(z)]
353+ if ((aV == aV))
354+ then {
355+ let aX = ac()
356+ let aY = aT()
357+ func aZ (ba,bb) = {
358+ let C = bb
359+ if ($isInstanceOf(C, "String"))
360+ then {
361+ let R = C
362+ let bc = [av(R)]
363+ if ((bc == bc))
364+ then {
365+ let bd = au(R)
366+ let be = {
367+ let bf = aB(R)
368+ if ($isInstanceOf(bf, "(Int, Int, Int)"))
369+ then bf
370+ else throw(($getType(bf) + " couldn't be cast to (Int, Int, Int)"))
371+ }
372+ let bg = be._1
373+ let aE = be._2
374+ let bh = be._3
375+ let bi = (bd - bg)
376+ let bj = i(e(bi, aX))
377+ let bk = (bh + bj)
378+ let bl = [StringEntry(al(R), aG(bd, bk))]
379+ $Tuple3((ba._1 ++ bl), (ba._2 + bj), (ba._3 + bi))
380+ }
381+ else throw("Strict value is not equal to itself.")
382+ }
383+ else if ($isInstanceOf(C, "Unit"))
384+ then ba
385+ else throw("Match error")
386+ }
387+
388+ let bm = an()
389+ let bn = if ((1 > size(bm)))
390+ then $Tuple3(nil, 0, 0)
391+ else {
392+ let bo = bm
393+ let bp = size(bo)
394+ let bq = $Tuple3(nil, 0, 0)
395+ func br (bs,bt) = if ((bt >= bp))
396+ then bs
397+ else aZ(bs, bo[bt])
398+
399+ func bu (bs,bt) = if ((bt >= bp))
400+ then bs
401+ else throw("List size exceeds 10")
402+
403+ bu(br(br(br(br(br(br(br(br(br(br(bq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
404+ }
405+ let bv = bn._1
406+ let bw = bn._2
407+ let bx = bn._3
408+ let aO = aa()
409+ let by = if ((bw > 0))
410+ then aN(bw)
411+ else aP((bw * -1))
412+ let bz = aJ(bx)
413+ ((bv ++ by) ++ bz)
414+ }
415+ else throw("Strict value is not equal to itself.")
416+ }
417+
418+
419+
420+@Callable(z)
421+func stake () = {
422+ let bA = z.payments[0]
423+ let as = F()
424+ let aV = [H(), I(z), L(bA, as)]
425+ if ((aV == aV))
426+ then {
427+ let bB = invoke(this, "updateLpPoolBalances", nil, nil)
428+ if ((bB == bB))
429+ then {
430+ let aX = ac()
431+ let bC = i(bA.amount)
432+ let bD = e(bC, aX)
433+ $Tuple2(((aJ(bA.amount) ++ aN(bD)) ++ aQ(z.caller, bD)), bD)
434+ }
435+ else throw("Strict value is not equal to itself.")
436+ }
437+ else throw("Strict value is not equal to itself.")
438+ }
439+
440+
441+
442+@Callable(z)
443+func unstake () = {
444+ let bA = z.payments[0]
445+ let aO = aa()
446+ let aV = [H(), I(z), L(bA, aO)]
447+ if ((aV == aV))
448+ then {
449+ let bB = invoke(this, "updateLpPoolBalances", nil, nil)
450+ if ((bB == bB))
451+ then {
452+ let aX = ac()
453+ let bE = k(h(bA.amount, aX))
454+ ((aJ(-(bE)) ++ aP(bA.amount)) ++ aS(z.caller, bE))
455+ }
456+ else throw("Strict value is not equal to itself.")
457+ }
458+ else throw("Strict value is not equal to itself.")
459+ }
460+
461+
462+
463+@Callable(z)
464+func addStakingRewards () = {
465+ let bA = z.payments[0]
466+ let as = F()
467+ let aV = [H(), I(z), L(bA, as)]
468+ if ((aV == aV))
469+ then {
470+ let bB = invoke(this, "updateLpPoolBalances", nil, nil)
471+ if ((bB == bB))
472+ then {
473+ let at = ab()
474+ let bF = i((at + bA.amount))
475+ let bG = aT()
476+ let bH = e(bF, bG)
477+ (aJ(bA.amount) ++ aL(bH))
478+ }
479+ else throw("Strict value is not equal to itself.")
480+ }
481+ else throw("Strict value is not equal to itself.")
482+ }
483+
484+
485+
486+@Callable(z)
487+func addAssetPool (aA,am) = {
488+ let aV = [w(), y(z)]
489+ if ((aV == aV))
490+ then if (!(U(aA)))
491+ then throw("Address is not valid")
492+ else if (ax(am))
493+ then throw("Asset is already set")
494+ else {
495+ let bI = makeString((an() ++ [am]), a)
496+[StringEntry(aj(am), ay(c, aA)), StringEntry(ai(), bI)]
497+ }
498+ else throw("Strict value is not equal to itself.")
499+ }
500+
501+
502+
503+@Callable(z)
504+func disableAssetPool (am) = {
505+ let bc = [w(), y(z)]
506+ if ((bc == bc))
507+ then {
508+ let bJ = split(valueOrErrorMessage(getString(aj(am)), "Unknown asset"), a)
509+[StringEntry(aj(am), ay(d, bJ[ae]))]
510+ }
511+ else throw("Strict value is not equal to itself.")
512+ }
513+
514+
515+
516+@Callable(z)
517+func enableAssetPool (am) = {
518+ let bc = [w(), y(z)]
519+ if ((bc == bc))
520+ then {
521+ let bJ = split(valueOrErrorMessage(getString(aj(am)), "Unknown asset"), a)
522+[StringEntry(aj(am), ay(c, bJ[ae]))]
523+ }
524+ else throw("Strict value is not equal to itself.")
525+ }
526+
527+
528+@Verifier(bK)
529+func bL () = {
530+ let C = B()
531+ if ($isInstanceOf(C, "String"))
532+ then {
533+ let V = C
534+ valueOrElse(getBoolean(addressFromStringValue(V), r(toString(this), toBase58String(bK.id))), false)
535+ }
536+ else sigVerify(bK.bodyBytes, bK.proofs[0], bK.senderPublicKey)
537+ }
538+

github/deemru/w8io/026f985 
28.97 ms