tx · GHCAn7JynJZEEaSwhguPyhVcaegkiEotn52o4cXeDtuM

3N98Ngyaszw66EakvWRCiZ771ja2RDgNaxV:  -0.02800000 Waves

2023.01.11 15:37 [2400301] smart account 3N98Ngyaszw66EakvWRCiZ771ja2RDgNaxV > SELF 0.00000000 Waves

{ "type": 13, "id": "GHCAn7JynJZEEaSwhguPyhVcaegkiEotn52o4cXeDtuM", "fee": 2800000, "feeAssetId": null, "timestamp": 1673440682685, "version": 1, "sender": "3N98Ngyaszw66EakvWRCiZ771ja2RDgNaxV", "senderPublicKey": "F4oaTkX67vt2MEsXLJJ8a7gaURGjW7x8fkvGfdEiH5oy", "proofs": [ "2wyyM16Co1oPSDB3xB5U2ENRMR82NkVQjoSxp54YRXZrniVYLXwqq76Qu7we6gUQW1kwWj8LoAv4C3BjGQ6kcQQL" ], "script": "base64:BgInCAISAwoBCBIAEgcKBQgICAgIEgASBAoCCAgSABIECgIICBIDCgEIQQAJc2VwYXJhdG9yAgJfXwASc2hhcmVBc3NldERlY2ltYWxzAAgAC3dhdmVzU3RyaW5nAgVXQVZFUwAHc2NhbGUxOACAgJC7utat8A0ADXNjYWxlMThCaWdJbnQJALYCAQUHc2NhbGUxOAEHd3JhcEVycgEDbXNnCQC5CQIJAMwIAgIWbHBfc3Rha2luZ19wb29scy5yaWRlOgkAzAgCBQNtc2cFA25pbAIBIAEIdGhyb3dFcnIBA21zZwkAAgEJAQd3cmFwRXJyAQUDbXNnARJlcnJLZXlJc05vdERlZmluZWQCB2FkZHJlc3MDa2V5CQEHd3JhcEVycgEJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQxnZXRTdHJPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUHYWRkcmVzcwUDa2V5CQESZXJyS2V5SXNOb3REZWZpbmVkAgUHYWRkcmVzcwUDa2V5AQxnZXRJbnRPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUHYWRkcmVzcwUDa2V5CQESZXJyS2V5SXNOb3REZWZpbmVkAgUHYWRkcmVzcwUDa2V5AQxwYXJzZUFzc2V0SWQBBWlucHV0AwkAAAIFBWlucHV0BQt3YXZlc1N0cmluZwUEdW5pdAkA2QQBBQVpbnB1dAEPYXNzZXRJZFRvU3RyaW5nAQVpbnB1dAMJAAACBQVpbnB1dAUEdW5pdAULd2F2ZXNTdHJpbmcJANgEAQkBBXZhbHVlAQUFaW5wdXQBDmVuc3VyZVBvc2l0aXZlAQF2AwkAZwIFAXYAAAUBdgkBCHRocm93RXJyAQIYdmFsdWUgc2hvdWxkIGJlIHBvc2l0aXZlARJrZXlGYWN0b3J5Q29udHJhY3QACQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgEUa2V5THBTdGFraW5nQ29udHJhY3QACQC5CQIJAMwIAgICJXMJAMwIAgIRbHBTdGFraW5nQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yARJrZXlTdGFraW5nQ29udHJhY3QACQC5CQIJAMwIAgICJXMJAMwIAgIPc3Rha2luZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgETa2V5Qm9vc3RpbmdDb250cmFjdAAJALkJAgkAzAgCAgIlcwkAzAgCAhBib29zdGluZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgEPa2V5U3dhcENvbnRyYWN0AAkAuQkCCQDMCAICAiVzCQDMCAICDHN3YXBDb250cmFjdAUDbmlsBQlzZXBhcmF0b3IBFmtleUFzc2V0c1N0b3JlQ29udHJhY3QACQC5CQIJAMwIAgICJXMJAMwIAgITYXNzZXRzU3RvcmVDb250cmFjdAUDbmlsBQlzZXBhcmF0b3IBDmtleVVzZG5Bc3NldElkAAkAuQkCCQDMCAICAiVzCQDMCAICC3VzZG5Bc3NldElkBQNuaWwFCXNlcGFyYXRvcgEMa2V5V3hBc3NldElkAAkAuQkCCQDMCAICAiVzCQDMCAICCXd4QXNzZXRJZAUDbmlsBQlzZXBhcmF0b3IBC2tleVNodXRkb3duAAkAuQkCCQDMCAICAiVzCQDMCAICCHNodXRkb3duBQNuaWwFCXNlcGFyYXRvcgELa2V5TWluRGVsYXkACQC5CQIJAMwIAgICJXMJAMwIAgIIbWluRGVsYXkFA25pbAUJc2VwYXJhdG9yAQ9rZXlMb2NrRnJhY3Rpb24ACQC5CQIJAMwIAgICJXMJAMwIAgIMbG9ja0ZyYWN0aW9uBQNuaWwFCXNlcGFyYXRvcgEPa2V5U2hhcmVBc3NldElkAQtiYXNlQXNzZXRJZAkAuQkCCQDMCAICBCVzJXMJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICDHNoYXJlQXNzZXRJZAUDbmlsBQlzZXBhcmF0b3IBDmtleUJhc2VBc3NldElkAQxzaGFyZUFzc2V0SWQJALkJAgkAzAgCAgQlcyVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQxzaGFyZUFzc2V0SWQJAMwIAgILYmFzZUFzc2V0SWQFA25pbAUJc2VwYXJhdG9yAQlrZXlQZXJpb2QBC2Jhc2VBc3NldElkCQC5CQIJAMwIAgIEJXMlcwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgIGcGVyaW9kBQNuaWwFCXNlcGFyYXRvcgEUa2V5UGVyaW9kU3RhcnRIZWlnaHQCC2Jhc2VBc3NldElkBnBlcmlvZAkAuQkCCQDMCAICBiVzJXMlZAkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgIRcGVyaW9kU3RhcnRIZWlnaHQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUJc2VwYXJhdG9yARtrZXlCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQBC2Jhc2VBc3NldElkCQC5CQIJAMwIAgIEJXMlcwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgIYYmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0BQNuaWwFCXNlcGFyYXRvcgEca2V5U2hhcmVBc3NldEFtb3VudFRvQ29udmVydAELYmFzZUFzc2V0SWQJALkJAgkAzAgCAgQlcyVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCAhlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0BQNuaWwFCXNlcGFyYXRvcgEfa2V5VXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydAILYmFzZUFzc2V0SWQLdXNlckFkZHJlc3MJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAIJAKUIAQULdXNlckFkZHJlc3MJAMwIAgIYYmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0BQNuaWwFCXNlcGFyYXRvcgEla2V5VXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAILYmFzZUFzc2V0SWQLdXNlckFkZHJlc3MJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCAhhiYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQJAMwIAgIGcGVyaW9kBQNuaWwFCXNlcGFyYXRvcgEga2V5VXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQCC2Jhc2VBc3NldElkC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCCQClCAEFC3VzZXJBZGRyZXNzCQDMCAICGXNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQFA25pbAUJc2VwYXJhdG9yASZrZXlVc2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAILYmFzZUFzc2V0SWQLdXNlckFkZHJlc3MJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCAhlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0CQDMCAICBnBlcmlvZAUDbmlsBQlzZXBhcmF0b3IBDmtleVByaWNlUGVyaW9kAgtiYXNlQXNzZXRJZAZwZXJpb2QJALkJAgkAzAgCAgYlcyVzJWQJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICBXByaWNlCQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFCXNlcGFyYXRvcgEPa2V5UHJpY2VIaXN0b3J5AQtiYXNlQXNzZXRJZAkAuQkCCQDMCAICCiVzJXMlcyVkJWQJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICBXByaWNlCQDMCAICB2hpc3RvcnkJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQNuaWwFCXNlcGFyYXRvcgERa2V5UHJpY2VQZXJpb2RQdXQCC2Jhc2VBc3NldElkBnBlcmlvZAkAuQkCCQDMCAICCCVzJXMlZCVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCAgVwcmljZQkAzAgCCQCkAwEFBnBlcmlvZAkAzAgCAgNwdXQFA25pbAUJc2VwYXJhdG9yARJrZXlQcmljZVB1dEhpc3RvcnkBC2Jhc2VBc3NldElkCQC5CQIJAMwIAgIMJXMlcyVzJXMlZCVkCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCAgVwcmljZQkAzAgCAgdoaXN0b3J5CQDMCAICA3B1dAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sGaGVpZ2h0CQDMCAIJAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAFA25pbAUJc2VwYXJhdG9yARFrZXlQcmljZVBlcmlvZEdldAILYmFzZUFzc2V0SWQGcGVyaW9kCQC5CQIJAMwIAgIIJXMlcyVkJXMJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICBXByaWNlCQDMCAIJAKQDAQUGcGVyaW9kCQDMCAICA2dldAUDbmlsBQlzZXBhcmF0b3IBEmtleVByaWNlR2V0SGlzdG9yeQELYmFzZUFzc2V0SWQJALkJAgkAzAgCAgwlcyVzJXMlcyVkJWQJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICBXByaWNlCQDMCAICB2hpc3RvcnkJAMwIAgIDZ2V0CQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUDbmlsBQlzZXBhcmF0b3IBD2tleUhpc3RvcnlFbnRyeQULYmFzZUFzc2V0SWQJb3BlcmF0aW9uBnBlcmlvZAt1c2VyQWRkcmVzcwR0eElkCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgIHaGlzdG9yeQkAzAgCBQlvcGVyYXRpb24JAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCCQDYBAEFBHR4SWQJAMwIAgkApAMBBQZoZWlnaHQFA25pbAUJc2VwYXJhdG9yARNrZXlNYW5hZ2VyUHVibGljS2V5AAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAFXBlcm1pc3Npb25EZW5pZWRFcnJvcgkAAgECEVBlcm1pc3Npb24gZGVuaWVkAQhtdXN0VGhpcwEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBRVwZXJtaXNzaW9uRGVuaWVkRXJyb3IBC211c3RNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFFXBlcm1pc3Npb25EZW5pZWRFcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0CQEIbXVzdFRoaXMBBQFpCQACAQILTWF0Y2ggZXJyb3IACHNodXRkb3duCQELdmFsdWVPckVsc2UCCQCgCAEJAQtrZXlTaHV0ZG93bgAHAQ1zaHV0ZG93bkNoZWNrAQFpAwMJAQEhAQUIc2h1dGRvd24GCQELbXVzdE1hbmFnZXIBBQFpBgkAAgECFW9wZXJhdGlvbiBpcyBkaXNhYmxlZAAPZmFjdG9yeUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBEmtleUZhY3RvcnlDb250cmFjdAAAEWxwU3Rha2luZ0NvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBFGtleUxwU3Rha2luZ0NvbnRyYWN0AAAPc3Rha2luZ0NvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBEmtleVN0YWtpbmdDb250cmFjdAAAEGJvb3N0aW5nQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQxnZXRTdHJPckZhaWwCBQR0aGlzCQETa2V5Qm9vc3RpbmdDb250cmFjdAAADHN3YXBDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDGdldFN0ck9yRmFpbAIFBHRoaXMJAQ9rZXlTd2FwQ29udHJhY3QAABNhc3NldHNTdG9yZUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAAt1c2RuQXNzZXRJZAkBDHBhcnNlQXNzZXRJZAEJAQxnZXRTdHJPckZhaWwCBQR0aGlzCQEOa2V5VXNkbkFzc2V0SWQAAAl3eEFzc2V0SWQJAQxwYXJzZUFzc2V0SWQBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBDGtleVd4QXNzZXRJZAAAD21pbkRlbGF5RGVmYXVsdACgCwAIbWluRGVsYXkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2tleU1pbkRlbGF5AAUPbWluRGVsYXlEZWZhdWx0ABZsb2NrRnJhY3Rpb25NdWx0aXBsaWVyAIDC1y8AE2xvY2tGcmFjdGlvbkRlZmF1bHQJAGsDAAEFFmxvY2tGcmFjdGlvbk11bHRpcGxpZXIAAgAMbG9ja0ZyYWN0aW9uCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlMb2NrRnJhY3Rpb24ABRNsb2NrRnJhY3Rpb25EZWZhdWx0AQtnZXRQb29sSW5mbwENYW1vdW50QXNzZXRJZAQQYW1vdW50QXNzZXRJZFN0cgkBD2Fzc2V0SWRUb1N0cmluZwEFDWFtb3VudEFzc2V0SWQED3ByaWNlQXNzZXRJZFN0cgkBD2Fzc2V0SWRUb1N0cmluZwEFC3VzZG5Bc3NldElkBA5wb29sSW5mb09wdGlvbgoAAUAJAPwHBAUPZmFjdG9yeUNvbnRyYWN0AhBwb29sSW5mb1JFQURPTkxZCQDMCAIFEGFtb3VudEFzc2V0SWRTdHIJAMwIAgUPcHJpY2VBc3NldElkU3RyBQNuaWwFA25pbAMJAAECBQFAAhUoQWRkcmVzcywgQnl0ZVZlY3RvcikFAUAFBHVuaXQFDnBvb2xJbmZvT3B0aW9uAQljYWxjUHJpY2UCCWxwQXNzZXRJZAxzaGFyZUFzc2V0SWQEDnNoYXJlQXNzZXRJbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUMc2hhcmVBc3NldElkAh5mYWlsZWQgdG8gZ2V0IHNoYXJlIGFzc2V0IGluZm8EEnNoYXJlQXNzZXRFbWlzc2lvbggFDnNoYXJlQXNzZXRJbmZvCHF1YW50aXR5BAxzdGFrZWRBbW91bnQJAQ5lbnN1cmVQb3NpdGl2ZQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgoAAUAJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AhRzdGFrZWRCeVVzZXJSRUFET05MWQkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUJbHBBc3NldElkCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFABQR1bml0CQEHd3JhcEVycgECI2ludmFsaWQgc3Rha2VkQnlVc2VyUkVBRE9OTFkgcmVzdWx0BAVwcmljZQMJAAACBRJzaGFyZUFzc2V0RW1pc3Npb24AAAUNc2NhbGUxOEJpZ0ludAkAvQIECQC2AgEFDHN0YWtlZEFtb3VudAUNc2NhbGUxOEJpZ0ludAkAtgIBBRJzaGFyZUFzc2V0RW1pc3Npb24FBUZMT09SBQVwcmljZQgBaQEKc2V0TWFuYWdlcgEXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDZBAEFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAIFFWNoZWNrTWFuYWdlclB1YmxpY0tleQUVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY29uZmlybU1hbmFnZXIABAJwbQkBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQFaGFzUE0DCQEJaXNEZWZpbmVkAQUCcG0GCQEIdGhyb3dFcnIBAhJubyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUFaGFzUE0FBWhhc1BNBAdjaGVja1BNAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCcG0GCQEIdGhyb3dFcnIBAht5b3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUHY2hlY2tQTQUHY2hlY2tQTQkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5TWFuYWdlclB1YmxpY0tleQAJANgEAQkBBXZhbHVlAQUCcG0JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBmNyZWF0ZQUOYmFzZUFzc2V0SWRTdHIPc2hhcmVBc3NldElkU3RyDnNoYXJlQXNzZXROYW1lFXNoYXJlQXNzZXREZXNjcmlwdGlvbg5zaGFyZUFzc2V0TG9nbwQPc2hhcmVBc3NldExhYmVsAhBMUF9TVEFLSU5HX1BPT0xTBAtiYXNlQXNzZXRJZAkBDHBhcnNlQXNzZXRJZAEFDmJhc2VBc3NldElkU3RyBAZjaGVja3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkBCWlzRGVmaW5lZAEJAQtnZXRQb29sSW5mbwEFC2Jhc2VBc3NldElkBgkBCHRocm93RXJyAQISaW52YWxpZCBiYXNlIGFzc2V0BQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEC2NvbW1vblN0YXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEJa2V5UGVyaW9kAQULYmFzZUFzc2V0SWQAAAUDbmlsAwkAAAIFD3NoYXJlQXNzZXRJZFN0cgIABBVzaGFyZUFzc2V0SXNzdWVBbW91bnQAAQQVc2hhcmVBc3NldElzc3VlQWN0aW9uCQDCCAUFDnNoYXJlQXNzZXROYW1lBRVzaGFyZUFzc2V0RGVzY3JpcHRpb24FFXNoYXJlQXNzZXRJc3N1ZUFtb3VudAUSc2hhcmVBc3NldERlY2ltYWxzBgQWY2FsY3VsYXRlZFNoYXJlQXNzZXRJZAkAuAgBBRVzaGFyZUFzc2V0SXNzdWVBY3Rpb24EFHNoYXJlQXNzZXRCdXJuQWN0aW9uCQEEQnVybgIFFmNhbGN1bGF0ZWRTaGFyZUFzc2V0SWQFFXNoYXJlQXNzZXRJc3N1ZUFtb3VudAQZY2FsY3VsYXRlZFNoYXJlQXNzZXRJZFN0cgkA2AQBBRZjYWxjdWxhdGVkU2hhcmVBc3NldElkBA5jcmVhdGVPclVwZGF0ZQkA/AcEBRNhc3NldHNTdG9yZUNvbnRyYWN0Ag5jcmVhdGVPclVwZGF0ZQkAzAgCBRljYWxjdWxhdGVkU2hhcmVBc3NldElkU3RyCQDMCAIFDnNoYXJlQXNzZXRMb2dvCQDMCAIHBQNuaWwFA25pbAMJAAACBQ5jcmVhdGVPclVwZGF0ZQUOY3JlYXRlT3JVcGRhdGUECGFkZExhYmVsCQD8BwQFE2Fzc2V0c1N0b3JlQ29udHJhY3QCCGFkZExhYmVsCQDMCAIFGWNhbGN1bGF0ZWRTaGFyZUFzc2V0SWRTdHIJAMwIAgUPc2hhcmVBc3NldExhYmVsBQNuaWwFA25pbAMJAAACBQhhZGRMYWJlbAUIYWRkTGFiZWwJAJQKAgkAzggCBQtjb21tb25TdGF0ZQkAzAgCBRVzaGFyZUFzc2V0SXNzdWVBY3Rpb24JAMwIAgUUc2hhcmVBc3NldEJ1cm5BY3Rpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVNoYXJlQXNzZXRJZAEFC2Jhc2VBc3NldElkBRljYWxjdWxhdGVkU2hhcmVBc3NldElkU3RyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlCYXNlQXNzZXRJZAEFFmNhbGN1bGF0ZWRTaGFyZUFzc2V0SWQFDmJhc2VBc3NldElkU3RyBQNuaWwFGWNhbGN1bGF0ZWRTaGFyZUFzc2V0SWRTdHIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EDHNoYXJlQXNzZXRJZAkA2QQBBQ9zaGFyZUFzc2V0SWRTdHIEDnNoYXJlQXNzZXRJbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUMc2hhcmVBc3NldElkCQEHd3JhcEVycgECFmludmFsaWQgc2hhcmUgYXNzZXQgaWQEC2NoZWNrSXNzdWVyAwkAAAIIBQ5zaGFyZUFzc2V0SW5mbwZpc3N1ZXIFEWxwU3Rha2luZ0NvbnRyYWN0BgkBCHRocm93RXJyAQIdaW52YWxpZCBzaGFyZSBhc3NldCBpZCBpc3N1ZXIDCQAAAgULY2hlY2tJc3N1ZXIFC2NoZWNrSXNzdWVyCQCUCgIJAM4IAgULY29tbW9uU3RhdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVNoYXJlQXNzZXRJZAEFC2Jhc2VBc3NldElkBQ9zaGFyZUFzc2V0SWRTdHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVNoYXJlQXNzZXRJZAEFDHNoYXJlQXNzZXRJZAUOYmFzZUFzc2V0SWRTdHIFA25pbAUPc2hhcmVBc3NldElkU3RyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBA3B1dAAEA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkBCHRocm93RXJyAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEC2Jhc2VBc3NldElkCAUDcG10B2Fzc2V0SWQEC3VzZXJBZGRyZXNzCAUBaQZjYWxsZXIEBmNoZWNrcwkAzAgCCQENc2h1dGRvd25DaGVjawEFAWkJAMwIAgMJAQlpc0RlZmluZWQBCQCiCAEJAQ9rZXlTaGFyZUFzc2V0SWQBBQtiYXNlQXNzZXRJZAYJAQh0aHJvd0VycgECDWludmFsaWQgYXNzZXQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQNJHQwMTEzMTIxMTQxNQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQELZ2V0UG9vbEluZm8BBQtiYXNlQXNzZXRJZAkBB3dyYXBFcnIBAg1pbnZhbGlkIGFzc2V0BAtwb29sQWRkcmVzcwgFDSR0MDExMzEyMTE0MTUCXzEECWxwQXNzZXRJZAgFDSR0MDExMzEyMTE0MTUCXzIEBnBlcmlvZAkBBXZhbHVlAQkAnwgBCQEJa2V5UGVyaW9kAQULYmFzZUFzc2V0SWQEKHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2RPcHRpb24JAJ8IAQkBJWtleVVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2QCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MEGWNsYWltU2hhcmVBc3NldEludm9jYXRpb24DCQAAAgUodXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZE9wdGlvbgUEdW5pdAUEdW5pdAQidXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAkBBXZhbHVlAQUodXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZE9wdGlvbgMJAAACBSJ1c2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kBQZwZXJpb2QFBHVuaXQJAPwHBAUEdGhpcwIPY2xhaW1TaGFyZUFzc2V0CQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCCQClCAEFC3VzZXJBZGRyZXNzBQNuaWwFA25pbAMJAAACBRljbGFpbVNoYXJlQXNzZXRJbnZvY2F0aW9uBRljbGFpbVNoYXJlQXNzZXRJbnZvY2F0aW9uBBhiYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBG2tleUJhc2VBc3NldEFtb3VudFRvQ29udmVydAEFC2Jhc2VBc3NldElkAAAEHHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBH2tleVVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MAAAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEba2V5QmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0AQULYmFzZUFzc2V0SWQJAGQCBRhiYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEfa2V5VXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwkAZAIFHHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEla2V5VXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwUGcGVyaW9kCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5SGlzdG9yeUVudHJ5BQULYmFzZUFzc2V0SWQCA3B1dAUGcGVyaW9kBQt1c2VyQWRkcmVzcwgFAWkNdHJhbnNhY3Rpb25JZAgFA3BtdAZhbW91bnQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9jbGFpbVNoYXJlQXNzZXQCDmJhc2VBc3NldElkU3RyDnVzZXJBZGRyZXNzU3RyBAZjaGVja3MJAMwIAgkBDXNodXRkb3duQ2hlY2sBBQFpBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEC3VzZXJBZGRyZXNzAwkAAAIFDnVzZXJBZGRyZXNzU3RyAgAIBQFpBmNhbGxlcgQLY2hlY2tDYWxsZXIJAQhtdXN0VGhpcwEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUOdXNlckFkZHJlc3NTdHIJAQd3cmFwRXJyAQIUaW52YWxpZCB1c2VyIGFkZHJlc3MJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgULdXNlckFkZHJlc3MFC3VzZXJBZGRyZXNzBAtiYXNlQXNzZXRJZAkBDHBhcnNlQXNzZXRJZAEFDmJhc2VBc3NldElkU3RyBAxzaGFyZUFzc2V0SWQJAQV2YWx1ZQEJAQxwYXJzZUFzc2V0SWQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBD2tleVNoYXJlQXNzZXRJZAEFC2Jhc2VBc3NldElkCQEHd3JhcEVycgECFWludmFsaWQgYmFzZSBhc3NldCBpZAMJAAACBQxzaGFyZUFzc2V0SWQFDHNoYXJlQXNzZXRJZAQGcGVyaW9kCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBCWtleVBlcmlvZAEFC2Jhc2VBc3NldElkCQEHd3JhcEVycgECDmludmFsaWQgcGVyaW9kAwkAAAIFBnBlcmlvZAUGcGVyaW9kBBx1c2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0CQELdmFsdWVPckVsc2UCCQCfCAEJAR9rZXlVc2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0AgULYmFzZUFzc2V0SWQFC3VzZXJBZGRyZXNzAAAEFGNoZWNrQW1vdW50VG9Db252ZXJ0AwkAZgIFHHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQAAAYJAQh0aHJvd0VycgECEG5vdGhpbmcgdG8gY2xhaW0DCQAAAgUUY2hlY2tBbW91bnRUb0NvbnZlcnQFFGNoZWNrQW1vdW50VG9Db252ZXJ0BCJ1c2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBJWtleVVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2QCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MJAQd3cmFwRXJyAQIUZmFpbGVkIHRvIGdldCBwZXJpb2QEC2NoZWNrUGVyaW9kAwkAZgIFBnBlcmlvZAUidXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAYJAQh0aHJvd0VycgECDmludmFsaWQgcGVyaW9kAwkAAAIFC2NoZWNrUGVyaW9kBQtjaGVja1BlcmlvZAQFcHJpY2UJAJ4DAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQChCAEJARFrZXlQcmljZVBlcmlvZFB1dAIFC2Jhc2VBc3NldElkBSJ1c2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kCQEHd3JhcEVycgECE2ZhaWxlZCB0byBnZXQgcHJpY2UEEHNoYXJlQXNzZXRBbW91bnQJAKADAQkAvAIDCQC2AgEFHHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQFDXNjYWxlMThCaWdJbnQFBXByaWNlCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAR9rZXlVc2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0AgULYmFzZUFzc2V0SWQFC3VzZXJBZGRyZXNzAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULdXNlckFkZHJlc3MFEHNoYXJlQXNzZXRBbW91bnQFDHNoYXJlQXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleUhpc3RvcnlFbnRyeQUFC2Jhc2VBc3NldElkAg9jbGFpbVNoYXJlQXNzZXQFBnBlcmlvZAULdXNlckFkZHJlc3MIBQFpDXRyYW5zYWN0aW9uSWQFEHNoYXJlQXNzZXRBbW91bnQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQNnZXQABAZjaGVja3MJAMwIAgkBDXNodXRkb3duQ2hlY2sBBQFpBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkBCHRocm93RXJyAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEDHNoYXJlQXNzZXRJZAgFA3BtdAdhc3NldElkBAtiYXNlQXNzZXRJZAkBBXZhbHVlAQkBDHBhcnNlQXNzZXRJZAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEOa2V5QmFzZUFzc2V0SWQBBQxzaGFyZUFzc2V0SWQJAQd3cmFwRXJyAQIWaW52YWxpZCBzaGFyZSBhc3NldCBpZAMJAAACBQtiYXNlQXNzZXRJZAULYmFzZUFzc2V0SWQEC3VzZXJBZGRyZXNzCAUBaQZjYWxsZXIEDSR0MDE1MTE2MTUyMTkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBC2dldFBvb2xJbmZvAQULYmFzZUFzc2V0SWQJAQd3cmFwRXJyAQINaW52YWxpZCBhc3NldAQLcG9vbEFkZHJlc3MIBQ0kdDAxNTExNjE1MjE5Al8xBAlscEFzc2V0SWQIBQ0kdDAxNTExNjE1MjE5Al8yBAZwZXJpb2QJAQV2YWx1ZQEJAJ8IAQkBCWtleVBlcmlvZAEFC2Jhc2VBc3NldElkBCl1c2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZE9wdGlvbgkAnwgBCQEma2V5VXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2QCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MEGGNsYWltQmFzZUFzc2V0SW52b2NhdGlvbgMJAAACBSl1c2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZE9wdGlvbgUEdW5pdAUEdW5pdAQjdXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2QJAQV2YWx1ZQEFKXVzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kT3B0aW9uAwkAAAIFI3VzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kBQZwZXJpb2QFBHVuaXQJAPwHBAUEdGhpcwIOY2xhaW1CYXNlQXNzZXQJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDbmlsAwkAAAIFGGNsYWltQmFzZUFzc2V0SW52b2NhdGlvbgUYY2xhaW1CYXNlQXNzZXRJbnZvY2F0aW9uBBlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0CQELdmFsdWVPckVsc2UCCQCfCAEJARxrZXlTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0AQULYmFzZUFzc2V0SWQAAAQddXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBIGtleVVzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0AgULYmFzZUFzc2V0SWQFC3VzZXJBZGRyZXNzAAAJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBHGtleVNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQBBQtiYXNlQXNzZXRJZAkAZAIFGXNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEga2V5VXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MJAGQCBR11c2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydAgFA3BtdAZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJASZrZXlVc2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwUGcGVyaW9kCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5SGlzdG9yeUVudHJ5BQULYmFzZUFzc2V0SWQCA2dldAUGcGVyaW9kBQt1c2VyQWRkcmVzcwgFAWkNdHJhbnNhY3Rpb25JZAgFA3BtdAZhbW91bnQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jbGFpbUJhc2VBc3NldAIOYmFzZUFzc2V0SWRTdHIOdXNlckFkZHJlc3NTdHIEBmNoZWNrcwkAzAgCCQENc2h1dGRvd25DaGVjawEFAWkFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQLdXNlckFkZHJlc3MDCQAAAgUOdXNlckFkZHJlc3NTdHICAAgFAWkGY2FsbGVyBAtjaGVja0NhbGxlcgkBCG11c3RUaGlzAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQ51c2VyQWRkcmVzc1N0cgkBB3dyYXBFcnIBAhRpbnZhbGlkIHVzZXIgYWRkcmVzcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQt1c2VyQWRkcmVzcwULdXNlckFkZHJlc3MEC2Jhc2VBc3NldElkCQEMcGFyc2VBc3NldElkAQUOYmFzZUFzc2V0SWRTdHIEDHNoYXJlQXNzZXRJZAkBBXZhbHVlAQkBDHBhcnNlQXNzZXRJZAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEPa2V5U2hhcmVBc3NldElkAQULYmFzZUFzc2V0SWQJAQd3cmFwRXJyAQIVaW52YWxpZCBiYXNlIGFzc2V0IGlkAwkAAAIFDHNoYXJlQXNzZXRJZAUMc2hhcmVBc3NldElkBAZwZXJpb2QJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEJa2V5UGVyaW9kAQULYmFzZUFzc2V0SWQJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QDCQAAAgUGcGVyaW9kBQZwZXJpb2QEHXVzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0CQELdmFsdWVPckVsc2UCCQCfCAEJASBrZXlVc2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwAABBRjaGVja0Ftb3VudFRvQ29udmVydAMJAGYCBR11c2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydAAABgkBCHRocm93RXJyAQIQbm90aGluZyB0byBjbGFpbQMJAAACBRRjaGVja0Ftb3VudFRvQ29udmVydAUUY2hlY2tBbW91bnRUb0NvbnZlcnQEI3VzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBJmtleVVzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kAgULYmFzZUFzc2V0SWQFC3VzZXJBZGRyZXNzCQEHd3JhcEVycgECFGZhaWxlZCB0byBnZXQgcGVyaW9kBAtjaGVja1BlcmlvZAMJAGYCBQZwZXJpb2QFI3VzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kBgkBCHRocm93RXJyAQIOaW52YWxpZCBwZXJpb2QDCQAAAgULY2hlY2tQZXJpb2QFC2NoZWNrUGVyaW9kBAVwcmljZQkAngMBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKEIAQkBEWtleVByaWNlUGVyaW9kR2V0AgULYmFzZUFzc2V0SWQFI3VzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kCQEHd3JhcEVycgECE2ZhaWxlZCB0byBnZXQgcHJpY2UED2Jhc2VBc3NldEFtb3VudAkAoAMBCQC8AgMJALYCAQUddXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQFBXByaWNlBQ1zY2FsZTE4QmlnSW50CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJASBrZXlVc2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFC3VzZXJBZGRyZXNzBQ9iYXNlQXNzZXRBbW91bnQFC2Jhc2VBc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5SGlzdG9yeUVudHJ5BQULYmFzZUFzc2V0SWQCDmNsYWltQmFzZUFzc2V0BQZwZXJpb2QFC3VzZXJBZGRyZXNzCAUBaQ10cmFuc2FjdGlvbklkBQ9iYXNlQXNzZXRBbW91bnQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhmaW5hbGl6ZQEOYmFzZUFzc2V0SWRTdHIEBmNoZWNrcwkAzAgCCQENc2h1dGRvd25DaGVjawEFAWkFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQLYmFzZUFzc2V0SWQJAQxwYXJzZUFzc2V0SWQBBQ5iYXNlQXNzZXRJZFN0cgQMc2hhcmVBc3NldElkCQEFdmFsdWUBCQEMcGFyc2VBc3NldElkAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQ9rZXlTaGFyZUFzc2V0SWQBBQtiYXNlQXNzZXRJZAkBB3dyYXBFcnIBAhVpbnZhbGlkIGJhc2UgYXNzZXQgaWQDCQAAAgUMc2hhcmVBc3NldElkBQxzaGFyZUFzc2V0SWQEBnBlcmlvZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJAQlrZXlQZXJpb2QBBQtiYXNlQXNzZXRJZAkBB3dyYXBFcnIBAg5pbnZhbGlkIHBlcmlvZAMJAAACBQZwZXJpb2QFBnBlcmlvZAQXcGVyaW9kU3RhcnRIZWlnaHRPcHRpb24JAJ8IAQkBFGtleVBlcmlvZFN0YXJ0SGVpZ2h0AgULYmFzZUFzc2V0SWQFBnBlcmlvZAQKY2hlY2tEZWxheQMJAAACBRdwZXJpb2RTdGFydEhlaWdodE9wdGlvbgUEdW5pdAUEdW5pdAQFZGVsYXkJAGUCBQZoZWlnaHQJAQV2YWx1ZQEFF3BlcmlvZFN0YXJ0SGVpZ2h0T3B0aW9uBAxibG9ja3NUb1dhaXQJAJcDAQkAzAgCAAAJAMwIAgkAZQIFCG1pbkRlbGF5BQVkZWxheQUDbmlsAwkAAAIFDGJsb2Nrc1RvV2FpdAAABQR1bml0CQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIhZmluYWxpemF0aW9uIHdpbGwgYmUgcG9zc2libGUgaW4gCQDMCAIJAKQDAQUMYmxvY2tzVG9XYWl0CQDMCAICByBibG9ja3MFA25pbAIAAwkAAAIFCmNoZWNrRGVsYXkFCmNoZWNrRGVsYXkEDSR0MDE5MTYxMTkzNzcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBC2dldFBvb2xJbmZvAQULYmFzZUFzc2V0SWQJAQd3cmFwRXJyAQINaW52YWxpZCBhc3NldAQLcG9vbEFkZHJlc3MIBQ0kdDAxOTE2MTE5Mzc3Al8xBAlscEFzc2V0SWQIBQ0kdDAxOTE2MTE5Mzc3Al8yBA1zdGFraW5nUmV3YXJkCQETdmFsdWVPckVycm9yTWVzc2FnZQIKAAFACQD8BwQFD3N0YWtpbmdDb250cmFjdAIHY2xhaW1XeAkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUJbHBBc3NldElkBQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAFBHVuaXQJAQd3cmFwRXJyAQIWaW52YWxpZCBjbGFpbVd4IHJlc3VsdAMJAAACBQ1zdGFraW5nUmV3YXJkBQ1zdGFraW5nUmV3YXJkBBB1c2VTdGFraW5nUmV3YXJkAwkAZgIFDXN0YWtpbmdSZXdhcmQAAAQIbG9ja1BhcnQJAGsDBQ1zdGFraW5nUmV3YXJkBQxsb2NrRnJhY3Rpb24FFmxvY2tGcmFjdGlvbk11bHRpcGxpZXIEC2NvbnZlcnRQYXJ0CQBlAgUNc3Rha2luZ1Jld2FyZAUIbG9ja1BhcnQEAXIJAPwHBAUQYm9vc3RpbmdDb250cmFjdAIXdXNlck1heER1cmF0aW9uUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAQEbG9jawQHJG1hdGNoMAUBcgMDAwkAAQIIBQckbWF0Y2gwAl8xAgZTdHJpbmcJAAECCAUHJG1hdGNoMAJfMgIDSW50BwkAAQIFByRtYXRjaDACDShTdHJpbmcsIEludCkHBAhmdW5jdGlvbggFByRtYXRjaDACXzEECGR1cmF0aW9uCAUHJG1hdGNoMAJfMgMJAGYCBQhsb2NrUGFydAAACQD8BwQFEGJvb3N0aW5nQ29udHJhY3QFCGZ1bmN0aW9uCQDMCAIFCGR1cmF0aW9uBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCXd4QXNzZXRJZAUIbG9ja1BhcnQFA25pbAUEdW5pdAkBCHRocm93RXJyAQITaW52YWxpZCBsb2NrIHBhcmFtcwMJAAACBQRsb2NrBQRsb2NrBA9jb252ZXJ0ZWRBbW91bnQECWluQXNzZXRJZAUJd3hBc3NldElkBBBtaW5pbXVtVG9SZWNlaXZlAAAEDW91dEFzc2V0SWRTdHIJAQ9hc3NldElkVG9TdHJpbmcBBQt1c2RuQXNzZXRJZAQNdGFyZ2V0QWRkcmVzcwIACQETdmFsdWVPckVycm9yTWVzc2FnZQIKAAFACQD8BwQFDHN3YXBDb250cmFjdAIEc3dhcAkAzAgCBRBtaW5pbXVtVG9SZWNlaXZlCQDMCAIFDW91dEFzc2V0SWRTdHIJAMwIAgUNdGFyZ2V0QWRkcmVzcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQlpbkFzc2V0SWQFC2NvbnZlcnRQYXJ0BQNuaWwDCQABAgUBQAIDSW50BQFABQR1bml0CQEHd3JhcEVycgECE2ludmFsaWQgc3dhcCByZXN1bHQDCQAAAgUPY29udmVydGVkQW1vdW50BQ9jb252ZXJ0ZWRBbW91bnQEDWxwQXNzZXRBbW91bnQEDG1pbk91dEFtb3VudAAABAlhdXRvU3Rha2UGCQETdmFsdWVPckVycm9yTWVzc2FnZQIKAAFACQD8BwQFC3Bvb2xBZGRyZXNzAgtwdXRPbmVUa25WMgkAzAgCBQxtaW5PdXRBbW91bnQJAMwIAgUJYXV0b1N0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3VzZG5Bc3NldElkBQ9jb252ZXJ0ZWRBbW91bnQFA25pbAMJAAECBQFAAgNJbnQFAUAFBHVuaXQJAQd3cmFwRXJyAQIaaW52YWxpZCBwdXRPbmVUa25WMiByZXN1bHQDCQAAAgUNbHBBc3NldEFtb3VudAUNbHBBc3NldEFtb3VudAUNbHBBc3NldEFtb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUEdW5pdAMJAAACBRB1c2VTdGFraW5nUmV3YXJkBRB1c2VTdGFraW5nUmV3YXJkBBlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0CQELdmFsdWVPckVsc2UCCQCfCAEJARxrZXlTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0AQULYmFzZUFzc2V0SWQAAAQKZ2V0QWN0aW9ucwMJAGYCBRlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0AAAEBXByaWNlCQEJY2FsY1ByaWNlAgUJbHBBc3NldElkBQxzaGFyZUFzc2V0SWQDCQAAAgUFcHJpY2UFBXByaWNlBA11bnN0YWtlQW1vdW50CQCgAwEJAL0CBAkAtgIBBRlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0BQVwcmljZQUNc2NhbGUxOEJpZ0ludAUFRkxPT1IED2Jhc2VBc3NldEFtb3VudAQKb3V0QXNzZXRJZAULYmFzZUFzc2V0SWQEDG1pbk91dEFtb3VudAAACQETdmFsdWVPckVycm9yTWVzc2FnZQIKAAFACQD8BwQFC3Bvb2xBZGRyZXNzAhV1bnN0YWtlQW5kR2V0T25lVGtuVjIJAMwIAgUNdW5zdGFrZUFtb3VudAkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUKb3V0QXNzZXRJZAkAzAgCBQxtaW5PdXRBbW91bnQFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAUEdW5pdAkBB3dyYXBFcnIBAiRpbnZhbGlkIHVuc3Rha2VBbmRHZXRPbmVUa25WMiByZXN1bHQDCQAAAgUPYmFzZUFzc2V0QW1vdW50BQ9iYXNlQXNzZXRBbW91bnQEFXNoYXJlQXNzZXRCdXJuQWN0aW9ucwkAzAgCCQEEQnVybgIFDHNoYXJlQXNzZXRJZAUZc2hhcmVBc3NldEFtb3VudFRvQ29udmVydAUDbmlsBAhwcmljZUdldAkAvQIECQC2AgEFD2Jhc2VBc3NldEFtb3VudAUNc2NhbGUxOEJpZ0ludAkAtgIBBRlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0BQVGTE9PUgQVcHJpY2VHZXRVcGRhdGVBY3Rpb25zCQDMCAIJAQtCaW5hcnlFbnRyeQIJARFrZXlQcmljZVBlcmlvZEdldAIFC2Jhc2VBc3NldElkBQZwZXJpb2QJAJ0DAQUIcHJpY2VHZXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleVByaWNlR2V0SGlzdG9yeQEFC2Jhc2VBc3NldElkCQCmAwEFCHByaWNlR2V0BQNuaWwJAM4IAgUVc2hhcmVBc3NldEJ1cm5BY3Rpb25zBRVwcmljZUdldFVwZGF0ZUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAQYYmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0CQELdmFsdWVPckVsc2UCCQCfCAEJARtrZXlCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQBBQtiYXNlQXNzZXRJZAAABApwdXRBY3Rpb25zAwkAZgIFGGJhc2VBc3NldEFtb3VudFRvQ29udmVydAAABA1scEFzc2V0QW1vdW50BAxtaW5PdXRBbW91bnQAAAQJYXV0b1N0YWtlBgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCgABQAkA/AcEBQtwb29sQWRkcmVzcwILcHV0T25lVGtuVjIJAMwIAgUMbWluT3V0QW1vdW50CQDMCAIFCWF1dG9TdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQtiYXNlQXNzZXRJZAUYYmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0BQNuaWwDCQABAgUBQAIDSW50BQFABQR1bml0CQEHd3JhcEVycgECGmludmFsaWQgcHV0T25lVGtuVjIgcmVzdWx0AwkAAAIFDWxwQXNzZXRBbW91bnQFDWxwQXNzZXRBbW91bnQEBXByaWNlCQEJY2FsY1ByaWNlAgUJbHBBc3NldElkBQxzaGFyZUFzc2V0SWQDCQAAAgUFcHJpY2UFBXByaWNlBBBzaGFyZUFzc2V0QW1vdW50CQCgAwEJAL0CBAkAtgIBBQ1scEFzc2V0QW1vdW50BQ1zY2FsZTE4QmlnSW50BQVwcmljZQUFRkxPT1IEDGlzUmVpc3N1YWJsZQYEGHNoYXJlQXNzZXRSZWlzc3VlQWN0aW9ucwkAzAgCCQEHUmVpc3N1ZQMFDHNoYXJlQXNzZXRJZAUQc2hhcmVBc3NldEFtb3VudAUMaXNSZWlzc3VhYmxlBQNuaWwECHByaWNlUHV0CQC8AgMJALYCAQUYYmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0BQ1zY2FsZTE4QmlnSW50CQC2AgEFEHNoYXJlQXNzZXRBbW91bnQEFXByaWNlUHV0VXBkYXRlQWN0aW9ucwkAzAgCCQELQmluYXJ5RW50cnkCCQERa2V5UHJpY2VQZXJpb2RQdXQCBQtiYXNlQXNzZXRJZAUGcGVyaW9kCQCdAwEFCHByaWNlUHV0CQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlQcmljZVB1dEhpc3RvcnkBBQtiYXNlQXNzZXRJZAkApgMBBQhwcmljZVB1dAUDbmlsCQDOCAIFGHNoYXJlQXNzZXRSZWlzc3VlQWN0aW9ucwUVcHJpY2VQdXRVcGRhdGVBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwECW5ld1BlcmlvZAkAZAIFBnBlcmlvZAABBAlsYXN0UHJpY2UJAQljYWxjUHJpY2UCBQlscEFzc2V0SWQFDHNoYXJlQXNzZXRJZAQHYWN0aW9ucwkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQlrZXlQZXJpb2QBBQtiYXNlQXNzZXRJZAUJbmV3UGVyaW9kCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5UGVyaW9kU3RhcnRIZWlnaHQCBQtiYXNlQXNzZXRJZAUJbmV3UGVyaW9kBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJARxrZXlTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0AQULYmFzZUFzc2V0SWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBG2tleUJhc2VBc3NldEFtb3VudFRvQ29udmVydAEFC2Jhc2VBc3NldElkAAAJAMwIAgkBC0JpbmFyeUVudHJ5AgkBDmtleVByaWNlUGVyaW9kAgULYmFzZUFzc2V0SWQFBnBlcmlvZAkAnQMBBQlsYXN0UHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVByaWNlSGlzdG9yeQEFC2Jhc2VBc3NldElkCQCmAwEFCWxhc3RQcmljZQUDbmlsBQpwdXRBY3Rpb25zBQpnZXRBY3Rpb25zCQCUCgIFB2FjdGlvbnMJAJ0DAQUJbGFzdFByaWNlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQPdGFyZ2V0UHVibGljS2V5BAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V5H51fFQ==", "chainId": 84, "height": 2400301, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7exsjLKnvz3qfjpTcdYXggQh48K885hb37rmxzTqsySk Next: 8eiEqTQeRiZvYGfAvy3xgZfWWzsvDfiU6dLUXYxoAjsh Diff:
OldNewDifferences
7171 func B () = makeString(["%s", "minDelay"], a)
7272
7373
74-func C (D) = makeString(["%s%s", p(D), "shareAssetId"], a)
74+func C () = makeString(["%s", "lockFraction"], a)
7575
7676
77-func E (F) = makeString(["%s%s", p(F), "baseAssetId"], a)
77+func D (E) = makeString(["%s%s", p(E), "shareAssetId"], a)
7878
7979
80-func G (D) = makeString(["%s%s", p(D), "period"], a)
80+func F (G) = makeString(["%s%s", p(G), "baseAssetId"], a)
8181
8282
83-func H (D,I) = makeString(["%s%s%d", p(D), "periodStartHeight", toString(I)], a)
83+func H (E) = makeString(["%s%s", p(E), "period"], a)
8484
8585
86-func J (D) = makeString(["%s%s", p(D), "baseAssetAmountToConvert"], a)
86+func I (E,J) = makeString(["%s%s%d", p(E), "periodStartHeight", toString(J)], a)
8787
8888
89-func K (D) = makeString(["%s%s", p(D), "shareAssetAmountToConvert"], a)
89+func K (E) = makeString(["%s%s", p(E), "baseAssetAmountToConvert"], a)
9090
9191
92-func L (D,M) = makeString(["%s%s%s", p(D), toString(M), "baseAssetAmountToConvert"], a)
92+func L (E) = makeString(["%s%s", p(E), "shareAssetAmountToConvert"], a)
9393
9494
95-func N (D,M) = makeString(["%s%s%s%s", p(D), toString(M), "baseAssetAmountToConvert", "period"], a)
95+func M (E,N) = makeString(["%s%s%s", p(E), toString(N), "baseAssetAmountToConvert"], a)
9696
9797
98-func O (D,M) = makeString(["%s%s%s", p(D), toString(M), "shareAssetAmountToConvert"], a)
98+func O (E,N) = makeString(["%s%s%s%s", p(E), toString(N), "baseAssetAmountToConvert", "period"], a)
9999
100100
101-func P (D,M) = makeString(["%s%s%s%s", p(D), toString(M), "shareAssetAmountToConvert", "period"], a)
101+func P (E,N) = makeString(["%s%s%s", p(E), toString(N), "shareAssetAmountToConvert"], a)
102102
103103
104-func Q (D,I) = makeString(["%s%s%d", p(D), "price", toString(I)], a)
104+func Q (E,N) = makeString(["%s%s%s%s", p(E), toString(N), "shareAssetAmountToConvert", "period"], a)
105105
106106
107-func R (D) = makeString(["%s%s%s%d%d", p(D), "price", "history", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
107+func R (E,J) = makeString(["%s%s%d", p(E), "price", toString(J)], a)
108108
109109
110-func S (D,I) = makeString(["%s%s%d%s", p(D), "price", toString(I), "put"], a)
110+func S (E) = makeString(["%s%s%s%d%d", p(E), "price", "history", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
111111
112112
113-func T (D) = makeString(["%s%s%s%s%d%d", p(D), "price", "history", "put", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
113+func T (E,J) = makeString(["%s%s%d%s", p(E), "price", toString(J), "put"], a)
114114
115115
116-func U (D,I) = makeString(["%s%s%d%s", p(D), "price", toString(I), "get"], a)
116+func U (E) = makeString(["%s%s%s%s%d%d", p(E), "price", "history", "put", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
117117
118118
119-func V (D) = makeString(["%s%s%s%s%d%d", p(D), "price", "history", "get", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
119+func V (E,J) = makeString(["%s%s%d%s", p(E), "price", toString(J), "get"], a)
120120
121121
122-func W (D,X,I,M,Y) = makeString(["%s%s%s%s", "history", X, toString(M), toBase58String(Y), toString(height)], a)
122+func W (E) = makeString(["%s%s%s%s%d%d", p(E), "price", "history", "get", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
123123
124124
125-func Z () = "%s__managerPublicKey"
125+func X (E,Y,J,N,Z) = makeString(["%s%s%s%s", "history", Y, toString(N), toBase58String(Z), toString(height)], a)
126126
127127
128-func aa () = "%s__pendingManagerPublicKey"
128+func aa () = "%s__managerPublicKey"
129129
130130
131-func ab () = {
132- let ac = getString(Z())
133- if ($isInstanceOf(ac, "String"))
131+func ab () = "%s__pendingManagerPublicKey"
132+
133+
134+func ac () = {
135+ let ad = getString(aa())
136+ if ($isInstanceOf(ad, "String"))
134137 then {
135- let ad = ac
136- fromBase58String(ad)
138+ let ae = ad
139+ fromBase58String(ae)
137140 }
138- else if ($isInstanceOf(ac, "Unit"))
141+ else if ($isInstanceOf(ad, "Unit"))
139142 then unit
140143 else throw("Match error")
141144 }
142145
143146
144-func ae () = {
145- let ac = getString(aa())
146- if ($isInstanceOf(ac, "String"))
147+func af () = {
148+ let ad = getString(ab())
149+ if ($isInstanceOf(ad, "String"))
147150 then {
148- let ad = ac
149- fromBase58String(ad)
151+ let ae = ad
152+ fromBase58String(ae)
150153 }
151- else if ($isInstanceOf(ac, "Unit"))
154+ else if ($isInstanceOf(ad, "Unit"))
152155 then unit
153156 else throw("Match error")
154157 }
155158
156159
157-let af = throw("Permission denied")
160+let ag = throw("Permission denied")
158161
159-func ag (ah) = if ((ah.caller == this))
162+func ah (ai) = if ((ai.caller == this))
160163 then true
161- else af
164+ else ag
162165
163166
164-func ai (ah) = {
165- let ac = ab()
166- if ($isInstanceOf(ac, "ByteVector"))
167+func aj (ai) = {
168+ let ad = ac()
169+ if ($isInstanceOf(ad, "ByteVector"))
167170 then {
168- let aj = ac
169- if ((ah.callerPublicKey == aj))
171+ let ak = ad
172+ if ((ai.callerPublicKey == ak))
170173 then true
171- else af
174+ else ag
172175 }
173- else if ($isInstanceOf(ac, "Unit"))
174- then ag(ah)
176+ else if ($isInstanceOf(ad, "Unit"))
177+ then ah(ai)
175178 else throw("Match error")
176179 }
177180
178181
179-let ak = valueOrElse(getBoolean(A()), false)
182+let al = valueOrElse(getBoolean(A()), false)
180183
181-func al (ah) = if (if (!(ak))
184+func am (ai) = if (if (!(al))
182185 then true
183- else ai(ah))
186+ else aj(ai))
184187 then true
185188 else throw("operation is disabled")
186189
187190
188-let am = addressFromStringValue(l(this, s()))
191+let an = addressFromStringValue(l(this, s()))
189192
190-let an = addressFromStringValue(l(this, t()))
193+let ao = addressFromStringValue(l(this, t()))
191194
192-let ao = addressFromStringValue(l(this, u()))
195+let ap = addressFromStringValue(l(this, u()))
193196
194-let ap = addressFromStringValue(l(this, v()))
197+let aq = addressFromStringValue(l(this, v()))
195198
196-let aq = addressFromStringValue(l(this, w()))
199+let ar = addressFromStringValue(l(this, w()))
197200
198-let ar = addressFromStringValue(l(this, x()))
201+let as = addressFromStringValue(l(this, x()))
199202
200-let as = n(l(this, y()))
203+let at = n(l(this, y()))
201204
202-let at = n(l(this, z()))
205+let au = n(l(this, z()))
203206
204-let au = 1440
207+let av = 1440
205208
206-let av = valueOrElse(getInteger(this, B()), au)
209+let aw = valueOrElse(getInteger(this, B()), av)
207210
208-func aw (ax) = {
209- let ay = p(ax)
210- let az = p(as)
211- let aA = {
212- let aB = invoke(am, "poolInfoREADONLY", [ay, az], nil)
213- if ($isInstanceOf(aB, "(Address, ByteVector)"))
214- then aB
211+let ax = 100000000
212+
213+let ay = fraction(1, ax, 2)
214+
215+let az = valueOrElse(getInteger(this, C()), ay)
216+
217+func aA (aB) = {
218+ let aC = p(aB)
219+ let aD = p(at)
220+ let aE = {
221+ let aF = invoke(an, "poolInfoREADONLY", [aC, aD], nil)
222+ if ($isInstanceOf(aF, "(Address, ByteVector)"))
223+ then aF
215224 else unit
216225 }
217- aA
226+ aE
218227 }
219228
220229
221-func aC (aD,F) = {
222- let aE = valueOrErrorMessage(assetInfo(F), "failed to get share asset info")
223- let aF = aE.quantity
224- let aG = q(valueOrErrorMessage({
225- let aB = invoke(ao, "stakedByUserREADONLY", [p(aD), toString(this)], nil)
226- if ($isInstanceOf(aB, "Int"))
227- then aB
230+func aG (aH,G) = {
231+ let aI = valueOrErrorMessage(assetInfo(G), "failed to get share asset info")
232+ let aJ = aI.quantity
233+ let aK = q(valueOrErrorMessage({
234+ let aF = invoke(ap, "stakedByUserREADONLY", [p(aH), toString(this)], nil)
235+ if ($isInstanceOf(aF, "Int"))
236+ then aF
228237 else unit
229238 }, f("invalid stakedByUserREADONLY result")))
230- let aH = if ((aF == 0))
239+ let aL = if ((aJ == 0))
231240 then e
232- else fraction(toBigInt(aG), e, toBigInt(aF), FLOOR)
233- aH
241+ else fraction(toBigInt(aK), e, toBigInt(aJ), FLOOR)
242+ aL
234243 }
235244
236245
237-@Callable(ah)
238-func setManager (aI) = {
239- let aJ = ai(ah)
240- if ((aJ == aJ))
246+@Callable(ai)
247+func setManager (aM) = {
248+ let aN = aj(ai)
249+ if ((aN == aN))
241250 then {
242- let aK = fromBase58String(aI)
243- if ((aK == aK))
244- then [StringEntry(aa(), aI)]
251+ let aO = fromBase58String(aM)
252+ if ((aO == aO))
253+ then [StringEntry(ab(), aM)]
245254 else throw("Strict value is not equal to itself.")
246255 }
247256 else throw("Strict value is not equal to itself.")
249258
250259
251260
252-@Callable(ah)
261+@Callable(ai)
253262 func confirmManager () = {
254- let aL = ae()
255- let aM = if (isDefined(aL))
263+ let aP = af()
264+ let aQ = if (isDefined(aP))
256265 then true
257266 else h("no pending manager")
258- if ((aM == aM))
267+ if ((aQ == aQ))
259268 then {
260- let aN = if ((ah.callerPublicKey == value(aL)))
269+ let aR = if ((ai.callerPublicKey == value(aP)))
261270 then true
262271 else h("you are not pending manager")
263- if ((aN == aN))
264- then [StringEntry(Z(), toBase58String(value(aL))), DeleteEntry(aa())]
272+ if ((aR == aR))
273+ then [StringEntry(aa(), toBase58String(value(aP))), DeleteEntry(ab())]
265274 else throw("Strict value is not equal to itself.")
266275 }
267276 else throw("Strict value is not equal to itself.")
269278
270279
271280
272-@Callable(ah)
273-func create (aO,aP,aQ,aR,aS) = {
274- let aT = "LP_STAKING_POOLS"
275- let D = n(aO)
276- let aU = [ai(ah), if (isDefined(aw(D)))
281+@Callable(ai)
282+func create (aS,aT,aU,aV,aW) = {
283+ let aX = "LP_STAKING_POOLS"
284+ let E = n(aS)
285+ let aY = [aj(ai), if (isDefined(aA(E)))
277286 then true
278287 else h("invalid base asset")]
279- if ((aU == aU))
288+ if ((aY == aY))
280289 then {
281- let aV = [IntegerEntry(G(D), 0)]
282- if ((aP == ""))
290+ let aZ = [IntegerEntry(H(E), 0)]
291+ if ((aT == ""))
283292 then {
284- let aW = 1
285- let aX = Issue(aQ, aR, aW, b, true)
286- let aY = calculateAssetId(aX)
287- let aZ = Burn(aY, aW)
288- let ba = toBase58String(aY)
289- let bb = invoke(ar, "createOrUpdate", [ba, aS, false], nil)
290- if ((bb == bb))
293+ let ba = 1
294+ let bb = Issue(aU, aV, ba, b, true)
295+ let bc = calculateAssetId(bb)
296+ let bd = Burn(bc, ba)
297+ let be = toBase58String(bc)
298+ let bf = invoke(as, "createOrUpdate", [be, aW, false], nil)
299+ if ((bf == bf))
291300 then {
292- let bc = invoke(ar, "addLabel", [ba, aT], nil)
293- if ((bc == bc))
294- then $Tuple2((aV ++ [aX, aZ, StringEntry(C(D), ba), StringEntry(E(aY), aO)]), ba)
301+ let bg = invoke(as, "addLabel", [be, aX], nil)
302+ if ((bg == bg))
303+ then $Tuple2((aZ ++ [bb, bd, StringEntry(D(E), be), StringEntry(F(bc), aS)]), be)
295304 else throw("Strict value is not equal to itself.")
296305 }
297306 else throw("Strict value is not equal to itself.")
298307 }
299308 else {
300- let F = fromBase58String(aP)
301- let aE = valueOrErrorMessage(assetInfo(F), f("invalid share asset id"))
302- let bd = if ((aE.issuer == an))
309+ let G = fromBase58String(aT)
310+ let aI = valueOrErrorMessage(assetInfo(G), f("invalid share asset id"))
311+ let bh = if ((aI.issuer == ao))
303312 then true
304313 else h("invalid share asset id issuer")
305- if ((bd == bd))
306- then $Tuple2((aV ++ [StringEntry(C(D), aP), StringEntry(C(F), aO)]), aP)
314+ if ((bh == bh))
315+ then $Tuple2((aZ ++ [StringEntry(D(E), aT), StringEntry(D(G), aS)]), aT)
307316 else throw("Strict value is not equal to itself.")
308317 }
309318 }
312321
313322
314323
315-@Callable(ah)
324+@Callable(ai)
316325 func put () = {
317- let be = if ((size(ah.payments) == 1))
318- then ah.payments[0]
326+ let bi = if ((size(ai.payments) == 1))
327+ then ai.payments[0]
319328 else h("exactly 1 payment is expected")
320- let D = be.assetId
321- let M = ah.caller
322- let aU = [al(ah), if (isDefined(getString(C(D))))
329+ let E = bi.assetId
330+ let N = ai.caller
331+ let aY = [am(ai), if (isDefined(getString(D(E))))
323332 then true
324333 else h("invalid asset")]
325- if ((aU == aU))
334+ if ((aY == aY))
326335 then {
327- let bf = valueOrErrorMessage(aw(D), f("invalid asset"))
328- let bg = bf._1
329- let aD = bf._2
330- let I = value(getInteger(G(D)))
331- let bh = getInteger(N(D, M))
332- let bi = if ((bh == unit))
336+ let bj = valueOrErrorMessage(aA(E), f("invalid asset"))
337+ let bk = bj._1
338+ let aH = bj._2
339+ let J = value(getInteger(H(E)))
340+ let bl = getInteger(O(E, N))
341+ let bm = if ((bl == unit))
333342 then unit
334343 else {
335- let bj = value(bh)
336- if ((bj == I))
344+ let bn = value(bl)
345+ if ((bn == J))
337346 then unit
338- else invoke(this, "claimShareAsset", [p(D), toString(M)], nil)
347+ else invoke(this, "claimShareAsset", [p(E), toString(N)], nil)
339348 }
340- if ((bi == bi))
349+ if ((bm == bm))
341350 then {
342- let bk = valueOrElse(getInteger(J(D)), 0)
343- let bl = valueOrElse(getInteger(L(D, M)), 0)
344- $Tuple2([IntegerEntry(J(D), (bk + be.amount)), IntegerEntry(L(D, M), (bl + be.amount)), IntegerEntry(N(D, M), I), IntegerEntry(W(D, "put", I, M, ah.transactionId), be.amount)], unit)
351+ let bo = valueOrElse(getInteger(K(E)), 0)
352+ let bp = valueOrElse(getInteger(M(E, N)), 0)
353+ $Tuple2([IntegerEntry(K(E), (bo + bi.amount)), IntegerEntry(M(E, N), (bp + bi.amount)), IntegerEntry(O(E, N), J), IntegerEntry(X(E, "put", J, N, ai.transactionId), bi.amount)], unit)
345354 }
346355 else throw("Strict value is not equal to itself.")
347356 }
350359
351360
352361
353-@Callable(ah)
354-func claimShareAsset (aO,bm) = {
355- let aU = [al(ah)]
356- if ((aU == aU))
362+@Callable(ai)
363+func claimShareAsset (aS,bq) = {
364+ let aY = [am(ai)]
365+ if ((aY == aY))
357366 then {
358- let M = if ((bm == ""))
359- then ah.caller
367+ let N = if ((bq == ""))
368+ then ai.caller
360369 else {
361- let aJ = ag(ah)
362- if ((aJ == aJ))
363- then valueOrErrorMessage(addressFromString(bm), f("invalid user address"))
370+ let aN = ah(ai)
371+ if ((aN == aN))
372+ then valueOrErrorMessage(addressFromString(bq), f("invalid user address"))
364373 else throw("Strict value is not equal to itself.")
365374 }
366- if ((M == M))
375+ if ((N == N))
367376 then {
368- let D = n(aO)
369- let F = value(n(valueOrErrorMessage(getString(C(D)), f("invalid base asset id"))))
370- if ((F == F))
377+ let E = n(aS)
378+ let G = value(n(valueOrErrorMessage(getString(D(E)), f("invalid base asset id"))))
379+ if ((G == G))
371380 then {
372- let I = valueOrErrorMessage(getInteger(G(D)), f("invalid period"))
373- if ((I == I))
381+ let J = valueOrErrorMessage(getInteger(H(E)), f("invalid period"))
382+ if ((J == J))
374383 then {
375- let bl = valueOrElse(getInteger(L(D, M)), 0)
376- let bn = if ((bl > 0))
384+ let bp = valueOrElse(getInteger(M(E, N)), 0)
385+ let br = if ((bp > 0))
377386 then true
378387 else h("nothing to claim")
379- if ((bn == bn))
388+ if ((br == br))
380389 then {
381- let bj = valueOrErrorMessage(getInteger(N(D, M)), f("failed to get period"))
382- let bo = if ((I > bj))
390+ let bn = valueOrErrorMessage(getInteger(O(E, N)), f("failed to get period"))
391+ let bs = if ((J > bn))
383392 then true
384393 else h("invalid period")
385- if ((bo == bo))
394+ if ((bs == bs))
386395 then {
387- let aH = toBigInt(valueOrErrorMessage(getBinary(S(D, bj)), f("failed to get price")))
388- let bp = toInt(fraction(toBigInt(bl), e, aH))
389- $Tuple2([IntegerEntry(L(D, M), 0), ScriptTransfer(M, bp, F), IntegerEntry(W(D, "claimShareAsset", I, M, ah.transactionId), bp)], unit)
396+ let aL = toBigInt(valueOrErrorMessage(getBinary(T(E, bn)), f("failed to get price")))
397+ let bt = toInt(fraction(toBigInt(bp), e, aL))
398+ $Tuple2([IntegerEntry(M(E, N), 0), ScriptTransfer(N, bt, G), IntegerEntry(X(E, "claimShareAsset", J, N, ai.transactionId), bt)], unit)
390399 }
391400 else throw("Strict value is not equal to itself.")
392401 }
403412
404413
405414
406-@Callable(ah)
415+@Callable(ai)
407416 func get () = {
408- let aU = [al(ah)]
409- if ((aU == aU))
417+ let aY = [am(ai)]
418+ if ((aY == aY))
410419 then {
411- let be = if ((size(ah.payments) == 1))
412- then ah.payments[0]
420+ let bi = if ((size(ai.payments) == 1))
421+ then ai.payments[0]
413422 else h("exactly 1 payment is expected")
414- let F = be.assetId
415- let D = value(n(valueOrErrorMessage(getString(E(F)), f("invalid share asset id"))))
416- if ((D == D))
423+ let G = bi.assetId
424+ let E = value(n(valueOrErrorMessage(getString(F(G)), f("invalid share asset id"))))
425+ if ((E == E))
417426 then {
418- let M = ah.caller
419- let bq = valueOrErrorMessage(aw(D), f("invalid asset"))
420- let bg = bq._1
421- let aD = bq._2
422- let I = value(getInteger(G(D)))
423- let br = getInteger(P(D, M))
424- let bs = if ((br == unit))
427+ let N = ai.caller
428+ let bu = valueOrErrorMessage(aA(E), f("invalid asset"))
429+ let bk = bu._1
430+ let aH = bu._2
431+ let J = value(getInteger(H(E)))
432+ let bv = getInteger(Q(E, N))
433+ let bw = if ((bv == unit))
425434 then unit
426435 else {
427- let bt = value(br)
428- if ((bt == I))
436+ let bx = value(bv)
437+ if ((bx == J))
429438 then unit
430- else invoke(this, "claimBaseAsset", [M], nil)
439+ else invoke(this, "claimBaseAsset", [N], nil)
431440 }
432- if ((bs == bs))
441+ if ((bw == bw))
433442 then {
434- let bu = valueOrElse(getInteger(K(D)), 0)
435- let bv = valueOrElse(getInteger(O(D, M)), 0)
436- $Tuple2([IntegerEntry(K(D), (bu + be.amount)), IntegerEntry(O(D, M), (bv + be.amount)), IntegerEntry(P(D, M), I), IntegerEntry(W(D, "get", I, M, ah.transactionId), be.amount)], unit)
443+ let by = valueOrElse(getInteger(L(E)), 0)
444+ let bz = valueOrElse(getInteger(P(E, N)), 0)
445+ $Tuple2([IntegerEntry(L(E), (by + bi.amount)), IntegerEntry(P(E, N), (bz + bi.amount)), IntegerEntry(Q(E, N), J), IntegerEntry(X(E, "get", J, N, ai.transactionId), bi.amount)], unit)
437446 }
438447 else throw("Strict value is not equal to itself.")
439448 }
444453
445454
446455
447-@Callable(ah)
448-func claimBaseAsset (aO,bm) = {
449- let aU = [al(ah)]
450- if ((aU == aU))
456+@Callable(ai)
457+func claimBaseAsset (aS,bq) = {
458+ let aY = [am(ai)]
459+ if ((aY == aY))
451460 then {
452- let M = if ((bm == ""))
453- then ah.caller
461+ let N = if ((bq == ""))
462+ then ai.caller
454463 else {
455- let aJ = ag(ah)
456- if ((aJ == aJ))
457- then valueOrErrorMessage(addressFromString(bm), f("invalid user address"))
464+ let aN = ah(ai)
465+ if ((aN == aN))
466+ then valueOrErrorMessage(addressFromString(bq), f("invalid user address"))
458467 else throw("Strict value is not equal to itself.")
459468 }
460- if ((M == M))
469+ if ((N == N))
461470 then {
462- let D = n(aO)
463- let F = value(n(valueOrErrorMessage(getString(C(D)), f("invalid base asset id"))))
464- if ((F == F))
471+ let E = n(aS)
472+ let G = value(n(valueOrErrorMessage(getString(D(E)), f("invalid base asset id"))))
473+ if ((G == G))
465474 then {
466- let I = valueOrErrorMessage(getInteger(G(D)), f("invalid period"))
467- if ((I == I))
475+ let J = valueOrErrorMessage(getInteger(H(E)), f("invalid period"))
476+ if ((J == J))
468477 then {
469- let bv = valueOrElse(getInteger(O(D, M)), 0)
470- let bn = if ((bv > 0))
478+ let bz = valueOrElse(getInteger(P(E, N)), 0)
479+ let br = if ((bz > 0))
471480 then true
472481 else h("nothing to claim")
473- if ((bn == bn))
482+ if ((br == br))
474483 then {
475- let bt = valueOrErrorMessage(getInteger(P(D, M)), f("failed to get period"))
476- let bo = if ((I > bt))
484+ let bx = valueOrErrorMessage(getInteger(Q(E, N)), f("failed to get period"))
485+ let bs = if ((J > bx))
477486 then true
478487 else h("invalid period")
479- if ((bo == bo))
488+ if ((bs == bs))
480489 then {
481- let aH = toBigInt(valueOrErrorMessage(getBinary(U(D, bt)), f("failed to get price")))
482- let bw = toInt(fraction(toBigInt(bv), aH, e))
483- $Tuple2([IntegerEntry(O(D, M), 0), ScriptTransfer(M, bw, D), IntegerEntry(W(D, "claimBaseAsset", I, M, ah.transactionId), bw)], unit)
490+ let aL = toBigInt(valueOrErrorMessage(getBinary(V(E, bx)), f("failed to get price")))
491+ let bA = toInt(fraction(toBigInt(bz), aL, e))
492+ $Tuple2([IntegerEntry(P(E, N), 0), ScriptTransfer(N, bA, E), IntegerEntry(X(E, "claimBaseAsset", J, N, ai.transactionId), bA)], unit)
484493 }
485494 else throw("Strict value is not equal to itself.")
486495 }
497506
498507
499508
500-@Callable(ah)
501-func finalize (aO) = {
502- let aU = [al(ah)]
503- if ((aU == aU))
509+@Callable(ai)
510+func finalize (aS) = {
511+ let aY = [am(ai)]
512+ if ((aY == aY))
504513 then {
505- let D = n(aO)
506- let F = value(n(valueOrErrorMessage(getString(C(D)), f("invalid base asset id"))))
507- if ((F == F))
514+ let E = n(aS)
515+ let G = value(n(valueOrErrorMessage(getString(D(E)), f("invalid base asset id"))))
516+ if ((G == G))
508517 then {
509- let I = valueOrErrorMessage(getInteger(G(D)), f("invalid period"))
510- if ((I == I))
518+ let J = valueOrErrorMessage(getInteger(H(E)), f("invalid period"))
519+ if ((J == J))
511520 then {
512- let bx = getInteger(H(D, I))
513- let by = if ((bx == unit))
521+ let bB = getInteger(I(E, J))
522+ let bC = if ((bB == unit))
514523 then unit
515524 else {
516- let bz = (height - value(bx))
517- let bA = min([0, (av - bz)])
518- if ((bA == 0))
525+ let bD = (height - value(bB))
526+ let bE = min([0, (aw - bD)])
527+ if ((bE == 0))
519528 then unit
520- else h(makeString(["finalization will be possible in ", toString(bA), " blocks"], ""))
529+ else h(makeString(["finalization will be possible in ", toString(bE), " blocks"], ""))
521530 }
522- if ((by == by))
531+ if ((bC == bC))
523532 then {
524- let bB = valueOrErrorMessage(aw(D), f("invalid asset"))
525- let bg = bB._1
526- let aD = bB._2
527- let bC = valueOrErrorMessage({
528- let aB = invoke(ao, "claimWx", [p(aD)], nil)
529- if ($isInstanceOf(aB, "Int"))
530- then aB
533+ let bF = valueOrErrorMessage(aA(E), f("invalid asset"))
534+ let bk = bF._1
535+ let aH = bF._2
536+ let bG = valueOrErrorMessage({
537+ let aF = invoke(ap, "claimWx", [p(aH)], nil)
538+ if ($isInstanceOf(aF, "Int"))
539+ then aF
531540 else unit
532541 }, f("invalid claimWx result"))
533- if ((bC == bC))
542+ if ((bG == bG))
534543 then {
535- let bD = if ((bC > 0))
544+ let bH = if ((bG > 0))
536545 then {
537- let bE = (bC / 2)
538- let bF = (bC - bE)
539- let bG = invoke(ap, "userMaxDurationREADONLY", [toString(this)], nil)
540- let bH = {
541- let ac = bG
542- if (if (if ($isInstanceOf(ac._1, "String"))
543- then $isInstanceOf(ac._2, "Int")
546+ let bI = fraction(bG, az, ax)
547+ let bJ = (bG - bI)
548+ let bK = invoke(aq, "userMaxDurationREADONLY", [toString(this)], nil)
549+ let bL = {
550+ let ad = bK
551+ if (if (if ($isInstanceOf(ad._1, "String"))
552+ then $isInstanceOf(ad._2, "Int")
544553 else false)
545- then $isInstanceOf(ac, "(String, Int)")
554+ then $isInstanceOf(ad, "(String, Int)")
546555 else false)
547556 then {
548- let bI = ac._1
549- let bJ = ac._2
550- if ((bE > 0))
551- then invoke(ap, bI, [bJ], [AttachedPayment(at, bE)])
557+ let bM = ad._1
558+ let bN = ad._2
559+ if ((bI > 0))
560+ then invoke(aq, bM, [bN], [AttachedPayment(au, bI)])
552561 else unit
553562 }
554563 else h("invalid lock params")
555564 }
556- if ((bH == bH))
565+ if ((bL == bL))
557566 then {
558- let bK = {
559- let bL = at
560- let bM = 0
561- let bN = p(as)
562- let bO = ""
567+ let bO = {
568+ let bP = au
569+ let bQ = 0
570+ let bR = p(at)
571+ let bS = ""
563572 valueOrErrorMessage({
564- let aB = invoke(aq, "swap", [bM, bN, bO], [AttachedPayment(bL, bF)])
565- if ($isInstanceOf(aB, "Int"))
566- then aB
573+ let aF = invoke(ar, "swap", [bQ, bR, bS], [AttachedPayment(bP, bJ)])
574+ if ($isInstanceOf(aF, "Int"))
575+ then aF
567576 else unit
568577 }, f("invalid swap result"))
569578 }
570- if ((bK == bK))
579+ if ((bO == bO))
571580 then {
572- let bP = {
573- let bQ = 0
574- let bR = true
581+ let bT = {
582+ let bU = 0
583+ let bV = true
575584 valueOrErrorMessage({
576- let aB = invoke(bg, "putOneTknV2", [bQ, bR], [AttachedPayment(as, bK)])
577- if ($isInstanceOf(aB, "Int"))
578- then aB
585+ let aF = invoke(bk, "putOneTknV2", [bU, bV], [AttachedPayment(at, bO)])
586+ if ($isInstanceOf(aF, "Int"))
587+ then aF
579588 else unit
580589 }, f("invalid putOneTknV2 result"))
581590 }
582- if ((bP == bP))
583- then bP
591+ if ((bT == bT))
592+ then bT
584593 else throw("Strict value is not equal to itself.")
585594 }
586595 else throw("Strict value is not equal to itself.")
588597 else throw("Strict value is not equal to itself.")
589598 }
590599 else unit
591- if ((bD == bD))
600+ if ((bH == bH))
592601 then {
593- let bu = valueOrElse(getInteger(K(D)), 0)
594- let bS = if ((bu > 0))
602+ let by = valueOrElse(getInteger(L(E)), 0)
603+ let bW = if ((by > 0))
595604 then {
596- let aH = aC(aD, F)
597- if ((aH == aH))
605+ let aL = aG(aH, G)
606+ if ((aL == aL))
598607 then {
599- let bT = toInt(fraction(toBigInt(bu), aH, e, FLOOR))
600- let bw = {
601- let bU = D
602- let bQ = 0
608+ let bX = toInt(fraction(toBigInt(by), aL, e, FLOOR))
609+ let bA = {
610+ let bY = E
611+ let bU = 0
603612 valueOrErrorMessage({
604- let aB = invoke(bg, "unstakeAndGetOneTknV2", [bT, p(bU), bQ], nil)
605- if ($isInstanceOf(aB, "Int"))
606- then aB
613+ let aF = invoke(bk, "unstakeAndGetOneTknV2", [bX, p(bY), bU], nil)
614+ if ($isInstanceOf(aF, "Int"))
615+ then aF
607616 else unit
608617 }, f("invalid unstakeAndGetOneTknV2 result"))
609618 }
610- if ((bw == bw))
619+ if ((bA == bA))
611620 then {
612- let bV = [Burn(F, bu)]
613- let bW = fraction(toBigInt(bw), e, toBigInt(bu), FLOOR)
614- let bX = [BinaryEntry(U(D, I), toBytes(bW)), StringEntry(V(D), toString(bW))]
615- (bV ++ bX)
621+ let bZ = [Burn(G, by)]
622+ let ca = fraction(toBigInt(bA), e, toBigInt(by), FLOOR)
623+ let cb = [BinaryEntry(V(E, J), toBytes(ca)), StringEntry(W(E), toString(ca))]
624+ (bZ ++ cb)
616625 }
617626 else throw("Strict value is not equal to itself.")
618627 }
619628 else throw("Strict value is not equal to itself.")
620629 }
621630 else nil
622- let bk = valueOrElse(getInteger(J(D)), 0)
623- let bY = if ((bk > 0))
631+ let bo = valueOrElse(getInteger(K(E)), 0)
632+ let cc = if ((bo > 0))
624633 then {
625- let bP = {
626- let bQ = 0
627- let bR = true
634+ let bT = {
635+ let bU = 0
636+ let bV = true
628637 valueOrErrorMessage({
629- let aB = invoke(bg, "putOneTknV2", [bQ, bR], [AttachedPayment(D, bk)])
630- if ($isInstanceOf(aB, "Int"))
631- then aB
638+ let aF = invoke(bk, "putOneTknV2", [bU, bV], [AttachedPayment(E, bo)])
639+ if ($isInstanceOf(aF, "Int"))
640+ then aF
632641 else unit
633642 }, f("invalid putOneTknV2 result"))
634643 }
635- if ((bP == bP))
644+ if ((bT == bT))
636645 then {
637- let aH = aC(aD, F)
638- if ((aH == aH))
646+ let aL = aG(aH, G)
647+ if ((aL == aL))
639648 then {
640- let bp = toInt(fraction(toBigInt(bP), e, aH, FLOOR))
641- let bZ = true
642- let ca = [Reissue(F, bp, bZ)]
643- let cb = fraction(toBigInt(bk), e, toBigInt(bp))
644- let cc = [BinaryEntry(S(D, I), toBytes(cb)), StringEntry(T(D), toString(cb))]
645- (ca ++ cc)
649+ let bt = toInt(fraction(toBigInt(bT), e, aL, FLOOR))
650+ let cd = true
651+ let ce = [Reissue(G, bt, cd)]
652+ let cf = fraction(toBigInt(bo), e, toBigInt(bt))
653+ let cg = [BinaryEntry(T(E, J), toBytes(cf)), StringEntry(U(E), toString(cf))]
654+ (ce ++ cg)
646655 }
647656 else throw("Strict value is not equal to itself.")
648657 }
649658 else throw("Strict value is not equal to itself.")
650659 }
651660 else nil
652- let cd = (I + 1)
653- let ce = aC(aD, F)
654- let cf = (([IntegerEntry(G(D), cd), IntegerEntry(H(D, cd), height), IntegerEntry(K(D), 0), IntegerEntry(J(D), 0), BinaryEntry(Q(D, I), toBytes(ce)), StringEntry(R(D), toString(ce))] ++ bY) ++ bS)
655- $Tuple2(cf, toBytes(ce))
661+ let ch = (J + 1)
662+ let ci = aG(aH, G)
663+ let cj = (([IntegerEntry(H(E), ch), IntegerEntry(I(E, ch), height), IntegerEntry(L(E), 0), IntegerEntry(K(E), 0), BinaryEntry(R(E, J), toBytes(ci)), StringEntry(S(E), toString(ci))] ++ cc) ++ bW)
664+ $Tuple2(cj, toBytes(ci))
656665 }
657666 else throw("Strict value is not equal to itself.")
658667 }
668677 }
669678
670679
671-@Verifier(cg)
672-func ch () = {
673- let ci = {
674- let ac = ab()
675- if ($isInstanceOf(ac, "ByteVector"))
680+@Verifier(ck)
681+func cl () = {
682+ let cm = {
683+ let ad = ac()
684+ if ($isInstanceOf(ad, "ByteVector"))
676685 then {
677- let aj = ac
678- aj
686+ let ak = ad
687+ ak
679688 }
680- else if ($isInstanceOf(ac, "Unit"))
681- then cg.senderPublicKey
689+ else if ($isInstanceOf(ad, "Unit"))
690+ then ck.senderPublicKey
682691 else throw("Match error")
683692 }
684- sigVerify(cg.bodyBytes, cg.proofs[0], ci)
693+ sigVerify(ck.bodyBytes, ck.proofs[0], cm)
685694 }
686695
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 8
77
88 let c = "WAVES"
99
1010 let d = 1000000000000000000
1111
1212 let e = toBigInt(d)
1313
1414 func f (g) = makeString(["lp_staking_pools.ride:", g], " ")
1515
1616
1717 func h (g) = throw(f(g))
1818
1919
2020 func i (j,k) = f(makeString(["mandatory ", toString(j), ".", k, " is not defined"], ""))
2121
2222
2323 func l (j,k) = valueOrErrorMessage(getString(j, k), i(j, k))
2424
2525
2626 func m (j,k) = valueOrErrorMessage(getInteger(j, k), i(j, k))
2727
2828
2929 func n (o) = if ((o == c))
3030 then unit
3131 else fromBase58String(o)
3232
3333
3434 func p (o) = if ((o == unit))
3535 then c
3636 else toBase58String(value(o))
3737
3838
3939 func q (r) = if ((r >= 0))
4040 then r
4141 else h("value should be positive")
4242
4343
4444 func s () = makeString(["%s", "factoryContract"], a)
4545
4646
4747 func t () = makeString(["%s", "lpStakingContract"], a)
4848
4949
5050 func u () = makeString(["%s", "stakingContract"], a)
5151
5252
5353 func v () = makeString(["%s", "boostingContract"], a)
5454
5555
5656 func w () = makeString(["%s", "swapContract"], a)
5757
5858
5959 func x () = makeString(["%s", "assetsStoreContract"], a)
6060
6161
6262 func y () = makeString(["%s", "usdnAssetId"], a)
6363
6464
6565 func z () = makeString(["%s", "wxAssetId"], a)
6666
6767
6868 func A () = makeString(["%s", "shutdown"], a)
6969
7070
7171 func B () = makeString(["%s", "minDelay"], a)
7272
7373
74-func C (D) = makeString(["%s%s", p(D), "shareAssetId"], a)
74+func C () = makeString(["%s", "lockFraction"], a)
7575
7676
77-func E (F) = makeString(["%s%s", p(F), "baseAssetId"], a)
77+func D (E) = makeString(["%s%s", p(E), "shareAssetId"], a)
7878
7979
80-func G (D) = makeString(["%s%s", p(D), "period"], a)
80+func F (G) = makeString(["%s%s", p(G), "baseAssetId"], a)
8181
8282
83-func H (D,I) = makeString(["%s%s%d", p(D), "periodStartHeight", toString(I)], a)
83+func H (E) = makeString(["%s%s", p(E), "period"], a)
8484
8585
86-func J (D) = makeString(["%s%s", p(D), "baseAssetAmountToConvert"], a)
86+func I (E,J) = makeString(["%s%s%d", p(E), "periodStartHeight", toString(J)], a)
8787
8888
89-func K (D) = makeString(["%s%s", p(D), "shareAssetAmountToConvert"], a)
89+func K (E) = makeString(["%s%s", p(E), "baseAssetAmountToConvert"], a)
9090
9191
92-func L (D,M) = makeString(["%s%s%s", p(D), toString(M), "baseAssetAmountToConvert"], a)
92+func L (E) = makeString(["%s%s", p(E), "shareAssetAmountToConvert"], a)
9393
9494
95-func N (D,M) = makeString(["%s%s%s%s", p(D), toString(M), "baseAssetAmountToConvert", "period"], a)
95+func M (E,N) = makeString(["%s%s%s", p(E), toString(N), "baseAssetAmountToConvert"], a)
9696
9797
98-func O (D,M) = makeString(["%s%s%s", p(D), toString(M), "shareAssetAmountToConvert"], a)
98+func O (E,N) = makeString(["%s%s%s%s", p(E), toString(N), "baseAssetAmountToConvert", "period"], a)
9999
100100
101-func P (D,M) = makeString(["%s%s%s%s", p(D), toString(M), "shareAssetAmountToConvert", "period"], a)
101+func P (E,N) = makeString(["%s%s%s", p(E), toString(N), "shareAssetAmountToConvert"], a)
102102
103103
104-func Q (D,I) = makeString(["%s%s%d", p(D), "price", toString(I)], a)
104+func Q (E,N) = makeString(["%s%s%s%s", p(E), toString(N), "shareAssetAmountToConvert", "period"], a)
105105
106106
107-func R (D) = makeString(["%s%s%s%d%d", p(D), "price", "history", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
107+func R (E,J) = makeString(["%s%s%d", p(E), "price", toString(J)], a)
108108
109109
110-func S (D,I) = makeString(["%s%s%d%s", p(D), "price", toString(I), "put"], a)
110+func S (E) = makeString(["%s%s%s%d%d", p(E), "price", "history", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
111111
112112
113-func T (D) = makeString(["%s%s%s%s%d%d", p(D), "price", "history", "put", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
113+func T (E,J) = makeString(["%s%s%d%s", p(E), "price", toString(J), "put"], a)
114114
115115
116-func U (D,I) = makeString(["%s%s%d%s", p(D), "price", toString(I), "get"], a)
116+func U (E) = makeString(["%s%s%s%s%d%d", p(E), "price", "history", "put", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
117117
118118
119-func V (D) = makeString(["%s%s%s%s%d%d", p(D), "price", "history", "get", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
119+func V (E,J) = makeString(["%s%s%d%s", p(E), "price", toString(J), "get"], a)
120120
121121
122-func W (D,X,I,M,Y) = makeString(["%s%s%s%s", "history", X, toString(M), toBase58String(Y), toString(height)], a)
122+func W (E) = makeString(["%s%s%s%s%d%d", p(E), "price", "history", "get", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
123123
124124
125-func Z () = "%s__managerPublicKey"
125+func X (E,Y,J,N,Z) = makeString(["%s%s%s%s", "history", Y, toString(N), toBase58String(Z), toString(height)], a)
126126
127127
128-func aa () = "%s__pendingManagerPublicKey"
128+func aa () = "%s__managerPublicKey"
129129
130130
131-func ab () = {
132- let ac = getString(Z())
133- if ($isInstanceOf(ac, "String"))
131+func ab () = "%s__pendingManagerPublicKey"
132+
133+
134+func ac () = {
135+ let ad = getString(aa())
136+ if ($isInstanceOf(ad, "String"))
134137 then {
135- let ad = ac
136- fromBase58String(ad)
138+ let ae = ad
139+ fromBase58String(ae)
137140 }
138- else if ($isInstanceOf(ac, "Unit"))
141+ else if ($isInstanceOf(ad, "Unit"))
139142 then unit
140143 else throw("Match error")
141144 }
142145
143146
144-func ae () = {
145- let ac = getString(aa())
146- if ($isInstanceOf(ac, "String"))
147+func af () = {
148+ let ad = getString(ab())
149+ if ($isInstanceOf(ad, "String"))
147150 then {
148- let ad = ac
149- fromBase58String(ad)
151+ let ae = ad
152+ fromBase58String(ae)
150153 }
151- else if ($isInstanceOf(ac, "Unit"))
154+ else if ($isInstanceOf(ad, "Unit"))
152155 then unit
153156 else throw("Match error")
154157 }
155158
156159
157-let af = throw("Permission denied")
160+let ag = throw("Permission denied")
158161
159-func ag (ah) = if ((ah.caller == this))
162+func ah (ai) = if ((ai.caller == this))
160163 then true
161- else af
164+ else ag
162165
163166
164-func ai (ah) = {
165- let ac = ab()
166- if ($isInstanceOf(ac, "ByteVector"))
167+func aj (ai) = {
168+ let ad = ac()
169+ if ($isInstanceOf(ad, "ByteVector"))
167170 then {
168- let aj = ac
169- if ((ah.callerPublicKey == aj))
171+ let ak = ad
172+ if ((ai.callerPublicKey == ak))
170173 then true
171- else af
174+ else ag
172175 }
173- else if ($isInstanceOf(ac, "Unit"))
174- then ag(ah)
176+ else if ($isInstanceOf(ad, "Unit"))
177+ then ah(ai)
175178 else throw("Match error")
176179 }
177180
178181
179-let ak = valueOrElse(getBoolean(A()), false)
182+let al = valueOrElse(getBoolean(A()), false)
180183
181-func al (ah) = if (if (!(ak))
184+func am (ai) = if (if (!(al))
182185 then true
183- else ai(ah))
186+ else aj(ai))
184187 then true
185188 else throw("operation is disabled")
186189
187190
188-let am = addressFromStringValue(l(this, s()))
191+let an = addressFromStringValue(l(this, s()))
189192
190-let an = addressFromStringValue(l(this, t()))
193+let ao = addressFromStringValue(l(this, t()))
191194
192-let ao = addressFromStringValue(l(this, u()))
195+let ap = addressFromStringValue(l(this, u()))
193196
194-let ap = addressFromStringValue(l(this, v()))
197+let aq = addressFromStringValue(l(this, v()))
195198
196-let aq = addressFromStringValue(l(this, w()))
199+let ar = addressFromStringValue(l(this, w()))
197200
198-let ar = addressFromStringValue(l(this, x()))
201+let as = addressFromStringValue(l(this, x()))
199202
200-let as = n(l(this, y()))
203+let at = n(l(this, y()))
201204
202-let at = n(l(this, z()))
205+let au = n(l(this, z()))
203206
204-let au = 1440
207+let av = 1440
205208
206-let av = valueOrElse(getInteger(this, B()), au)
209+let aw = valueOrElse(getInteger(this, B()), av)
207210
208-func aw (ax) = {
209- let ay = p(ax)
210- let az = p(as)
211- let aA = {
212- let aB = invoke(am, "poolInfoREADONLY", [ay, az], nil)
213- if ($isInstanceOf(aB, "(Address, ByteVector)"))
214- then aB
211+let ax = 100000000
212+
213+let ay = fraction(1, ax, 2)
214+
215+let az = valueOrElse(getInteger(this, C()), ay)
216+
217+func aA (aB) = {
218+ let aC = p(aB)
219+ let aD = p(at)
220+ let aE = {
221+ let aF = invoke(an, "poolInfoREADONLY", [aC, aD], nil)
222+ if ($isInstanceOf(aF, "(Address, ByteVector)"))
223+ then aF
215224 else unit
216225 }
217- aA
226+ aE
218227 }
219228
220229
221-func aC (aD,F) = {
222- let aE = valueOrErrorMessage(assetInfo(F), "failed to get share asset info")
223- let aF = aE.quantity
224- let aG = q(valueOrErrorMessage({
225- let aB = invoke(ao, "stakedByUserREADONLY", [p(aD), toString(this)], nil)
226- if ($isInstanceOf(aB, "Int"))
227- then aB
230+func aG (aH,G) = {
231+ let aI = valueOrErrorMessage(assetInfo(G), "failed to get share asset info")
232+ let aJ = aI.quantity
233+ let aK = q(valueOrErrorMessage({
234+ let aF = invoke(ap, "stakedByUserREADONLY", [p(aH), toString(this)], nil)
235+ if ($isInstanceOf(aF, "Int"))
236+ then aF
228237 else unit
229238 }, f("invalid stakedByUserREADONLY result")))
230- let aH = if ((aF == 0))
239+ let aL = if ((aJ == 0))
231240 then e
232- else fraction(toBigInt(aG), e, toBigInt(aF), FLOOR)
233- aH
241+ else fraction(toBigInt(aK), e, toBigInt(aJ), FLOOR)
242+ aL
234243 }
235244
236245
237-@Callable(ah)
238-func setManager (aI) = {
239- let aJ = ai(ah)
240- if ((aJ == aJ))
246+@Callable(ai)
247+func setManager (aM) = {
248+ let aN = aj(ai)
249+ if ((aN == aN))
241250 then {
242- let aK = fromBase58String(aI)
243- if ((aK == aK))
244- then [StringEntry(aa(), aI)]
251+ let aO = fromBase58String(aM)
252+ if ((aO == aO))
253+ then [StringEntry(ab(), aM)]
245254 else throw("Strict value is not equal to itself.")
246255 }
247256 else throw("Strict value is not equal to itself.")
248257 }
249258
250259
251260
252-@Callable(ah)
261+@Callable(ai)
253262 func confirmManager () = {
254- let aL = ae()
255- let aM = if (isDefined(aL))
263+ let aP = af()
264+ let aQ = if (isDefined(aP))
256265 then true
257266 else h("no pending manager")
258- if ((aM == aM))
267+ if ((aQ == aQ))
259268 then {
260- let aN = if ((ah.callerPublicKey == value(aL)))
269+ let aR = if ((ai.callerPublicKey == value(aP)))
261270 then true
262271 else h("you are not pending manager")
263- if ((aN == aN))
264- then [StringEntry(Z(), toBase58String(value(aL))), DeleteEntry(aa())]
272+ if ((aR == aR))
273+ then [StringEntry(aa(), toBase58String(value(aP))), DeleteEntry(ab())]
265274 else throw("Strict value is not equal to itself.")
266275 }
267276 else throw("Strict value is not equal to itself.")
268277 }
269278
270279
271280
272-@Callable(ah)
273-func create (aO,aP,aQ,aR,aS) = {
274- let aT = "LP_STAKING_POOLS"
275- let D = n(aO)
276- let aU = [ai(ah), if (isDefined(aw(D)))
281+@Callable(ai)
282+func create (aS,aT,aU,aV,aW) = {
283+ let aX = "LP_STAKING_POOLS"
284+ let E = n(aS)
285+ let aY = [aj(ai), if (isDefined(aA(E)))
277286 then true
278287 else h("invalid base asset")]
279- if ((aU == aU))
288+ if ((aY == aY))
280289 then {
281- let aV = [IntegerEntry(G(D), 0)]
282- if ((aP == ""))
290+ let aZ = [IntegerEntry(H(E), 0)]
291+ if ((aT == ""))
283292 then {
284- let aW = 1
285- let aX = Issue(aQ, aR, aW, b, true)
286- let aY = calculateAssetId(aX)
287- let aZ = Burn(aY, aW)
288- let ba = toBase58String(aY)
289- let bb = invoke(ar, "createOrUpdate", [ba, aS, false], nil)
290- if ((bb == bb))
293+ let ba = 1
294+ let bb = Issue(aU, aV, ba, b, true)
295+ let bc = calculateAssetId(bb)
296+ let bd = Burn(bc, ba)
297+ let be = toBase58String(bc)
298+ let bf = invoke(as, "createOrUpdate", [be, aW, false], nil)
299+ if ((bf == bf))
291300 then {
292- let bc = invoke(ar, "addLabel", [ba, aT], nil)
293- if ((bc == bc))
294- then $Tuple2((aV ++ [aX, aZ, StringEntry(C(D), ba), StringEntry(E(aY), aO)]), ba)
301+ let bg = invoke(as, "addLabel", [be, aX], nil)
302+ if ((bg == bg))
303+ then $Tuple2((aZ ++ [bb, bd, StringEntry(D(E), be), StringEntry(F(bc), aS)]), be)
295304 else throw("Strict value is not equal to itself.")
296305 }
297306 else throw("Strict value is not equal to itself.")
298307 }
299308 else {
300- let F = fromBase58String(aP)
301- let aE = valueOrErrorMessage(assetInfo(F), f("invalid share asset id"))
302- let bd = if ((aE.issuer == an))
309+ let G = fromBase58String(aT)
310+ let aI = valueOrErrorMessage(assetInfo(G), f("invalid share asset id"))
311+ let bh = if ((aI.issuer == ao))
303312 then true
304313 else h("invalid share asset id issuer")
305- if ((bd == bd))
306- then $Tuple2((aV ++ [StringEntry(C(D), aP), StringEntry(C(F), aO)]), aP)
314+ if ((bh == bh))
315+ then $Tuple2((aZ ++ [StringEntry(D(E), aT), StringEntry(D(G), aS)]), aT)
307316 else throw("Strict value is not equal to itself.")
308317 }
309318 }
310319 else throw("Strict value is not equal to itself.")
311320 }
312321
313322
314323
315-@Callable(ah)
324+@Callable(ai)
316325 func put () = {
317- let be = if ((size(ah.payments) == 1))
318- then ah.payments[0]
326+ let bi = if ((size(ai.payments) == 1))
327+ then ai.payments[0]
319328 else h("exactly 1 payment is expected")
320- let D = be.assetId
321- let M = ah.caller
322- let aU = [al(ah), if (isDefined(getString(C(D))))
329+ let E = bi.assetId
330+ let N = ai.caller
331+ let aY = [am(ai), if (isDefined(getString(D(E))))
323332 then true
324333 else h("invalid asset")]
325- if ((aU == aU))
334+ if ((aY == aY))
326335 then {
327- let bf = valueOrErrorMessage(aw(D), f("invalid asset"))
328- let bg = bf._1
329- let aD = bf._2
330- let I = value(getInteger(G(D)))
331- let bh = getInteger(N(D, M))
332- let bi = if ((bh == unit))
336+ let bj = valueOrErrorMessage(aA(E), f("invalid asset"))
337+ let bk = bj._1
338+ let aH = bj._2
339+ let J = value(getInteger(H(E)))
340+ let bl = getInteger(O(E, N))
341+ let bm = if ((bl == unit))
333342 then unit
334343 else {
335- let bj = value(bh)
336- if ((bj == I))
344+ let bn = value(bl)
345+ if ((bn == J))
337346 then unit
338- else invoke(this, "claimShareAsset", [p(D), toString(M)], nil)
347+ else invoke(this, "claimShareAsset", [p(E), toString(N)], nil)
339348 }
340- if ((bi == bi))
349+ if ((bm == bm))
341350 then {
342- let bk = valueOrElse(getInteger(J(D)), 0)
343- let bl = valueOrElse(getInteger(L(D, M)), 0)
344- $Tuple2([IntegerEntry(J(D), (bk + be.amount)), IntegerEntry(L(D, M), (bl + be.amount)), IntegerEntry(N(D, M), I), IntegerEntry(W(D, "put", I, M, ah.transactionId), be.amount)], unit)
351+ let bo = valueOrElse(getInteger(K(E)), 0)
352+ let bp = valueOrElse(getInteger(M(E, N)), 0)
353+ $Tuple2([IntegerEntry(K(E), (bo + bi.amount)), IntegerEntry(M(E, N), (bp + bi.amount)), IntegerEntry(O(E, N), J), IntegerEntry(X(E, "put", J, N, ai.transactionId), bi.amount)], unit)
345354 }
346355 else throw("Strict value is not equal to itself.")
347356 }
348357 else throw("Strict value is not equal to itself.")
349358 }
350359
351360
352361
353-@Callable(ah)
354-func claimShareAsset (aO,bm) = {
355- let aU = [al(ah)]
356- if ((aU == aU))
362+@Callable(ai)
363+func claimShareAsset (aS,bq) = {
364+ let aY = [am(ai)]
365+ if ((aY == aY))
357366 then {
358- let M = if ((bm == ""))
359- then ah.caller
367+ let N = if ((bq == ""))
368+ then ai.caller
360369 else {
361- let aJ = ag(ah)
362- if ((aJ == aJ))
363- then valueOrErrorMessage(addressFromString(bm), f("invalid user address"))
370+ let aN = ah(ai)
371+ if ((aN == aN))
372+ then valueOrErrorMessage(addressFromString(bq), f("invalid user address"))
364373 else throw("Strict value is not equal to itself.")
365374 }
366- if ((M == M))
375+ if ((N == N))
367376 then {
368- let D = n(aO)
369- let F = value(n(valueOrErrorMessage(getString(C(D)), f("invalid base asset id"))))
370- if ((F == F))
377+ let E = n(aS)
378+ let G = value(n(valueOrErrorMessage(getString(D(E)), f("invalid base asset id"))))
379+ if ((G == G))
371380 then {
372- let I = valueOrErrorMessage(getInteger(G(D)), f("invalid period"))
373- if ((I == I))
381+ let J = valueOrErrorMessage(getInteger(H(E)), f("invalid period"))
382+ if ((J == J))
374383 then {
375- let bl = valueOrElse(getInteger(L(D, M)), 0)
376- let bn = if ((bl > 0))
384+ let bp = valueOrElse(getInteger(M(E, N)), 0)
385+ let br = if ((bp > 0))
377386 then true
378387 else h("nothing to claim")
379- if ((bn == bn))
388+ if ((br == br))
380389 then {
381- let bj = valueOrErrorMessage(getInteger(N(D, M)), f("failed to get period"))
382- let bo = if ((I > bj))
390+ let bn = valueOrErrorMessage(getInteger(O(E, N)), f("failed to get period"))
391+ let bs = if ((J > bn))
383392 then true
384393 else h("invalid period")
385- if ((bo == bo))
394+ if ((bs == bs))
386395 then {
387- let aH = toBigInt(valueOrErrorMessage(getBinary(S(D, bj)), f("failed to get price")))
388- let bp = toInt(fraction(toBigInt(bl), e, aH))
389- $Tuple2([IntegerEntry(L(D, M), 0), ScriptTransfer(M, bp, F), IntegerEntry(W(D, "claimShareAsset", I, M, ah.transactionId), bp)], unit)
396+ let aL = toBigInt(valueOrErrorMessage(getBinary(T(E, bn)), f("failed to get price")))
397+ let bt = toInt(fraction(toBigInt(bp), e, aL))
398+ $Tuple2([IntegerEntry(M(E, N), 0), ScriptTransfer(N, bt, G), IntegerEntry(X(E, "claimShareAsset", J, N, ai.transactionId), bt)], unit)
390399 }
391400 else throw("Strict value is not equal to itself.")
392401 }
393402 else throw("Strict value is not equal to itself.")
394403 }
395404 else throw("Strict value is not equal to itself.")
396405 }
397406 else throw("Strict value is not equal to itself.")
398407 }
399408 else throw("Strict value is not equal to itself.")
400409 }
401410 else throw("Strict value is not equal to itself.")
402411 }
403412
404413
405414
406-@Callable(ah)
415+@Callable(ai)
407416 func get () = {
408- let aU = [al(ah)]
409- if ((aU == aU))
417+ let aY = [am(ai)]
418+ if ((aY == aY))
410419 then {
411- let be = if ((size(ah.payments) == 1))
412- then ah.payments[0]
420+ let bi = if ((size(ai.payments) == 1))
421+ then ai.payments[0]
413422 else h("exactly 1 payment is expected")
414- let F = be.assetId
415- let D = value(n(valueOrErrorMessage(getString(E(F)), f("invalid share asset id"))))
416- if ((D == D))
423+ let G = bi.assetId
424+ let E = value(n(valueOrErrorMessage(getString(F(G)), f("invalid share asset id"))))
425+ if ((E == E))
417426 then {
418- let M = ah.caller
419- let bq = valueOrErrorMessage(aw(D), f("invalid asset"))
420- let bg = bq._1
421- let aD = bq._2
422- let I = value(getInteger(G(D)))
423- let br = getInteger(P(D, M))
424- let bs = if ((br == unit))
427+ let N = ai.caller
428+ let bu = valueOrErrorMessage(aA(E), f("invalid asset"))
429+ let bk = bu._1
430+ let aH = bu._2
431+ let J = value(getInteger(H(E)))
432+ let bv = getInteger(Q(E, N))
433+ let bw = if ((bv == unit))
425434 then unit
426435 else {
427- let bt = value(br)
428- if ((bt == I))
436+ let bx = value(bv)
437+ if ((bx == J))
429438 then unit
430- else invoke(this, "claimBaseAsset", [M], nil)
439+ else invoke(this, "claimBaseAsset", [N], nil)
431440 }
432- if ((bs == bs))
441+ if ((bw == bw))
433442 then {
434- let bu = valueOrElse(getInteger(K(D)), 0)
435- let bv = valueOrElse(getInteger(O(D, M)), 0)
436- $Tuple2([IntegerEntry(K(D), (bu + be.amount)), IntegerEntry(O(D, M), (bv + be.amount)), IntegerEntry(P(D, M), I), IntegerEntry(W(D, "get", I, M, ah.transactionId), be.amount)], unit)
443+ let by = valueOrElse(getInteger(L(E)), 0)
444+ let bz = valueOrElse(getInteger(P(E, N)), 0)
445+ $Tuple2([IntegerEntry(L(E), (by + bi.amount)), IntegerEntry(P(E, N), (bz + bi.amount)), IntegerEntry(Q(E, N), J), IntegerEntry(X(E, "get", J, N, ai.transactionId), bi.amount)], unit)
437446 }
438447 else throw("Strict value is not equal to itself.")
439448 }
440449 else throw("Strict value is not equal to itself.")
441450 }
442451 else throw("Strict value is not equal to itself.")
443452 }
444453
445454
446455
447-@Callable(ah)
448-func claimBaseAsset (aO,bm) = {
449- let aU = [al(ah)]
450- if ((aU == aU))
456+@Callable(ai)
457+func claimBaseAsset (aS,bq) = {
458+ let aY = [am(ai)]
459+ if ((aY == aY))
451460 then {
452- let M = if ((bm == ""))
453- then ah.caller
461+ let N = if ((bq == ""))
462+ then ai.caller
454463 else {
455- let aJ = ag(ah)
456- if ((aJ == aJ))
457- then valueOrErrorMessage(addressFromString(bm), f("invalid user address"))
464+ let aN = ah(ai)
465+ if ((aN == aN))
466+ then valueOrErrorMessage(addressFromString(bq), f("invalid user address"))
458467 else throw("Strict value is not equal to itself.")
459468 }
460- if ((M == M))
469+ if ((N == N))
461470 then {
462- let D = n(aO)
463- let F = value(n(valueOrErrorMessage(getString(C(D)), f("invalid base asset id"))))
464- if ((F == F))
471+ let E = n(aS)
472+ let G = value(n(valueOrErrorMessage(getString(D(E)), f("invalid base asset id"))))
473+ if ((G == G))
465474 then {
466- let I = valueOrErrorMessage(getInteger(G(D)), f("invalid period"))
467- if ((I == I))
475+ let J = valueOrErrorMessage(getInteger(H(E)), f("invalid period"))
476+ if ((J == J))
468477 then {
469- let bv = valueOrElse(getInteger(O(D, M)), 0)
470- let bn = if ((bv > 0))
478+ let bz = valueOrElse(getInteger(P(E, N)), 0)
479+ let br = if ((bz > 0))
471480 then true
472481 else h("nothing to claim")
473- if ((bn == bn))
482+ if ((br == br))
474483 then {
475- let bt = valueOrErrorMessage(getInteger(P(D, M)), f("failed to get period"))
476- let bo = if ((I > bt))
484+ let bx = valueOrErrorMessage(getInteger(Q(E, N)), f("failed to get period"))
485+ let bs = if ((J > bx))
477486 then true
478487 else h("invalid period")
479- if ((bo == bo))
488+ if ((bs == bs))
480489 then {
481- let aH = toBigInt(valueOrErrorMessage(getBinary(U(D, bt)), f("failed to get price")))
482- let bw = toInt(fraction(toBigInt(bv), aH, e))
483- $Tuple2([IntegerEntry(O(D, M), 0), ScriptTransfer(M, bw, D), IntegerEntry(W(D, "claimBaseAsset", I, M, ah.transactionId), bw)], unit)
490+ let aL = toBigInt(valueOrErrorMessage(getBinary(V(E, bx)), f("failed to get price")))
491+ let bA = toInt(fraction(toBigInt(bz), aL, e))
492+ $Tuple2([IntegerEntry(P(E, N), 0), ScriptTransfer(N, bA, E), IntegerEntry(X(E, "claimBaseAsset", J, N, ai.transactionId), bA)], unit)
484493 }
485494 else throw("Strict value is not equal to itself.")
486495 }
487496 else throw("Strict value is not equal to itself.")
488497 }
489498 else throw("Strict value is not equal to itself.")
490499 }
491500 else throw("Strict value is not equal to itself.")
492501 }
493502 else throw("Strict value is not equal to itself.")
494503 }
495504 else throw("Strict value is not equal to itself.")
496505 }
497506
498507
499508
500-@Callable(ah)
501-func finalize (aO) = {
502- let aU = [al(ah)]
503- if ((aU == aU))
509+@Callable(ai)
510+func finalize (aS) = {
511+ let aY = [am(ai)]
512+ if ((aY == aY))
504513 then {
505- let D = n(aO)
506- let F = value(n(valueOrErrorMessage(getString(C(D)), f("invalid base asset id"))))
507- if ((F == F))
514+ let E = n(aS)
515+ let G = value(n(valueOrErrorMessage(getString(D(E)), f("invalid base asset id"))))
516+ if ((G == G))
508517 then {
509- let I = valueOrErrorMessage(getInteger(G(D)), f("invalid period"))
510- if ((I == I))
518+ let J = valueOrErrorMessage(getInteger(H(E)), f("invalid period"))
519+ if ((J == J))
511520 then {
512- let bx = getInteger(H(D, I))
513- let by = if ((bx == unit))
521+ let bB = getInteger(I(E, J))
522+ let bC = if ((bB == unit))
514523 then unit
515524 else {
516- let bz = (height - value(bx))
517- let bA = min([0, (av - bz)])
518- if ((bA == 0))
525+ let bD = (height - value(bB))
526+ let bE = min([0, (aw - bD)])
527+ if ((bE == 0))
519528 then unit
520- else h(makeString(["finalization will be possible in ", toString(bA), " blocks"], ""))
529+ else h(makeString(["finalization will be possible in ", toString(bE), " blocks"], ""))
521530 }
522- if ((by == by))
531+ if ((bC == bC))
523532 then {
524- let bB = valueOrErrorMessage(aw(D), f("invalid asset"))
525- let bg = bB._1
526- let aD = bB._2
527- let bC = valueOrErrorMessage({
528- let aB = invoke(ao, "claimWx", [p(aD)], nil)
529- if ($isInstanceOf(aB, "Int"))
530- then aB
533+ let bF = valueOrErrorMessage(aA(E), f("invalid asset"))
534+ let bk = bF._1
535+ let aH = bF._2
536+ let bG = valueOrErrorMessage({
537+ let aF = invoke(ap, "claimWx", [p(aH)], nil)
538+ if ($isInstanceOf(aF, "Int"))
539+ then aF
531540 else unit
532541 }, f("invalid claimWx result"))
533- if ((bC == bC))
542+ if ((bG == bG))
534543 then {
535- let bD = if ((bC > 0))
544+ let bH = if ((bG > 0))
536545 then {
537- let bE = (bC / 2)
538- let bF = (bC - bE)
539- let bG = invoke(ap, "userMaxDurationREADONLY", [toString(this)], nil)
540- let bH = {
541- let ac = bG
542- if (if (if ($isInstanceOf(ac._1, "String"))
543- then $isInstanceOf(ac._2, "Int")
546+ let bI = fraction(bG, az, ax)
547+ let bJ = (bG - bI)
548+ let bK = invoke(aq, "userMaxDurationREADONLY", [toString(this)], nil)
549+ let bL = {
550+ let ad = bK
551+ if (if (if ($isInstanceOf(ad._1, "String"))
552+ then $isInstanceOf(ad._2, "Int")
544553 else false)
545- then $isInstanceOf(ac, "(String, Int)")
554+ then $isInstanceOf(ad, "(String, Int)")
546555 else false)
547556 then {
548- let bI = ac._1
549- let bJ = ac._2
550- if ((bE > 0))
551- then invoke(ap, bI, [bJ], [AttachedPayment(at, bE)])
557+ let bM = ad._1
558+ let bN = ad._2
559+ if ((bI > 0))
560+ then invoke(aq, bM, [bN], [AttachedPayment(au, bI)])
552561 else unit
553562 }
554563 else h("invalid lock params")
555564 }
556- if ((bH == bH))
565+ if ((bL == bL))
557566 then {
558- let bK = {
559- let bL = at
560- let bM = 0
561- let bN = p(as)
562- let bO = ""
567+ let bO = {
568+ let bP = au
569+ let bQ = 0
570+ let bR = p(at)
571+ let bS = ""
563572 valueOrErrorMessage({
564- let aB = invoke(aq, "swap", [bM, bN, bO], [AttachedPayment(bL, bF)])
565- if ($isInstanceOf(aB, "Int"))
566- then aB
573+ let aF = invoke(ar, "swap", [bQ, bR, bS], [AttachedPayment(bP, bJ)])
574+ if ($isInstanceOf(aF, "Int"))
575+ then aF
567576 else unit
568577 }, f("invalid swap result"))
569578 }
570- if ((bK == bK))
579+ if ((bO == bO))
571580 then {
572- let bP = {
573- let bQ = 0
574- let bR = true
581+ let bT = {
582+ let bU = 0
583+ let bV = true
575584 valueOrErrorMessage({
576- let aB = invoke(bg, "putOneTknV2", [bQ, bR], [AttachedPayment(as, bK)])
577- if ($isInstanceOf(aB, "Int"))
578- then aB
585+ let aF = invoke(bk, "putOneTknV2", [bU, bV], [AttachedPayment(at, bO)])
586+ if ($isInstanceOf(aF, "Int"))
587+ then aF
579588 else unit
580589 }, f("invalid putOneTknV2 result"))
581590 }
582- if ((bP == bP))
583- then bP
591+ if ((bT == bT))
592+ then bT
584593 else throw("Strict value is not equal to itself.")
585594 }
586595 else throw("Strict value is not equal to itself.")
587596 }
588597 else throw("Strict value is not equal to itself.")
589598 }
590599 else unit
591- if ((bD == bD))
600+ if ((bH == bH))
592601 then {
593- let bu = valueOrElse(getInteger(K(D)), 0)
594- let bS = if ((bu > 0))
602+ let by = valueOrElse(getInteger(L(E)), 0)
603+ let bW = if ((by > 0))
595604 then {
596- let aH = aC(aD, F)
597- if ((aH == aH))
605+ let aL = aG(aH, G)
606+ if ((aL == aL))
598607 then {
599- let bT = toInt(fraction(toBigInt(bu), aH, e, FLOOR))
600- let bw = {
601- let bU = D
602- let bQ = 0
608+ let bX = toInt(fraction(toBigInt(by), aL, e, FLOOR))
609+ let bA = {
610+ let bY = E
611+ let bU = 0
603612 valueOrErrorMessage({
604- let aB = invoke(bg, "unstakeAndGetOneTknV2", [bT, p(bU), bQ], nil)
605- if ($isInstanceOf(aB, "Int"))
606- then aB
613+ let aF = invoke(bk, "unstakeAndGetOneTknV2", [bX, p(bY), bU], nil)
614+ if ($isInstanceOf(aF, "Int"))
615+ then aF
607616 else unit
608617 }, f("invalid unstakeAndGetOneTknV2 result"))
609618 }
610- if ((bw == bw))
619+ if ((bA == bA))
611620 then {
612- let bV = [Burn(F, bu)]
613- let bW = fraction(toBigInt(bw), e, toBigInt(bu), FLOOR)
614- let bX = [BinaryEntry(U(D, I), toBytes(bW)), StringEntry(V(D), toString(bW))]
615- (bV ++ bX)
621+ let bZ = [Burn(G, by)]
622+ let ca = fraction(toBigInt(bA), e, toBigInt(by), FLOOR)
623+ let cb = [BinaryEntry(V(E, J), toBytes(ca)), StringEntry(W(E), toString(ca))]
624+ (bZ ++ cb)
616625 }
617626 else throw("Strict value is not equal to itself.")
618627 }
619628 else throw("Strict value is not equal to itself.")
620629 }
621630 else nil
622- let bk = valueOrElse(getInteger(J(D)), 0)
623- let bY = if ((bk > 0))
631+ let bo = valueOrElse(getInteger(K(E)), 0)
632+ let cc = if ((bo > 0))
624633 then {
625- let bP = {
626- let bQ = 0
627- let bR = true
634+ let bT = {
635+ let bU = 0
636+ let bV = true
628637 valueOrErrorMessage({
629- let aB = invoke(bg, "putOneTknV2", [bQ, bR], [AttachedPayment(D, bk)])
630- if ($isInstanceOf(aB, "Int"))
631- then aB
638+ let aF = invoke(bk, "putOneTknV2", [bU, bV], [AttachedPayment(E, bo)])
639+ if ($isInstanceOf(aF, "Int"))
640+ then aF
632641 else unit
633642 }, f("invalid putOneTknV2 result"))
634643 }
635- if ((bP == bP))
644+ if ((bT == bT))
636645 then {
637- let aH = aC(aD, F)
638- if ((aH == aH))
646+ let aL = aG(aH, G)
647+ if ((aL == aL))
639648 then {
640- let bp = toInt(fraction(toBigInt(bP), e, aH, FLOOR))
641- let bZ = true
642- let ca = [Reissue(F, bp, bZ)]
643- let cb = fraction(toBigInt(bk), e, toBigInt(bp))
644- let cc = [BinaryEntry(S(D, I), toBytes(cb)), StringEntry(T(D), toString(cb))]
645- (ca ++ cc)
649+ let bt = toInt(fraction(toBigInt(bT), e, aL, FLOOR))
650+ let cd = true
651+ let ce = [Reissue(G, bt, cd)]
652+ let cf = fraction(toBigInt(bo), e, toBigInt(bt))
653+ let cg = [BinaryEntry(T(E, J), toBytes(cf)), StringEntry(U(E), toString(cf))]
654+ (ce ++ cg)
646655 }
647656 else throw("Strict value is not equal to itself.")
648657 }
649658 else throw("Strict value is not equal to itself.")
650659 }
651660 else nil
652- let cd = (I + 1)
653- let ce = aC(aD, F)
654- let cf = (([IntegerEntry(G(D), cd), IntegerEntry(H(D, cd), height), IntegerEntry(K(D), 0), IntegerEntry(J(D), 0), BinaryEntry(Q(D, I), toBytes(ce)), StringEntry(R(D), toString(ce))] ++ bY) ++ bS)
655- $Tuple2(cf, toBytes(ce))
661+ let ch = (J + 1)
662+ let ci = aG(aH, G)
663+ let cj = (([IntegerEntry(H(E), ch), IntegerEntry(I(E, ch), height), IntegerEntry(L(E), 0), IntegerEntry(K(E), 0), BinaryEntry(R(E, J), toBytes(ci)), StringEntry(S(E), toString(ci))] ++ cc) ++ bW)
664+ $Tuple2(cj, toBytes(ci))
656665 }
657666 else throw("Strict value is not equal to itself.")
658667 }
659668 else throw("Strict value is not equal to itself.")
660669 }
661670 else throw("Strict value is not equal to itself.")
662671 }
663672 else throw("Strict value is not equal to itself.")
664673 }
665674 else throw("Strict value is not equal to itself.")
666675 }
667676 else throw("Strict value is not equal to itself.")
668677 }
669678
670679
671-@Verifier(cg)
672-func ch () = {
673- let ci = {
674- let ac = ab()
675- if ($isInstanceOf(ac, "ByteVector"))
680+@Verifier(ck)
681+func cl () = {
682+ let cm = {
683+ let ad = ac()
684+ if ($isInstanceOf(ad, "ByteVector"))
676685 then {
677- let aj = ac
678- aj
686+ let ak = ad
687+ ak
679688 }
680- else if ($isInstanceOf(ac, "Unit"))
681- then cg.senderPublicKey
689+ else if ($isInstanceOf(ad, "Unit"))
690+ then ck.senderPublicKey
682691 else throw("Match error")
683692 }
684- sigVerify(cg.bodyBytes, cg.proofs[0], ci)
693+ sigVerify(ck.bodyBytes, ck.proofs[0], cm)
685694 }
686695

github/deemru/w8io/169f3d6 
297.41 ms