tx · G3AFXw36cGdNo4g61Ds1njQrrZrhGSA1VScd5uaThvJF

3N6HSS7Toat1RhyEsyqVGgVSRzH19W1FTbP:  -0.01400000 Waves

2023.06.09 17:42 [2615263] smart account 3N6HSS7Toat1RhyEsyqVGgVSRzH19W1FTbP > SELF 0.00000000 Waves

{ "type": 13, "id": "G3AFXw36cGdNo4g61Ds1njQrrZrhGSA1VScd5uaThvJF", "fee": 1400000, "feeAssetId": null, "timestamp": 1686321833561, "version": 2, "chainId": 84, "sender": "3N6HSS7Toat1RhyEsyqVGgVSRzH19W1FTbP", "senderPublicKey": "AoKo4segKHU4DeJnxXQYJj2u7J6XJeux6r8KLW52cd2Q", "proofs": [ "4phFzuFJkeA6VYGRDAnFJT8zs5PPYFCi1RtPabDvL5ksZZ5b5pgk7apdFiJ9kNovNKeS9Lk62rag84KVPGZQeMbH" ], "script": "base64:BwIqCAISAwoBAhIGCgQBAQEBEgMKAQISAwoBAhIECgICAhIECgICAhIDCgECHwADU0VQAgJfXwANQ09OVFJBQ1RfTkFNRQIPY2FsY3VsYXRvci5yaWRlAAZTQ0FMRTgAgMLXLwAHUEVORElORwIHUEVORElORwAIRklOSVNIRUQCCEZJTklTSEVEAQd3cmFwRXJyAQFzCQCsAgIJAKwCAgUNQ09OVFJBQ1RfTkFNRQICOiAFAXMBCHRocm93RXJyAQFzCQACAQkBB3dyYXBFcnIBBQFzARFrZXlGYWN0b3J5QWRkcmVzcwAJALkJAgkAzAgCAgIlcwkAzAgCAgdmYWN0b3J5BQNuaWwFA1NFUAEMa2V5THBBc3NldElkAAkAuQkCCQDMCAICAiVzCQDMCAICCWxwQXNzZXRJZAUDbmlsBQNTRVABEmtleVRyZWFzdXJ5QWRkcmVzcwAJALkJAgkAzAgCAgIlcwkAzAgCAgh0cmVhc3VyeQUDbmlsBQNTRVABDGtleUF2YWlsYWJsZQELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICCWF2YWlsYWJsZQkAzAgCCQClCAEFC3VzZXJBZGRyZXNzBQNuaWwFA1NFUAEKa2V5Q2xhaW1lZAELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICB2NsYWltZWQJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABEGtleUN1cnJlbnRQZXJpb2QACQC5CQIJAMwIAgICJXMJAMwIAgINY3VycmVudFBlcmlvZAUDbmlsBQNTRVABEWtleVByaWNlRm9yUGVyaW9kAQZwZXJpb2QJALkJAgkAzAgCAgQlcyVkCQDMCAICBXByaWNlCQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEOa2V5U3RhcnRIZWlnaHQBBnBlcmlvZAkAuQkCCQDMCAICBCVzJWQJAMwIAgILc3RhcnRIZWlnaHQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQAQ9rZXlQZXJpb2RMZW5ndGgAAhAlc19fcGVyaW9kTGVuZ3RoARhrZXlCbG9ja1Byb2Nlc3NpbmdSZXdhcmQAAhklc19fYmxvY2tQcm9jZXNzaW5nUmV3YXJkARVrZXlOZXh0QmxvY2tUb1Byb2Nlc3MAAhYlc19fbmV4dEJsb2NrVG9Qcm9jZXNzARFrZXlCbG9ja1Byb2Nlc3NlZAEGaGVpZ2h0CQC5CQIJAMwIAgIEJXMlZAkAzAgCAg5ibG9ja1Byb2Nlc3NlZAkAzAgCCQCkAwEFBmhlaWdodAUDbmlsBQNTRVABFGtleVdpdGhkcmF3YWxSZXF1ZXN0Agt1c2VyQWRkcmVzcwR0eElkCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCndpdGhkcmF3YWwJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCCQDYBAEFBHR4SWQFA25pbAUDU0VQARZ2YWx1ZVdpdGhkcmF3YWxSZXF1ZXN0BAZzdGF0dXMNbHBBc3NldEFtb3VudAx0YXJnZXRQZXJpb2QJY2xhaW1UeElkBAxjbGFpbVR4SWRTdHIEByRtYXRjaDAFCWNsYWltVHhJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWIDCQABAgUHJG1hdGNoMAIEVW5pdAIEU09PTgkAAgECC01hdGNoIGVycm9yCQC5CQIJAMwIAgIIJXMlZCVkJXMJAMwIAgUGc3RhdHVzCQDMCAIJAKQDAQUNbHBBc3NldEFtb3VudAkAzAgCCQCkAwEFDHRhcmdldFBlcmlvZAkAzAgCBQxjbGFpbVR4SWRTdHIFA25pbAUDU0VQASFwYXJzZVdpdGhkcmF3YWxSZXF1ZXN0VmFsdWVPckZhaWwBAXMEBXBhcnRzCQC1CQIFAXMFA1NFUAMJAAACCQCQAwEFBXBhcnRzAAUEBnN0YXR1cwkAkQMCBQVwYXJ0cwABBA1scEFzc2V0QW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQVwYXJ0cwACCQEHd3JhcEVycgECFWludmFsaWQgbHBBc3NldEFtb3VudAQMdGFyZ2V0UGVyaW9kCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQVwYXJ0cwADCQEHd3JhcEVycgECFGludmFsaWQgdGFyZ2V0UGVyaW9kBAljbGFpbVR4SWQJAJEDAgUFcGFydHMABAkAlgoEBQZzdGF0dXMFDWxwQXNzZXRBbW91bnQFDHRhcmdldFBlcmlvZAUJY2xhaW1UeElkCQEIdGhyb3dFcnIBAiBpbnZhbGlkIHdpdGhkcmF3YWwgcmVxdWVzdCB2YWx1ZQAUZmFjdG9yeUFkZHJlc3NPcHRpb24EByRtYXRjaDAJAJ0IAgUEdGhpcwkBEWtleUZhY3RvcnlBZGRyZXNzAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAKYIAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIFFGZhY3RvcnlBZGRyZXNzT3B0aW9uCQEHd3JhcEVycgECF2ludmFsaWQgZmFjdG9yeSBhZGRyZXNzAA9scEFzc2V0SWRPcHRpb24EByRtYXRjaDAFFGZhY3RvcnlBZGRyZXNzT3B0aW9uAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAEByRtYXRjaDEJAJ0IAgUBYQkBDGtleUxwQXNzZXRJZAADCQABAgUHJG1hdGNoMQIGU3RyaW5nBAFzBQckbWF0Y2gxCQDZBAEFAXMDCQABAgUHJG1hdGNoMQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgAPbHBBc3NldElkT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIFD2xwQXNzZXRJZE9wdGlvbgkBB3dyYXBFcnIBAhFpbnZhbGlkIGxwQXNzZXRJZAAVdHJlYXN1cnlBZGRyZXNzT3B0aW9uBAckbWF0Y2gwBRRmYWN0b3J5QWRkcmVzc09wdGlvbgMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBAckbWF0Y2gxCQCdCAIFAWEJARJrZXlUcmVhc3VyeUFkZHJlc3MAAwkAAQIFByRtYXRjaDECBlN0cmluZwQBcwUHJG1hdGNoMQkApggBBQFzAwkAAQIFByRtYXRjaDECBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAFXRyZWFzdXJ5QWRkcmVzc09yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRV0cmVhc3VyeUFkZHJlc3NPcHRpb24JAQd3cmFwRXJyAQIYaW52YWxpZCB0cmVhc3VyeSBhZGRyZXNzAQtvbmx5QWRkcmVzcwIBaQdhZGRyZXNzAwkAAAIIBQFpBmNhbGxlcgUHYWRkcmVzcwYJAQh0aHJvd0VycgECEXBlcm1pc3Npb24gZGVuaWVkAQtvbmx5RmFjdG9yeQEBaQkBC29ubHlBZGRyZXNzAgUBaQUUZmFjdG9yeUFkZHJlc3NPckZhaWwBD3Jld2FyZEZvck9wdGlvbgIHcmV3YXJkcwZ0YXJnZXQEAXMJAJADAQUHcmV3YXJkcwQLJHQwMzM0NzMzNzIJAJEDAgUHcmV3YXJkcwAABAJhMAgFCyR0MDMzNDczMzcyAl8xBAJyMAgFCyR0MDMzNDczMzcyAl8yBAskdDAzMzc1MzQwMAkAkQMCBQdyZXdhcmRzAAEEAmExCAULJHQwMzM3NTM0MDACXzEEAnIxCAULJHQwMzM3NTM0MDACXzIECyR0MDM0MDMzNDI4CQCRAwIFB3Jld2FyZHMAAgQCYTIIBQskdDAzNDAzMzQyOAJfMQQCcjIIBQskdDAzNDAzMzQyOAJfMgMDCQBmAgUBcwAACQAAAgUCYTAFBnRhcmdldAcFAnIwAwMJAGYCBQFzAAEJAAACBQJhMQUGdGFyZ2V0BwUCcjEDAwkAZgIFAXMAAgkAAAIFAmEyBQZ0YXJnZXQHBQJyMgUEdW5pdAcBaQEHY2xhaW1MUAEQdXNlckFkZHJlc3NCeXRlcwQLY2hlY2tDYWxsZXIJAQtvbmx5RmFjdG9yeQEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBAt1c2VyQWRkcmVzcwkBB0FkZHJlc3MBBRB1c2VyQWRkcmVzc0J5dGVzBAlhdmFpbGFibGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQxrZXlBdmFpbGFibGUBBQt1c2VyQWRkcmVzcwAABAdjbGFpbWVkCQELdmFsdWVPckVsc2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEKa2V5Q2xhaW1lZAEFC3VzZXJBZGRyZXNzAAAEDmZhY3RvcnlBY3Rpb25zAwkAZgIFCWF2YWlsYWJsZQAACQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDXRyYW5zZmVyQXNzZXQJAMwIAgUQdXNlckFkZHJlc3NCeXRlcwkAzAgCBQlhdmFpbGFibGUJAMwIAgUPbHBBc3NldElkT3JGYWlsBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBDGtleUF2YWlsYWJsZQEFC3VzZXJBZGRyZXNzCQDMCAIAAAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAILc3RyaW5nRW50cnkJAMwIAgkBCmtleUNsYWltZWQBBQt1c2VyQWRkcmVzcwkAzAgCCQBkAgUHY2xhaW1lZAUJYXZhaWxhYmxlBQNuaWwFA25pbAUDbmlsCQEIdGhyb3dFcnIBAhBub3RoaW5nIHRvIGNsYWltCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIZmluYWxpemUEGG5ld1RyZWFzdXJ5Vm9sdW1lSW5XYXZlcwh4dG5QcmljZRBwd3JNYW5hZ2Vyc0JvbnVzIHRyZWFzdXJ5Vm9sdW1lRGlmZkFsbG9jYXRpb25Db2VmBAZjaGVja3MJAMwIAgMJAAACCAUBaQxvcmlnaW5DYWxsZXIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsBgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQJAMwIAgMJAGcCBRhuZXdUcmVhc3VyeVZvbHVtZUluV2F2ZXMAAAYJAQh0aHJvd0VycgECG2ludmFsaWQgbmV3IHRyZWFzdXJ5IHZvbHVtZQkAzAgCAwkAZwIFCHh0blByaWNlAAAGCQEIdGhyb3dFcnIBAhFpbnZhbGlkIFhUTiBwcmljZQkAzAgCAwMJAGcCBRBwd3JNYW5hZ2Vyc0JvbnVzAAAJAGcCBQZTQ0FMRTgFEHB3ck1hbmFnZXJzQm9udXMHBgkBCHRocm93RXJyAQIaaW52YWxpZCBQV1IgbWFuYWdlcnMgYm9udXMJAMwIAgMDCQBnAgUgdHJlYXN1cnlWb2x1bWVEaWZmQWxsb2NhdGlvbkNvZWYJAQEtAQUGU0NBTEU4CQBnAgUGU0NBTEU4BSB0cmVhc3VyeVZvbHVtZURpZmZBbGxvY2F0aW9uQ29lZgcGCQEIdGhyb3dFcnIBAjNpbnZhbGlkIHRyZWFzdXJ5IHZvbHVtZSBkaWZmIGFsbG9jYXRpb24gY29lZmZpY2llbnQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQTY3VycmVudFBlcmlvZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEQa2V5Q3VycmVudFBlcmlvZAAJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QECW5ld1BlcmlvZAkAZAIFE2N1cnJlbnRQZXJpb2RPckZhaWwAAQQIbmV3UHJpY2UFBlNDQUxFOAQTbHBBc3NldEFtb3VudFRvQnVybgAABA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBEGtleUN1cnJlbnRQZXJpb2QACQDMCAIFCW5ld1BlcmlvZAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIMaW50ZWdlckVudHJ5CQDMCAIJARFrZXlQcmljZUZvclBlcmlvZAEFCW5ld1BlcmlvZAkAzAgCBQhuZXdQcmljZQUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIEYnVybgkAzAgCBRNscEFzc2V0QW1vdW50VG9CdXJuBQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEGaW52ZXN0ARB1c2VyQWRkcmVzc0J5dGVzBAtjaGVja0NhbGxlcgkBC29ubHlGYWN0b3J5AQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3VzZXJBZGRyZXNzCQEHQWRkcmVzcwEFEHVzZXJBZGRyZXNzQnl0ZXMEE2N1cnJlbnRQZXJpb2RPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEGtleUN1cnJlbnRQZXJpb2QACQEHd3JhcEVycgECDmludmFsaWQgcGVyaW9kBBJjdXJyZW50UHJpY2VPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEWtleVByaWNlRm9yUGVyaW9kAQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAg1pbnZhbGlkIHByaWNlBAdwYXltZW50AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQEIdGhyb3dFcnIBAhBpbnZhbGlkIHBheW1lbnRzBA1wYXltZW50QW1vdW50AwMJAAACCAUHcGF5bWVudAdhc3NldElkBQR1bml0CQBmAggFB3BheW1lbnQGYW1vdW50AAAHCAUHcGF5bWVudAZhbW91bnQJAQh0aHJvd0VycgECFmludmFsaWQgcGF5bWVudCBhbW91bnQEDWxwQXNzZXRBbW91bnQDCQBmAgUSY3VycmVudFByaWNlT3JGYWlsAAAJAGsDBQ1wYXltZW50QW1vdW50BQZTQ0FMRTgFEmN1cnJlbnRQcmljZU9yRmFpbAAABA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgIPaW52ZXN0ZWRfX1dBVkVTCQDMCAIAAAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAIHcmVpc3N1ZQkAzAgCBQ1scEFzc2V0QW1vdW50BQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAg10cmFuc2ZlckFzc2V0CQDMCAIFEHVzZXJBZGRyZXNzQnl0ZXMJAMwIAgUNbHBBc3NldEFtb3VudAkAzAgCBQ9scEFzc2V0SWRPckZhaWwFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDXRyYW5zZmVyV2F2ZXMJAMwIAggFFXRyZWFzdXJ5QWRkcmVzc09yRmFpbAVieXRlcwkAzAgCBQ1wYXltZW50QW1vdW50BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFDXBheW1lbnRBbW91bnQFA25pbAUDbmlsCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEId2l0aGRyYXcBEHVzZXJBZGRyZXNzQnl0ZXMEC2NoZWNrQ2FsbGVyCQELb25seUZhY3RvcnkBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdXNlckFkZHJlc3MJAQdBZGRyZXNzAQUQdXNlckFkZHJlc3NCeXRlcwQTY3VycmVudFBlcmlvZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEQa2V5Q3VycmVudFBlcmlvZAAJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QEB3BheW1lbnQDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQCRAwIIBQFpCHBheW1lbnRzAAAJAQh0aHJvd0VycgEJAQd3cmFwRXJyAQIQaW52YWxpZCBwYXltZW50cwQOcGF5bWVudEFzc2V0SWQDCQAAAggFB3BheW1lbnQHYXNzZXRJZAUPbHBBc3NldElkT3JGYWlsBQ9scEFzc2V0SWRPckZhaWwJAQh0aHJvd0VycgECFWludmFsaWQgcGF5bWVudCBhc3NldAQNcGF5bWVudEFtb3VudAMJAGYCCAUHcGF5bWVudAZhbW91bnQAAAgFB3BheW1lbnQGYW1vdW50CQEIdGhyb3dFcnIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50BA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgtzdHJpbmdFbnRyeQkAzAgCCQEUa2V5V2l0aGRyYXdhbFJlcXVlc3QCBQt1c2VyQWRkcmVzcwgFAWkNdHJhbnNhY3Rpb25JZAkAzAgCCQEWdmFsdWVXaXRoZHJhd2FsUmVxdWVzdAQFB1BFTkRJTkcFDXBheW1lbnRBbW91bnQJAGQCBRNjdXJyZW50UGVyaW9kT3JGYWlsAAEFBHVuaXQFA25pbAUDbmlsBQNuaWwDCQAAAgUOZmFjdG9yeUFjdGlvbnMFDmZhY3RvcnlBY3Rpb25zCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUUZmFjdG9yeUFkZHJlc3NPckZhaWwFDXBheW1lbnRBbW91bnQFDnBheW1lbnRBc3NldElkBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmNhbmNlbFdpdGhkcmF3AhB1c2VyQWRkcmVzc0J5dGVzBHR4SWQEC2NoZWNrQ2FsbGVyCQELb25seUZhY3RvcnkBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdXNlckFkZHJlc3MJAQdBZGRyZXNzAQUQdXNlckFkZHJlc3NCeXRlcwQXd2l0aGRyYXdhbFJlcXVlc3RPcHRpb24JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBFGtleVdpdGhkcmF3YWxSZXF1ZXN0AgULdXNlckFkZHJlc3MFBHR4SWQJAQd3cmFwRXJyAQIaaW52YWxpZCB3aXRoZHJhd2FsIHJlcXVlc3QECyR0MDg3MDU4ODE4CQEhcGFyc2VXaXRoZHJhd2FsUmVxdWVzdFZhbHVlT3JGYWlsAQUXd2l0aGRyYXdhbFJlcXVlc3RPcHRpb24EBnN0YXR1cwgFCyR0MDg3MDU4ODE4Al8xBA1scEFzc2V0QW1vdW50CAULJHQwODcwNTg4MTgCXzIEDHRhcmdldFBlcmlvZAgFCyR0MDg3MDU4ODE4Al8zBAljbGFpbVR4SWQIBQskdDA4NzA1ODgxOAJfNAMJAAACBQZzdGF0dXMFB1BFTkRJTkcEDmZhY3RvcnlBY3Rpb25zCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCC2RlbGV0ZUVudHJ5CQDMCAIJARRrZXlXaXRoZHJhd2FsUmVxdWVzdAIFC3VzZXJBZGRyZXNzBQR0eElkBQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAg10cmFuc2ZlckFzc2V0CQDMCAIFEHVzZXJBZGRyZXNzQnl0ZXMJAMwIAgUNbHBBc3NldEFtb3VudAkAzAgCBQ9scEFzc2V0SWRPckZhaWwFA25pbAUDbmlsBQNuaWwDCQAAAgUOZmFjdG9yeUFjdGlvbnMFDmZhY3RvcnlBY3Rpb25zCQCUCgIFA25pbAUOZmFjdG9yeUFjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAQh0aHJvd0VycgECIWludmFsaWQgd2l0aGRyYXdhbCByZXF1ZXN0IHN0YXR1cwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjbGFpbVdhdmVzAhB1c2VyQWRkcmVzc0J5dGVzBHR4SWQEC2NoZWNrQ2FsbGVyCQELb25seUZhY3RvcnkBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdXNlckFkZHJlc3MJAQdBZGRyZXNzAQUQdXNlckFkZHJlc3NCeXRlcwQTY3VycmVudFBlcmlvZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEQa2V5Q3VycmVudFBlcmlvZAAJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QEF3dpdGhkcmF3YWxSZXF1ZXN0T3B0aW9uCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARRrZXlXaXRoZHJhd2FsUmVxdWVzdAIFC3VzZXJBZGRyZXNzBQR0eElkCQEHd3JhcEVycgECGmludmFsaWQgd2l0aGRyYXdhbCByZXF1ZXN0BAskdDA5Njg5OTgwMgkBIXBhcnNlV2l0aGRyYXdhbFJlcXVlc3RWYWx1ZU9yRmFpbAEFF3dpdGhkcmF3YWxSZXF1ZXN0T3B0aW9uBAZzdGF0dXMIBQskdDA5Njg5OTgwMgJfMQQNbHBBc3NldEFtb3VudAgFCyR0MDk2ODk5ODAyAl8yBAx0YXJnZXRQZXJpb2QIBQskdDA5Njg5OTgwMgJfMwQJY2xhaW1UeElkCAULJHQwOTY4OTk4MDICXzQDCQAAAgUGc3RhdHVzBQhGSU5JU0hFRAkBCHRocm93RXJyAQIhaW52YWxpZCB3aXRoZHJhd2FsIHJlcXVlc3Qgc3RhdHVzAwkAZgIFDHRhcmdldFBlcmlvZAUTY3VycmVudFBlcmlvZE9yRmFpbAkBCHRocm93RXJyAQIhaW52YWxpZCB3aXRoZHJhd2FsIHJlcXVlc3QgcGVyaW9kBBJjdXJyZW50UHJpY2VPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEWtleVByaWNlRm9yUGVyaW9kAQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAg1pbnZhbGlkIHByaWNlBAZhbW91bnQDCQBmAgUSY3VycmVudFByaWNlT3JGYWlsAAAJAGsDBQ1scEFzc2V0QW1vdW50BRJjdXJyZW50UHJpY2VPckZhaWwFBlNDQUxFOAAABA5mYWN0b3J5QWN0aW9ucwkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgtzdHJpbmdFbnRyeQkAzAgCCQEUa2V5V2l0aGRyYXdhbFJlcXVlc3QCBQt1c2VyQWRkcmVzcwUEdHhJZAkAzAgCCQEWdmFsdWVXaXRoZHJhd2FsUmVxdWVzdAQFCEZJTklTSEVEBQ1scEFzc2V0QW1vdW50BQx0YXJnZXRQZXJpb2QIBQFpDXRyYW5zYWN0aW9uSWQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCBGJ1cm4JAMwIAgUNbHBBc3NldEFtb3VudAUDbmlsBQNuaWwJAMwIAgkA/AcEBRRmYWN0b3J5QWRkcmVzc09yRmFpbAINdHJhbnNmZXJXYXZlcwkAzAgCBRB1c2VyQWRkcmVzc0J5dGVzCQDMCAIFBmFtb3VudAUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFDmZhY3RvcnlBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDXByb2Nlc3NCbG9ja3MBEHVzZXJBZGRyZXNzQnl0ZXMEC2NoZWNrQ2FsbGVyCQELb25seUZhY3RvcnkBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQLdXNlckFkZHJlc3MJAQdBZGRyZXNzAQUQdXNlckFkZHJlc3NCeXRlcwQTY3VycmVudFBlcmlvZE9yRmFpbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEQa2V5Q3VycmVudFBlcmlvZAAJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QEDHBlcmlvZExlbmd0aAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEPa2V5UGVyaW9kTGVuZ3RoAAkBB3dyYXBFcnIBAhVpbnZhbGlkIHBlcmlvZCBsZW5ndGgEEmN1cnJlbnRTdGFydEhlaWdodAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFFGZhY3RvcnlBZGRyZXNzT3JGYWlsCQEOa2V5U3RhcnRIZWlnaHQBBRNjdXJyZW50UGVyaW9kT3JGYWlsCQEHd3JhcEVycgECFGludmFsaWQgc3RhcnQgaGVpZ2h0BBJjdXJyZW50UHJpY2VPckZhaWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBEWtleVByaWNlRm9yUGVyaW9kAQUTY3VycmVudFBlcmlvZE9yRmFpbAkBB3dyYXBFcnIBAg1pbnZhbGlkIHByaWNlBBJuZXh0QmxvY2tUb1Byb2Nlc3MJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRRmYWN0b3J5QWRkcmVzc09yRmFpbAkBFWtleU5leHRCbG9ja1RvUHJvY2VzcwAJAQd3cmFwRXJyAQIdaW52YWxpZCBuZXh0IGJsb2NrIHRvIHByb2Nlc3MED3BlcmlvZEVuZEhlaWdodAkAZQIJAGQCBRJjdXJyZW50U3RhcnRIZWlnaHQFDHBlcmlvZExlbmd0aAABBBxibG9ja3NQcm9jZXNzaW5nQmF0Y2hTaXplTWF4AAUEGWJsb2Nrc1Byb2Nlc3NpbmdCYXRjaFNpemUDAwMJAGcCBQZoZWlnaHQFEm5leHRCbG9ja1RvUHJvY2VzcwMJAGcCBRJuZXh0QmxvY2tUb1Byb2Nlc3MFEmN1cnJlbnRTdGFydEhlaWdodAYJAAACBRNjdXJyZW50UGVyaW9kT3JGYWlsAAAHCQBnAgUPcGVyaW9kRW5kSGVpZ2h0BRJuZXh0QmxvY2tUb1Byb2Nlc3MHCQCXAwEJAMwIAgkAZAIJAGUCBQ9wZXJpb2RFbmRIZWlnaHQFEm5leHRCbG9ja1RvUHJvY2VzcwABCQDMCAIFHGJsb2Nrc1Byb2Nlc3NpbmdCYXRjaFNpemVNYXgFA25pbAkBCHRocm93RXJyAQkBB3dyYXBFcnIBAhRpbnZhbGlkIHRhcmdldCBibG9jawQVYmxvY2tQcm9jZXNzaW5nUmV3YXJkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJARhrZXlCbG9ja1Byb2Nlc3NpbmdSZXdhcmQACQEHd3JhcEVycgECH2ludmFsaWQgYmxvY2sgcHJvY2Vzc2luZyByZXdhcmQEIGJsb2NrUHJvY2Vzc2luZ1Jld2FyZEJ5R2VuZXJhdG9yCQBpAgUVYmxvY2tQcm9jZXNzaW5nUmV3YXJkBRlibG9ja3NQcm9jZXNzaW5nQmF0Y2hTaXplBClibG9ja1Byb2Nlc3NpbmdSZXdhcmRCeUdlbmVyYXRvclJlbWFpbmRlcgkAZQIFFWJsb2NrUHJvY2Vzc2luZ1Jld2FyZAkAaAIFIGJsb2NrUHJvY2Vzc2luZ1Jld2FyZEJ5R2VuZXJhdG9yBRlibG9ja3NQcm9jZXNzaW5nQmF0Y2hTaXplCgEDbWFwAgNhY2MDaW5jAwkAZwIFA2luYwUZYmxvY2tzUHJvY2Vzc2luZ0JhdGNoU2l6ZQUDYWNjBBF0YXJnZXRCbG9ja0hlaWdodAkAZAIFEm5leHRCbG9ja1RvUHJvY2VzcwUDaW5jBA90YXJnZXRCbG9ja0luZm8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7QcBBRF0YXJnZXRCbG9ja0hlaWdodAkBB3dyYXBFcnIBAhJpbnZhbGlkIGJsb2NrIGluZm8EFHRyZWFzdXJ5UmV3YXJkT3JGYWlsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAQ9yZXdhcmRGb3JPcHRpb24CCAUPdGFyZ2V0QmxvY2tJbmZvB3Jld2FyZHMFFXRyZWFzdXJ5QWRkcmVzc09yRmFpbAkBB3dyYXBFcnIBCQCsAgICI2ludmFsaWQgdHJlYXN1cnkgcmV3YXJkIGZvciBoZWlnaHQgCQCkAwEFEXRhcmdldEJsb2NrSGVpZ2h0BAlnZW5lcmF0b3IIBQ90YXJnZXRCbG9ja0luZm8JZ2VuZXJhdG9yBAlhdmFpbGFibGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUUZmFjdG9yeUFkZHJlc3NPckZhaWwJAQxrZXlBdmFpbGFibGUBBQlnZW5lcmF0b3IAAAQNbHBBc3NldEFtb3VudAMJAGYCBRJjdXJyZW50UHJpY2VPckZhaWwAAAkAawMJAGUCBRR0cmVhc3VyeVJld2FyZE9yRmFpbAUgYmxvY2tQcm9jZXNzaW5nUmV3YXJkQnlHZW5lcmF0b3IFBlNDQUxFOAUSY3VycmVudFByaWNlT3JGYWlsAAAEFGZhY3RvcnlBY3Rpb25zU2luZ2xlCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDGludGVnZXJFbnRyeQkAzAgCCQERa2V5QmxvY2tQcm9jZXNzZWQBBRF0YXJnZXRCbG9ja0hlaWdodAkAzAgCBQ1scEFzc2V0QW1vdW50BQNuaWwFA25pbAkAzAgCCQD8BwQFFGZhY3RvcnlBZGRyZXNzT3JGYWlsAgxpbnRlZ2VyRW50cnkJAMwIAgkBDGtleUF2YWlsYWJsZQEFCWdlbmVyYXRvcgkAzAgCCQBkAgUJYXZhaWxhYmxlBQ1scEFzc2V0QW1vdW50BQNuaWwFA25pbAUDbmlsAwkAAAIFFGZhY3RvcnlBY3Rpb25zU2luZ2xlBRRmYWN0b3J5QWN0aW9uc1NpbmdsZQQMY2FsbGVyUmV3YXJkAwkAAAIFA2luYwkAZQIFGWJsb2Nrc1Byb2Nlc3NpbmdCYXRjaFNpemUAAQkAZAIFIGJsb2NrUHJvY2Vzc2luZ1Jld2FyZEJ5R2VuZXJhdG9yBSlibG9ja1Byb2Nlc3NpbmdSZXdhcmRCeUdlbmVyYXRvclJlbWFpbmRlcgUgYmxvY2tQcm9jZXNzaW5nUmV3YXJkQnlHZW5lcmF0b3IJAGQCBQNhY2MFDGNhbGxlclJld2FyZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQMY2FsbGVyUmV3YXJkCgACJGwJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAUDbmlsCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNtYXACBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAwkAAAIFDGNhbGxlclJld2FyZAUMY2FsbGVyUmV3YXJkBAdhY3Rpb25zCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDXRyYW5zZmVyV2F2ZXMJAMwIAgUQdXNlckFkZHJlc3NCeXRlcwkAzAgCBQxjYWxsZXJSZXdhcmQFA25pbAUDbmlsCQDMCAIJAPwHBAUUZmFjdG9yeUFkZHJlc3NPckZhaWwCDGludGVnZXJFbnRyeQkAzAgCCQEVa2V5TmV4dEJsb2NrVG9Qcm9jZXNzAAkAzAgCCQBkAgUSbmV4dEJsb2NrVG9Qcm9jZXNzBRlibG9ja3NQcm9jZXNzaW5nQmF0Y2hTaXplBQNuaWwFA25pbAUDbmlsAwkAAAIFB2FjdGlvbnMFB2FjdGlvbnMJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleRC/GPE=", "height": 2615263, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FtF2bR4vkEcAYznJEojvHBjTbdtSXf3GPcjJujzzRHMA Next: 4KCq3DJDXS3JC2Yjw5ygS9nK9YtTP3eJouE1x76vHZaM Diff:
OldNewDifferences
5050 func u () = "%s__nextBlockToProcess"
5151
5252
53-func v (m,w) = makeString(["%s%s%s", "withdrawal", toString(m), toBase58String(w)], a)
53+func v (w) = makeString(["%s%d", "blockProcessed", toString(w)], a)
5454
5555
56-func x (y,z,A,B) = {
57- let C = {
58- let D = B
59- if ($isInstanceOf(D, "ByteVector"))
56+func x (m,y) = makeString(["%s%s%s", "withdrawal", toString(m), toBase58String(y)], a)
57+
58+
59+func z (A,B,C,D) = {
60+ let E = {
61+ let F = D
62+ if ($isInstanceOf(F, "ByteVector"))
6063 then {
61- let E = D
62- toBase58String(E)
64+ let G = F
65+ toBase58String(G)
6366 }
64- else if ($isInstanceOf(D, "Unit"))
67+ else if ($isInstanceOf(F, "Unit"))
6568 then "SOON"
6669 else throw("Match error")
6770 }
68- makeString(["%s%d%d%s", y, toString(z), toString(A), C], a)
71+ makeString(["%s%d%d%s", A, toString(B), toString(C), E], a)
6972 }
7073
7174
72-func F (g) = {
73- let G = split(g, a)
74- if ((size(G) == 5))
75+func H (g) = {
76+ let I = split(g, a)
77+ if ((size(I) == 5))
7578 then {
76- let y = G[1]
77- let z = valueOrErrorMessage(parseInt(G[2]), f("invalid lpAssetAmount"))
78- let A = valueOrErrorMessage(parseInt(G[3]), f("invalid targetPeriod"))
79- let B = G[4]
80- $Tuple4(y, z, A, B)
79+ let A = I[1]
80+ let B = valueOrErrorMessage(parseInt(I[2]), f("invalid lpAssetAmount"))
81+ let C = valueOrErrorMessage(parseInt(I[3]), f("invalid targetPeriod"))
82+ let D = I[4]
83+ $Tuple4(A, B, C, D)
8184 }
8285 else h("invalid withdrawal request value")
8386 }
8487
8588
86-let H = {
87- let D = getString(this, i())
88- if ($isInstanceOf(D, "String"))
89+let J = {
90+ let F = getString(this, i())
91+ if ($isInstanceOf(F, "String"))
8992 then {
90- let g = D
93+ let g = F
9194 addressFromString(g)
9295 }
93- else if ($isInstanceOf(D, "Unit"))
96+ else if ($isInstanceOf(F, "Unit"))
9497 then unit
9598 else throw("Match error")
9699 }
97100
98-let I = valueOrErrorMessage(H, f("invalid factory address"))
101+let K = valueOrErrorMessage(J, f("invalid factory address"))
99102
100-let J = {
101- let D = H
102- if ($isInstanceOf(D, "Address"))
103+let L = {
104+ let F = J
105+ if ($isInstanceOf(F, "Address"))
103106 then {
104- let K = D
105- let L = getString(K, j())
106- if ($isInstanceOf(L, "String"))
107+ let M = F
108+ let N = getString(M, j())
109+ if ($isInstanceOf(N, "String"))
107110 then {
108- let g = L
111+ let g = N
109112 fromBase58String(g)
110113 }
111- else if ($isInstanceOf(L, "Unit"))
114+ else if ($isInstanceOf(N, "Unit"))
112115 then unit
113116 else throw("Match error")
114117 }
115- else if ($isInstanceOf(D, "Unit"))
118+ else if ($isInstanceOf(F, "Unit"))
116119 then unit
117120 else throw("Match error")
118121 }
119122
120-let M = valueOrErrorMessage(J, f("invalid lpAssetId"))
123+let O = valueOrErrorMessage(L, f("invalid lpAssetId"))
121124
122-let N = {
123- let D = H
124- if ($isInstanceOf(D, "Address"))
125+let P = {
126+ let F = J
127+ if ($isInstanceOf(F, "Address"))
125128 then {
126- let K = D
127- let L = getString(K, k())
128- if ($isInstanceOf(L, "String"))
129+ let M = F
130+ let N = getString(M, k())
131+ if ($isInstanceOf(N, "String"))
129132 then {
130- let g = L
133+ let g = N
131134 addressFromString(g)
132135 }
133- else if ($isInstanceOf(L, "Unit"))
136+ else if ($isInstanceOf(N, "Unit"))
134137 then unit
135138 else throw("Match error")
136139 }
137- else if ($isInstanceOf(D, "Unit"))
140+ else if ($isInstanceOf(F, "Unit"))
138141 then unit
139142 else throw("Match error")
140143 }
141144
142-let O = valueOrErrorMessage(N, f("invalid treasury address"))
145+let Q = valueOrErrorMessage(P, f("invalid treasury address"))
143146
144-func P (Q,R) = if ((Q.caller == R))
147+func R (S,T) = if ((S.caller == T))
145148 then true
146149 else h("permission denied")
147150
148151
149-func S (Q) = P(Q, I)
152+func U (S) = R(S, K)
150153
151154
152-func T (U,V) = {
153- let g = size(U)
154- let W = U[0]
155- let X = W._1
156- let Y = W._2
157- let Z = U[1]
158- let aa = Z._1
159- let ab = Z._2
160- let ac = U[2]
161- let ad = ac._1
162- let ae = ac._2
155+func V (W,X) = {
156+ let g = size(W)
157+ let Y = W[0]
158+ let Z = Y._1
159+ let aa = Y._2
160+ let ab = W[1]
161+ let ac = ab._1
162+ let ad = ab._2
163+ let ae = W[2]
164+ let af = ae._1
165+ let ag = ae._2
163166 if (if ((g > 0))
164- then (X == V)
167+ then (Z == X)
165168 else false)
166- then Y
169+ then aa
167170 else if (if ((g > 1))
168- then (aa == V)
171+ then (ac == X)
169172 else false)
170- then ab
173+ then ad
171174 else if (if ((g > 2))
172- then (ad == V)
175+ then (af == X)
173176 else false)
174- then ae
177+ then ag
175178 else unit
176179 }
177180
178181
179-@Callable(Q)
180-func claimLP (af) = {
181- let ag = S(Q)
182- if ((ag == ag))
182+@Callable(S)
183+func claimLP (ah) = {
184+ let ai = U(S)
185+ if ((ai == ai))
183186 then {
184- let m = Address(af)
185- let ah = valueOrElse(getInteger(I, l(m)), 0)
186- let ai = valueOrElse(getInteger(I, n(m)), 0)
187- let aj = if ((ah > 0))
188- then [invoke(I, "transferAsset", [af, ah, M], nil), invoke(I, "integerEntry", [l(m), 0], nil), invoke(I, "stringEntry", [n(m), (ai + ah)], nil)]
187+ let m = Address(ah)
188+ let aj = valueOrElse(getInteger(K, l(m)), 0)
189+ let ak = valueOrElse(getInteger(K, n(m)), 0)
190+ let al = if ((aj > 0))
191+ then [invoke(K, "transferAsset", [ah, aj, O], nil), invoke(K, "integerEntry", [l(m), 0], nil), invoke(K, "stringEntry", [n(m), (ak + aj)], nil)]
189192 else h("nothing to claim")
190- $Tuple2(nil, aj)
193+ $Tuple2(nil, al)
191194 }
192195 else throw("Strict value is not equal to itself.")
193196 }
194197
195198
196199
197-@Callable(Q)
198-func finalize (ak,al,am,an) = {
199- let ao = [if ((Q.originCaller == I))
200+@Callable(S)
201+func finalize (am,an,ao,ap) = {
202+ let aq = [if ((S.originCaller == K))
200203 then true
201- else h("permission denied"), if ((ak >= 0))
204+ else h("permission denied"), if ((am >= 0))
202205 then true
203- else h("invalid new treasury volume"), if ((al >= 0))
206+ else h("invalid new treasury volume"), if ((an >= 0))
204207 then true
205- else h("invalid XTN price"), if (if ((am >= 0))
206- then (c >= am)
208+ else h("invalid XTN price"), if (if ((ao >= 0))
209+ then (c >= ao)
207210 else false)
208211 then true
209- else h("invalid PWR managers bonus"), if (if ((an >= -(c)))
210- then (c >= an)
212+ else h("invalid PWR managers bonus"), if (if ((ap >= -(c)))
213+ then (c >= ap)
211214 else false)
212215 then true
213216 else h("invalid treasury volume diff allocation coefficient")]
214- if ((ao == ao))
217+ if ((aq == aq))
215218 then {
216- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
217- let aq = (ap + 1)
218- let ar = c
219- let as = 0
220- let aj = [invoke(I, "integerEntry", [o(), aq], nil), invoke(I, "integerEntry", [p(aq), ar], nil), invoke(I, "burn", [as], nil)]
221- $Tuple2(nil, aj)
219+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
220+ let as = (ar + 1)
221+ let at = c
222+ let au = 0
223+ let al = [invoke(K, "integerEntry", [o(), as], nil), invoke(K, "integerEntry", [p(as), at], nil), invoke(K, "burn", [au], nil)]
224+ $Tuple2(nil, al)
222225 }
223226 else throw("Strict value is not equal to itself.")
224227 }
225228
226229
227230
228-@Callable(Q)
229-func invest (af) = {
230- let ag = S(Q)
231- if ((ag == ag))
231+@Callable(S)
232+func invest (ah) = {
233+ let ai = U(S)
234+ if ((ai == ai))
232235 then {
233- let m = Address(af)
234- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
235- let at = valueOrErrorMessage(getInteger(I, p(ap)), f("invalid price"))
236- let au = if ((size(Q.payments) == 1))
237- then Q.payments[0]
236+ let m = Address(ah)
237+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
238+ let av = valueOrErrorMessage(getInteger(K, p(ar)), f("invalid price"))
239+ let aw = if ((size(S.payments) == 1))
240+ then S.payments[0]
238241 else h("invalid payments")
239- let av = if (if ((au.assetId == unit))
240- then (au.amount > 0)
242+ let ax = if (if ((aw.assetId == unit))
243+ then (aw.amount > 0)
241244 else false)
242- then au.amount
245+ then aw.amount
243246 else h("invalid payment amount")
244- let z = if ((at > 0))
245- then fraction(av, c, at)
247+ let B = if ((av > 0))
248+ then fraction(ax, c, av)
246249 else 0
247- let aj = [invoke(I, "integerEntry", ["invested__WAVES", 0], nil), invoke(I, "reissue", [z], nil), invoke(I, "transferAsset", [af, z, M], nil), invoke(I, "transferWaves", [O.bytes, av], [AttachedPayment(unit, av)])]
248- $Tuple2(nil, aj)
250+ let al = [invoke(K, "integerEntry", ["invested__WAVES", 0], nil), invoke(K, "reissue", [B], nil), invoke(K, "transferAsset", [ah, B, O], nil), invoke(K, "transferWaves", [Q.bytes, ax], [AttachedPayment(unit, ax)])]
251+ $Tuple2(nil, al)
249252 }
250253 else throw("Strict value is not equal to itself.")
251254 }
252255
253256
254257
255-@Callable(Q)
256-func withdraw (af) = {
257- let ag = S(Q)
258- if ((ag == ag))
258+@Callable(S)
259+func withdraw (ah) = {
260+ let ai = U(S)
261+ if ((ai == ai))
259262 then {
260- let m = Address(af)
261- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
262- let au = if ((size(Q.payments) == 1))
263- then Q.payments[0]
263+ let m = Address(ah)
264+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
265+ let aw = if ((size(S.payments) == 1))
266+ then S.payments[0]
264267 else h(f("invalid payments"))
265- let aw = if ((au.assetId == M))
266- then M
268+ let ay = if ((aw.assetId == O))
269+ then O
267270 else h("invalid payment asset")
268- let av = if ((au.amount > 0))
269- then au.amount
271+ let ax = if ((aw.amount > 0))
272+ then aw.amount
270273 else h("invalid payment amount")
271- let aj = [invoke(I, "stringEntry", [v(m, Q.transactionId), x(d, av, (ap + 1), unit)], nil)]
272- if ((aj == aj))
273- then $Tuple2([ScriptTransfer(I, av, aw)], aj)
274+ let al = [invoke(K, "stringEntry", [x(m, S.transactionId), z(d, ax, (ar + 1), unit)], nil)]
275+ if ((al == al))
276+ then $Tuple2([ScriptTransfer(K, ax, ay)], al)
274277 else throw("Strict value is not equal to itself.")
275278 }
276279 else throw("Strict value is not equal to itself.")
278281
279282
280283
281-@Callable(Q)
282-func cancelWithdraw (af,w) = {
283- let ag = S(Q)
284- if ((ag == ag))
284+@Callable(S)
285+func cancelWithdraw (ah,y) = {
286+ let ai = U(S)
287+ if ((ai == ai))
285288 then {
286- let m = Address(af)
287- let ax = valueOrErrorMessage(getString(I, v(m, w)), f("invalid withdrawal request"))
288- let ay = F(ax)
289- let y = ay._1
290- let z = ay._2
291- let A = ay._3
292- let B = ay._4
293- if ((y == d))
289+ let m = Address(ah)
290+ let az = valueOrErrorMessage(getString(K, x(m, y)), f("invalid withdrawal request"))
291+ let aA = H(az)
292+ let A = aA._1
293+ let B = aA._2
294+ let C = aA._3
295+ let D = aA._4
296+ if ((A == d))
294297 then {
295- let aj = [invoke(I, "deleteEntry", [v(m, w)], nil), invoke(I, "transferAsset", [af, z, M], nil)]
296- if ((aj == aj))
297- then $Tuple2(nil, aj)
298+ let al = [invoke(K, "deleteEntry", [x(m, y)], nil), invoke(K, "transferAsset", [ah, B, O], nil)]
299+ if ((al == al))
300+ then $Tuple2(nil, al)
298301 else throw("Strict value is not equal to itself.")
299302 }
300303 else h("invalid withdrawal request status")
304307
305308
306309
307-@Callable(Q)
308-func claimWaves (af,w) = {
309- let ag = S(Q)
310- if ((ag == ag))
310+@Callable(S)
311+func claimWaves (ah,y) = {
312+ let ai = U(S)
313+ if ((ai == ai))
311314 then {
312- let m = Address(af)
313- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
314- let ax = valueOrErrorMessage(getString(I, v(m, w)), f("invalid withdrawal request"))
315- let az = F(ax)
316- let y = az._1
317- let z = az._2
318- let A = az._3
319- let B = az._4
320- if ((y == e))
315+ let m = Address(ah)
316+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
317+ let az = valueOrErrorMessage(getString(K, x(m, y)), f("invalid withdrawal request"))
318+ let aB = H(az)
319+ let A = aB._1
320+ let B = aB._2
321+ let C = aB._3
322+ let D = aB._4
323+ if ((A == e))
321324 then h("invalid withdrawal request status")
322- else if ((A > ap))
325+ else if ((C > ar))
323326 then h("invalid withdrawal request period")
324327 else {
325- let at = valueOrErrorMessage(getInteger(I, p(ap)), f("invalid price"))
326- let aA = if ((at > 0))
327- then fraction(z, at, c)
328+ let av = valueOrErrorMessage(getInteger(K, p(ar)), f("invalid price"))
329+ let aC = if ((av > 0))
330+ then fraction(B, av, c)
328331 else 0
329- let aj = [invoke(I, "stringEntry", [v(m, w), x(e, z, A, Q.transactionId)], nil), invoke(I, "burn", [z], nil), invoke(I, "transferWaves", [af, aA], nil)]
330- $Tuple2(nil, aj)
332+ let al = [invoke(K, "stringEntry", [x(m, y), z(e, B, C, S.transactionId)], nil), invoke(K, "burn", [B], nil), invoke(K, "transferWaves", [ah, aC], nil)]
333+ $Tuple2(nil, al)
331334 }
332335 }
333336 else throw("Strict value is not equal to itself.")
335338
336339
337340
338-@Callable(Q)
339-func processBlocks (af) = {
340- let ag = S(Q)
341- if ((ag == ag))
341+@Callable(S)
342+func processBlocks (ah) = {
343+ let ai = U(S)
344+ if ((ai == ai))
342345 then {
343- let m = Address(af)
344- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
345- let aB = valueOrErrorMessage(getInteger(I, s()), f("invalid period length"))
346- let aC = valueOrErrorMessage(getInteger(I, r(ap)), f("invalid start height"))
347- let at = valueOrErrorMessage(getInteger(I, p(ap)), f("invalid price"))
348- let aD = valueOrErrorMessage(getInteger(I, u()), f("invalid next block to process"))
349- let aE = if (if (if ((height >= aD))
350- then if ((aD >= aC))
346+ let m = Address(ah)
347+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
348+ let aD = valueOrErrorMessage(getInteger(K, s()), f("invalid period length"))
349+ let aE = valueOrErrorMessage(getInteger(K, r(ar)), f("invalid start height"))
350+ let av = valueOrErrorMessage(getInteger(K, p(ar)), f("invalid price"))
351+ let aF = valueOrErrorMessage(getInteger(K, u()), f("invalid next block to process"))
352+ let aG = ((aE + aD) - 1)
353+ let aH = 5
354+ let aI = if (if (if ((height >= aF))
355+ then if ((aF >= aE))
351356 then true
352- else (ap == 0)
357+ else (ar == 0)
353358 else false)
354- then ((aC + aB) > aD)
359+ then (aG >= aF)
355360 else false)
356- then valueOrErrorMessage(blockInfoByHeight(aD), f("invalid block info"))
361+ then min([((aG - aF) + 1), aH])
357362 else h(f("invalid target block"))
358- let aF = valueOrErrorMessage(T(aE.rewards, O), f("invalid treasury reward"))
359- let aG = aE.generator
360- let aH = valueOrErrorMessage(getInteger(I, t()), f("invalid block processing reward"))
361- let ah = valueOrElse(getInteger(I, l(aG)), 0)
362- let z = if ((at > 0))
363- then fraction((aF - aH), c, at)
364- else 0
365- let aj = [invoke(I, "integerEntry", [u(), (aD + 1)], nil), invoke(I, "integerEntry", [l(aG), (ah + z)], nil), invoke(I, "transferWaves", [af, aH], nil)]
366- $Tuple2(nil, aj)
363+ let aJ = valueOrErrorMessage(getInteger(K, t()), f("invalid block processing reward"))
364+ let aK = (aJ / aI)
365+ let aL = (aJ - (aK * aI))
366+ func aM (aN,aO) = if ((aO >= aI))
367+ then aN
368+ else {
369+ let aP = (aF + aO)
370+ let aQ = valueOrErrorMessage(blockInfoByHeight(aP), f("invalid block info"))
371+ let aR = valueOrErrorMessage(V(aQ.rewards, Q), f(("invalid treasury reward for height " + toString(aP))))
372+ let aS = aQ.generator
373+ let aj = valueOrElse(getInteger(K, l(aS)), 0)
374+ let B = if ((av > 0))
375+ then fraction((aR - aK), c, av)
376+ else 0
377+ let aT = [invoke(K, "integerEntry", [v(aP), B], nil), invoke(K, "integerEntry", [l(aS), (aj + B)], nil)]
378+ if ((aT == aT))
379+ then {
380+ let aU = if ((aO == (aI - 1)))
381+ then (aK + aL)
382+ else aK
383+ (aN + aU)
384+ }
385+ else throw("Strict value is not equal to itself.")
386+ }
387+
388+ let aU = {
389+ let aV = [0, 1, 2, 3, 4]
390+ let aW = size(aV)
391+ let aX = 0
392+ func aY (aZ,ba) = if ((ba >= aW))
393+ then aZ
394+ else aM(aZ, aV[ba])
395+
396+ func bb (aZ,ba) = if ((ba >= aW))
397+ then aZ
398+ else throw("List size exceeds 5")
399+
400+ bb(aY(aY(aY(aY(aY(aX, 0), 1), 2), 3), 4), 5)
401+ }
402+ if ((aU == aU))
403+ then {
404+ let bc = [invoke(K, "transferWaves", [ah, aU], nil), invoke(K, "integerEntry", [u(), (aF + aI)], nil)]
405+ if ((bc == bc))
406+ then $Tuple2(nil, unit)
407+ else throw("Strict value is not equal to itself.")
408+ }
409+ else throw("Strict value is not equal to itself.")
367410 }
368411 else throw("Strict value is not equal to itself.")
369412 }
370413
371414
372-@Verifier(aI)
373-func aJ () = sigVerify(aI.bodyBytes, aI.proofs[0], aI.senderPublicKey)
415+@Verifier(bd)
416+func be () = sigVerify(bd.bodyBytes, bd.proofs[0], bd.senderPublicKey)
374417
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 7 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "calculator.ride"
77
88 let c = 100000000
99
1010 let d = "PENDING"
1111
1212 let e = "FINISHED"
1313
1414 func f (g) = ((b + ": ") + g)
1515
1616
1717 func h (g) = throw(f(g))
1818
1919
2020 func i () = makeString(["%s", "factory"], a)
2121
2222
2323 func j () = makeString(["%s", "lpAssetId"], a)
2424
2525
2626 func k () = makeString(["%s", "treasury"], a)
2727
2828
2929 func l (m) = makeString(["%s%s", "available", toString(m)], a)
3030
3131
3232 func n (m) = makeString(["%s%s", "claimed", toString(m)], a)
3333
3434
3535 func o () = makeString(["%s", "currentPeriod"], a)
3636
3737
3838 func p (q) = makeString(["%s%d", "price", toString(q)], a)
3939
4040
4141 func r (q) = makeString(["%s%d", "startHeight", toString(q)], a)
4242
4343
4444 func s () = "%s__periodLength"
4545
4646
4747 func t () = "%s__blockProcessingReward"
4848
4949
5050 func u () = "%s__nextBlockToProcess"
5151
5252
53-func v (m,w) = makeString(["%s%s%s", "withdrawal", toString(m), toBase58String(w)], a)
53+func v (w) = makeString(["%s%d", "blockProcessed", toString(w)], a)
5454
5555
56-func x (y,z,A,B) = {
57- let C = {
58- let D = B
59- if ($isInstanceOf(D, "ByteVector"))
56+func x (m,y) = makeString(["%s%s%s", "withdrawal", toString(m), toBase58String(y)], a)
57+
58+
59+func z (A,B,C,D) = {
60+ let E = {
61+ let F = D
62+ if ($isInstanceOf(F, "ByteVector"))
6063 then {
61- let E = D
62- toBase58String(E)
64+ let G = F
65+ toBase58String(G)
6366 }
64- else if ($isInstanceOf(D, "Unit"))
67+ else if ($isInstanceOf(F, "Unit"))
6568 then "SOON"
6669 else throw("Match error")
6770 }
68- makeString(["%s%d%d%s", y, toString(z), toString(A), C], a)
71+ makeString(["%s%d%d%s", A, toString(B), toString(C), E], a)
6972 }
7073
7174
72-func F (g) = {
73- let G = split(g, a)
74- if ((size(G) == 5))
75+func H (g) = {
76+ let I = split(g, a)
77+ if ((size(I) == 5))
7578 then {
76- let y = G[1]
77- let z = valueOrErrorMessage(parseInt(G[2]), f("invalid lpAssetAmount"))
78- let A = valueOrErrorMessage(parseInt(G[3]), f("invalid targetPeriod"))
79- let B = G[4]
80- $Tuple4(y, z, A, B)
79+ let A = I[1]
80+ let B = valueOrErrorMessage(parseInt(I[2]), f("invalid lpAssetAmount"))
81+ let C = valueOrErrorMessage(parseInt(I[3]), f("invalid targetPeriod"))
82+ let D = I[4]
83+ $Tuple4(A, B, C, D)
8184 }
8285 else h("invalid withdrawal request value")
8386 }
8487
8588
86-let H = {
87- let D = getString(this, i())
88- if ($isInstanceOf(D, "String"))
89+let J = {
90+ let F = getString(this, i())
91+ if ($isInstanceOf(F, "String"))
8992 then {
90- let g = D
93+ let g = F
9194 addressFromString(g)
9295 }
93- else if ($isInstanceOf(D, "Unit"))
96+ else if ($isInstanceOf(F, "Unit"))
9497 then unit
9598 else throw("Match error")
9699 }
97100
98-let I = valueOrErrorMessage(H, f("invalid factory address"))
101+let K = valueOrErrorMessage(J, f("invalid factory address"))
99102
100-let J = {
101- let D = H
102- if ($isInstanceOf(D, "Address"))
103+let L = {
104+ let F = J
105+ if ($isInstanceOf(F, "Address"))
103106 then {
104- let K = D
105- let L = getString(K, j())
106- if ($isInstanceOf(L, "String"))
107+ let M = F
108+ let N = getString(M, j())
109+ if ($isInstanceOf(N, "String"))
107110 then {
108- let g = L
111+ let g = N
109112 fromBase58String(g)
110113 }
111- else if ($isInstanceOf(L, "Unit"))
114+ else if ($isInstanceOf(N, "Unit"))
112115 then unit
113116 else throw("Match error")
114117 }
115- else if ($isInstanceOf(D, "Unit"))
118+ else if ($isInstanceOf(F, "Unit"))
116119 then unit
117120 else throw("Match error")
118121 }
119122
120-let M = valueOrErrorMessage(J, f("invalid lpAssetId"))
123+let O = valueOrErrorMessage(L, f("invalid lpAssetId"))
121124
122-let N = {
123- let D = H
124- if ($isInstanceOf(D, "Address"))
125+let P = {
126+ let F = J
127+ if ($isInstanceOf(F, "Address"))
125128 then {
126- let K = D
127- let L = getString(K, k())
128- if ($isInstanceOf(L, "String"))
129+ let M = F
130+ let N = getString(M, k())
131+ if ($isInstanceOf(N, "String"))
129132 then {
130- let g = L
133+ let g = N
131134 addressFromString(g)
132135 }
133- else if ($isInstanceOf(L, "Unit"))
136+ else if ($isInstanceOf(N, "Unit"))
134137 then unit
135138 else throw("Match error")
136139 }
137- else if ($isInstanceOf(D, "Unit"))
140+ else if ($isInstanceOf(F, "Unit"))
138141 then unit
139142 else throw("Match error")
140143 }
141144
142-let O = valueOrErrorMessage(N, f("invalid treasury address"))
145+let Q = valueOrErrorMessage(P, f("invalid treasury address"))
143146
144-func P (Q,R) = if ((Q.caller == R))
147+func R (S,T) = if ((S.caller == T))
145148 then true
146149 else h("permission denied")
147150
148151
149-func S (Q) = P(Q, I)
152+func U (S) = R(S, K)
150153
151154
152-func T (U,V) = {
153- let g = size(U)
154- let W = U[0]
155- let X = W._1
156- let Y = W._2
157- let Z = U[1]
158- let aa = Z._1
159- let ab = Z._2
160- let ac = U[2]
161- let ad = ac._1
162- let ae = ac._2
155+func V (W,X) = {
156+ let g = size(W)
157+ let Y = W[0]
158+ let Z = Y._1
159+ let aa = Y._2
160+ let ab = W[1]
161+ let ac = ab._1
162+ let ad = ab._2
163+ let ae = W[2]
164+ let af = ae._1
165+ let ag = ae._2
163166 if (if ((g > 0))
164- then (X == V)
167+ then (Z == X)
165168 else false)
166- then Y
169+ then aa
167170 else if (if ((g > 1))
168- then (aa == V)
171+ then (ac == X)
169172 else false)
170- then ab
173+ then ad
171174 else if (if ((g > 2))
172- then (ad == V)
175+ then (af == X)
173176 else false)
174- then ae
177+ then ag
175178 else unit
176179 }
177180
178181
179-@Callable(Q)
180-func claimLP (af) = {
181- let ag = S(Q)
182- if ((ag == ag))
182+@Callable(S)
183+func claimLP (ah) = {
184+ let ai = U(S)
185+ if ((ai == ai))
183186 then {
184- let m = Address(af)
185- let ah = valueOrElse(getInteger(I, l(m)), 0)
186- let ai = valueOrElse(getInteger(I, n(m)), 0)
187- let aj = if ((ah > 0))
188- then [invoke(I, "transferAsset", [af, ah, M], nil), invoke(I, "integerEntry", [l(m), 0], nil), invoke(I, "stringEntry", [n(m), (ai + ah)], nil)]
187+ let m = Address(ah)
188+ let aj = valueOrElse(getInteger(K, l(m)), 0)
189+ let ak = valueOrElse(getInteger(K, n(m)), 0)
190+ let al = if ((aj > 0))
191+ then [invoke(K, "transferAsset", [ah, aj, O], nil), invoke(K, "integerEntry", [l(m), 0], nil), invoke(K, "stringEntry", [n(m), (ak + aj)], nil)]
189192 else h("nothing to claim")
190- $Tuple2(nil, aj)
193+ $Tuple2(nil, al)
191194 }
192195 else throw("Strict value is not equal to itself.")
193196 }
194197
195198
196199
197-@Callable(Q)
198-func finalize (ak,al,am,an) = {
199- let ao = [if ((Q.originCaller == I))
200+@Callable(S)
201+func finalize (am,an,ao,ap) = {
202+ let aq = [if ((S.originCaller == K))
200203 then true
201- else h("permission denied"), if ((ak >= 0))
204+ else h("permission denied"), if ((am >= 0))
202205 then true
203- else h("invalid new treasury volume"), if ((al >= 0))
206+ else h("invalid new treasury volume"), if ((an >= 0))
204207 then true
205- else h("invalid XTN price"), if (if ((am >= 0))
206- then (c >= am)
208+ else h("invalid XTN price"), if (if ((ao >= 0))
209+ then (c >= ao)
207210 else false)
208211 then true
209- else h("invalid PWR managers bonus"), if (if ((an >= -(c)))
210- then (c >= an)
212+ else h("invalid PWR managers bonus"), if (if ((ap >= -(c)))
213+ then (c >= ap)
211214 else false)
212215 then true
213216 else h("invalid treasury volume diff allocation coefficient")]
214- if ((ao == ao))
217+ if ((aq == aq))
215218 then {
216- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
217- let aq = (ap + 1)
218- let ar = c
219- let as = 0
220- let aj = [invoke(I, "integerEntry", [o(), aq], nil), invoke(I, "integerEntry", [p(aq), ar], nil), invoke(I, "burn", [as], nil)]
221- $Tuple2(nil, aj)
219+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
220+ let as = (ar + 1)
221+ let at = c
222+ let au = 0
223+ let al = [invoke(K, "integerEntry", [o(), as], nil), invoke(K, "integerEntry", [p(as), at], nil), invoke(K, "burn", [au], nil)]
224+ $Tuple2(nil, al)
222225 }
223226 else throw("Strict value is not equal to itself.")
224227 }
225228
226229
227230
228-@Callable(Q)
229-func invest (af) = {
230- let ag = S(Q)
231- if ((ag == ag))
231+@Callable(S)
232+func invest (ah) = {
233+ let ai = U(S)
234+ if ((ai == ai))
232235 then {
233- let m = Address(af)
234- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
235- let at = valueOrErrorMessage(getInteger(I, p(ap)), f("invalid price"))
236- let au = if ((size(Q.payments) == 1))
237- then Q.payments[0]
236+ let m = Address(ah)
237+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
238+ let av = valueOrErrorMessage(getInteger(K, p(ar)), f("invalid price"))
239+ let aw = if ((size(S.payments) == 1))
240+ then S.payments[0]
238241 else h("invalid payments")
239- let av = if (if ((au.assetId == unit))
240- then (au.amount > 0)
242+ let ax = if (if ((aw.assetId == unit))
243+ then (aw.amount > 0)
241244 else false)
242- then au.amount
245+ then aw.amount
243246 else h("invalid payment amount")
244- let z = if ((at > 0))
245- then fraction(av, c, at)
247+ let B = if ((av > 0))
248+ then fraction(ax, c, av)
246249 else 0
247- let aj = [invoke(I, "integerEntry", ["invested__WAVES", 0], nil), invoke(I, "reissue", [z], nil), invoke(I, "transferAsset", [af, z, M], nil), invoke(I, "transferWaves", [O.bytes, av], [AttachedPayment(unit, av)])]
248- $Tuple2(nil, aj)
250+ let al = [invoke(K, "integerEntry", ["invested__WAVES", 0], nil), invoke(K, "reissue", [B], nil), invoke(K, "transferAsset", [ah, B, O], nil), invoke(K, "transferWaves", [Q.bytes, ax], [AttachedPayment(unit, ax)])]
251+ $Tuple2(nil, al)
249252 }
250253 else throw("Strict value is not equal to itself.")
251254 }
252255
253256
254257
255-@Callable(Q)
256-func withdraw (af) = {
257- let ag = S(Q)
258- if ((ag == ag))
258+@Callable(S)
259+func withdraw (ah) = {
260+ let ai = U(S)
261+ if ((ai == ai))
259262 then {
260- let m = Address(af)
261- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
262- let au = if ((size(Q.payments) == 1))
263- then Q.payments[0]
263+ let m = Address(ah)
264+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
265+ let aw = if ((size(S.payments) == 1))
266+ then S.payments[0]
264267 else h(f("invalid payments"))
265- let aw = if ((au.assetId == M))
266- then M
268+ let ay = if ((aw.assetId == O))
269+ then O
267270 else h("invalid payment asset")
268- let av = if ((au.amount > 0))
269- then au.amount
271+ let ax = if ((aw.amount > 0))
272+ then aw.amount
270273 else h("invalid payment amount")
271- let aj = [invoke(I, "stringEntry", [v(m, Q.transactionId), x(d, av, (ap + 1), unit)], nil)]
272- if ((aj == aj))
273- then $Tuple2([ScriptTransfer(I, av, aw)], aj)
274+ let al = [invoke(K, "stringEntry", [x(m, S.transactionId), z(d, ax, (ar + 1), unit)], nil)]
275+ if ((al == al))
276+ then $Tuple2([ScriptTransfer(K, ax, ay)], al)
274277 else throw("Strict value is not equal to itself.")
275278 }
276279 else throw("Strict value is not equal to itself.")
277280 }
278281
279282
280283
281-@Callable(Q)
282-func cancelWithdraw (af,w) = {
283- let ag = S(Q)
284- if ((ag == ag))
284+@Callable(S)
285+func cancelWithdraw (ah,y) = {
286+ let ai = U(S)
287+ if ((ai == ai))
285288 then {
286- let m = Address(af)
287- let ax = valueOrErrorMessage(getString(I, v(m, w)), f("invalid withdrawal request"))
288- let ay = F(ax)
289- let y = ay._1
290- let z = ay._2
291- let A = ay._3
292- let B = ay._4
293- if ((y == d))
289+ let m = Address(ah)
290+ let az = valueOrErrorMessage(getString(K, x(m, y)), f("invalid withdrawal request"))
291+ let aA = H(az)
292+ let A = aA._1
293+ let B = aA._2
294+ let C = aA._3
295+ let D = aA._4
296+ if ((A == d))
294297 then {
295- let aj = [invoke(I, "deleteEntry", [v(m, w)], nil), invoke(I, "transferAsset", [af, z, M], nil)]
296- if ((aj == aj))
297- then $Tuple2(nil, aj)
298+ let al = [invoke(K, "deleteEntry", [x(m, y)], nil), invoke(K, "transferAsset", [ah, B, O], nil)]
299+ if ((al == al))
300+ then $Tuple2(nil, al)
298301 else throw("Strict value is not equal to itself.")
299302 }
300303 else h("invalid withdrawal request status")
301304 }
302305 else throw("Strict value is not equal to itself.")
303306 }
304307
305308
306309
307-@Callable(Q)
308-func claimWaves (af,w) = {
309- let ag = S(Q)
310- if ((ag == ag))
310+@Callable(S)
311+func claimWaves (ah,y) = {
312+ let ai = U(S)
313+ if ((ai == ai))
311314 then {
312- let m = Address(af)
313- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
314- let ax = valueOrErrorMessage(getString(I, v(m, w)), f("invalid withdrawal request"))
315- let az = F(ax)
316- let y = az._1
317- let z = az._2
318- let A = az._3
319- let B = az._4
320- if ((y == e))
315+ let m = Address(ah)
316+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
317+ let az = valueOrErrorMessage(getString(K, x(m, y)), f("invalid withdrawal request"))
318+ let aB = H(az)
319+ let A = aB._1
320+ let B = aB._2
321+ let C = aB._3
322+ let D = aB._4
323+ if ((A == e))
321324 then h("invalid withdrawal request status")
322- else if ((A > ap))
325+ else if ((C > ar))
323326 then h("invalid withdrawal request period")
324327 else {
325- let at = valueOrErrorMessage(getInteger(I, p(ap)), f("invalid price"))
326- let aA = if ((at > 0))
327- then fraction(z, at, c)
328+ let av = valueOrErrorMessage(getInteger(K, p(ar)), f("invalid price"))
329+ let aC = if ((av > 0))
330+ then fraction(B, av, c)
328331 else 0
329- let aj = [invoke(I, "stringEntry", [v(m, w), x(e, z, A, Q.transactionId)], nil), invoke(I, "burn", [z], nil), invoke(I, "transferWaves", [af, aA], nil)]
330- $Tuple2(nil, aj)
332+ let al = [invoke(K, "stringEntry", [x(m, y), z(e, B, C, S.transactionId)], nil), invoke(K, "burn", [B], nil), invoke(K, "transferWaves", [ah, aC], nil)]
333+ $Tuple2(nil, al)
331334 }
332335 }
333336 else throw("Strict value is not equal to itself.")
334337 }
335338
336339
337340
338-@Callable(Q)
339-func processBlocks (af) = {
340- let ag = S(Q)
341- if ((ag == ag))
341+@Callable(S)
342+func processBlocks (ah) = {
343+ let ai = U(S)
344+ if ((ai == ai))
342345 then {
343- let m = Address(af)
344- let ap = valueOrErrorMessage(getInteger(I, o()), f("invalid period"))
345- let aB = valueOrErrorMessage(getInteger(I, s()), f("invalid period length"))
346- let aC = valueOrErrorMessage(getInteger(I, r(ap)), f("invalid start height"))
347- let at = valueOrErrorMessage(getInteger(I, p(ap)), f("invalid price"))
348- let aD = valueOrErrorMessage(getInteger(I, u()), f("invalid next block to process"))
349- let aE = if (if (if ((height >= aD))
350- then if ((aD >= aC))
346+ let m = Address(ah)
347+ let ar = valueOrErrorMessage(getInteger(K, o()), f("invalid period"))
348+ let aD = valueOrErrorMessage(getInteger(K, s()), f("invalid period length"))
349+ let aE = valueOrErrorMessage(getInteger(K, r(ar)), f("invalid start height"))
350+ let av = valueOrErrorMessage(getInteger(K, p(ar)), f("invalid price"))
351+ let aF = valueOrErrorMessage(getInteger(K, u()), f("invalid next block to process"))
352+ let aG = ((aE + aD) - 1)
353+ let aH = 5
354+ let aI = if (if (if ((height >= aF))
355+ then if ((aF >= aE))
351356 then true
352- else (ap == 0)
357+ else (ar == 0)
353358 else false)
354- then ((aC + aB) > aD)
359+ then (aG >= aF)
355360 else false)
356- then valueOrErrorMessage(blockInfoByHeight(aD), f("invalid block info"))
361+ then min([((aG - aF) + 1), aH])
357362 else h(f("invalid target block"))
358- let aF = valueOrErrorMessage(T(aE.rewards, O), f("invalid treasury reward"))
359- let aG = aE.generator
360- let aH = valueOrErrorMessage(getInteger(I, t()), f("invalid block processing reward"))
361- let ah = valueOrElse(getInteger(I, l(aG)), 0)
362- let z = if ((at > 0))
363- then fraction((aF - aH), c, at)
364- else 0
365- let aj = [invoke(I, "integerEntry", [u(), (aD + 1)], nil), invoke(I, "integerEntry", [l(aG), (ah + z)], nil), invoke(I, "transferWaves", [af, aH], nil)]
366- $Tuple2(nil, aj)
363+ let aJ = valueOrErrorMessage(getInteger(K, t()), f("invalid block processing reward"))
364+ let aK = (aJ / aI)
365+ let aL = (aJ - (aK * aI))
366+ func aM (aN,aO) = if ((aO >= aI))
367+ then aN
368+ else {
369+ let aP = (aF + aO)
370+ let aQ = valueOrErrorMessage(blockInfoByHeight(aP), f("invalid block info"))
371+ let aR = valueOrErrorMessage(V(aQ.rewards, Q), f(("invalid treasury reward for height " + toString(aP))))
372+ let aS = aQ.generator
373+ let aj = valueOrElse(getInteger(K, l(aS)), 0)
374+ let B = if ((av > 0))
375+ then fraction((aR - aK), c, av)
376+ else 0
377+ let aT = [invoke(K, "integerEntry", [v(aP), B], nil), invoke(K, "integerEntry", [l(aS), (aj + B)], nil)]
378+ if ((aT == aT))
379+ then {
380+ let aU = if ((aO == (aI - 1)))
381+ then (aK + aL)
382+ else aK
383+ (aN + aU)
384+ }
385+ else throw("Strict value is not equal to itself.")
386+ }
387+
388+ let aU = {
389+ let aV = [0, 1, 2, 3, 4]
390+ let aW = size(aV)
391+ let aX = 0
392+ func aY (aZ,ba) = if ((ba >= aW))
393+ then aZ
394+ else aM(aZ, aV[ba])
395+
396+ func bb (aZ,ba) = if ((ba >= aW))
397+ then aZ
398+ else throw("List size exceeds 5")
399+
400+ bb(aY(aY(aY(aY(aY(aX, 0), 1), 2), 3), 4), 5)
401+ }
402+ if ((aU == aU))
403+ then {
404+ let bc = [invoke(K, "transferWaves", [ah, aU], nil), invoke(K, "integerEntry", [u(), (aF + aI)], nil)]
405+ if ((bc == bc))
406+ then $Tuple2(nil, unit)
407+ else throw("Strict value is not equal to itself.")
408+ }
409+ else throw("Strict value is not equal to itself.")
367410 }
368411 else throw("Strict value is not equal to itself.")
369412 }
370413
371414
372-@Verifier(aI)
373-func aJ () = sigVerify(aI.bodyBytes, aI.proofs[0], aI.senderPublicKey)
415+@Verifier(bd)
416+func be () = sigVerify(bd.bodyBytes, bd.proofs[0], bd.senderPublicKey)
374417

github/deemru/w8io/169f3d6 
116.61 ms