tx · 6TPcFqN6ay2f4VK454xT1rFybx3knUMM4fLH3MMANeE8

3MxN27tyS9DuFsab1QSfM5Q2BfauiyVCr4M:  -0.03700000 Waves

2023.04.17 20:05 [2538841] smart account 3MxN27tyS9DuFsab1QSfM5Q2BfauiyVCr4M > SELF 0.00000000 Waves

{ "type": 13, "id": "6TPcFqN6ay2f4VK454xT1rFybx3knUMM4fLH3MMANeE8", "fee": 3700000, "feeAssetId": null, "timestamp": 1681751195328, "version": 2, "chainId": 84, "sender": "3MxN27tyS9DuFsab1QSfM5Q2BfauiyVCr4M", "senderPublicKey": "6PjNBLx8VTTNLWTS5y6zecyVfYCUC9ZCrAULFnLQU4XM", "proofs": [ "MqjTTAoitV1Mzfjk9HkLU2c2o3ikkNoDtVnnFKnJrmbTzXKT6rR3ogiRd7LwyGTZsCxpEaxTFw1s1JMA6pkcEeB" ], "script": "base64:BgIXCAISABIECgIICBIDCgEIEgASBAoCCAErABBrX3JlZl9saW5rX293bmVyAhBrX3JlZl9saW5rX293bmVyABZrX3JlZl9saW5rX293bmVyX2NvdW50AhZrX3JlZl9saW5rX293bmVyX2NvdW50ABBrX3JlZl9vd25lcl9saW5rAhBrX3JlZl9vd25lcl9saW5rAAprX3JlZmVycmVyAgprX3JlZmVycmVyAAhrX2FjdGl2ZQIIa19hY3RpdmUADGtfZGVmYXVsdEZlZQIMa19kZWZhdWx0RmVlABRrX3JlZmVycmVyX3JlZl9jb3VudAIUa19yZWZlcnJlcl9yZWZfY291bnQAEWtfcmVmZXJyZXJfZWFybmVkAhFrX3JlZmVycmVyX2Vhcm5lZAASa19yZWZlcnJlcl9jbGFpbWVkAhJrX3JlZmVycmVyX2NsYWltZWQADWtfaW5pdGlhbGl6ZWQCDWtfaW5pdGlhbGl6ZWQAFGtfY29vcmRpbmF0b3JBZGRyZXNzAhRrX2Nvb3JkaW5hdG9yQWRkcmVzcwAHa19jaGlsZAIHa19jaGlsZAASa19nb3Zlcm5hbmNlX2Fzc2V0AgtrX2dvdl9hc3NldAAPa19hZG1pbl9hZGRyZXNzAg9rX2FkbWluX2FkZHJlc3MABWtfYW1tAgVrX2FtbQAOa19zd2FwX2FkZHJlc3MCDmtfc3dhcF9hZGRyZXNzAQ50b0NvbXBvc2l0ZUtleQIEX2tleQhfYWRkcmVzcwkArAICCQCsAgIFBF9rZXkCAV8FCF9hZGRyZXNzARJnZXRSZWZlcnJlckxpbmtLZXkBBV9saW5rCQCsAgIJAKwCAgUQa19yZWZfbGlua19vd25lcgIBXwUFX2xpbmsBDmdldFJlZmVycmVyS2V5AQdfdHJhZGVyCQCsAgIJAKwCAgUKa19yZWZlcnJlcgIBXwUHX3RyYWRlcgEWZ2V0UmVmZXJyZXJSZWZDb3VudEtleQEJX3JlZmVycmVyCQCsAgIJAKwCAgUUa19yZWZlcnJlcl9yZWZfY291bnQCAV8FCV9yZWZlcnJlcgEXZ2V0UmVmZXJyZXJMaW5rQ291bnRLZXkBCV9yZWZlcnJlcgkArAICCQCsAgIFFmtfcmVmX2xpbmtfb3duZXJfY291bnQCAV8FCV9yZWZlcnJlcgEUZ2V0UmVmZXJyZXJMaW5rS2V5QXQCCV9yZWZlcnJlcgdfbGlua0lkCQCsAgIJAKwCAgkArAICCQCsAgIFEGtfcmVmX293bmVyX2xpbmsCAV8FCV9yZWZlcnJlcgIBXwkApAMBBQdfbGlua0lkARRnZXRSZWZlcnJlckVhcm5lZEtleQEJX3JlZmVycmVyCQCsAgIJAKwCAgURa19yZWZlcnJlcl9lYXJuZWQCAV8FCV9yZWZlcnJlcgEVZ2V0UmVmZXJyZXJDbGFpbWVkS2V5AQlfcmVmZXJyZXIJAKwCAgkArAICBRJrX3JlZmVycmVyX2NsYWltZWQCAV8FCV9yZWZlcnJlcgEMZ2V0QWN0aXZlS2V5AQdfdHJhZGVyCQCsAgIJAKwCAgUIa19hY3RpdmUCAV8FB190cmFkZXIBC2Nvb3JkaW5hdG9yAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBRRrX2Nvb3JkaW5hdG9yQWRkcmVzcwITQ29vcmRpbmF0b3Igbm90IHNldAIbQ29vcmRpbmF0b3IgYWRkcmVzcyBpbnZhbGlkAQxhZG1pbkFkZHJlc3MACQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQELY29vcmRpbmF0b3IABQ9rX2FkbWluX2FkZHJlc3MCFUFkbWluIGFkZHJlc3Mgbm90IHNldAEPZ292ZXJuYW5jZUFzc2V0AAkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBC2Nvb3JkaW5hdG9yAAUSa19nb3Zlcm5hbmNlX2Fzc2V0AhhHb3Zlcm5hbmNlIGFzc2V0IG5vdCBzZXQBC3N3YXBBZGRyZXNzAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQELY29vcmRpbmF0b3IABQ5rX3N3YXBfYWRkcmVzcwIUU3dhcCBhZGRyZXNzIG5vdCBzZXQCFFN3YXAgYWRkcmVzcyBpbnZhbGlkAQtpc1doaXRlbGlzdAEIX2FkZHJlc3MED3Jvb3RDb29yZGluYXRvcgkBC2Nvb3JkaW5hdG9yAAQOYW1tQ29vcmRpbmF0b3IJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQhfYWRkcmVzcwUUa19jb29yZGluYXRvckFkZHJlc3MJAKwCAgIkTm8gY29vcmRpbmF0b3Igc2V0IGZvciBwb3NzaWJsZSBBTU0gBQhfYWRkcmVzcwQVYW1tQ29vcmRpbmF0b3JIYXZlQW1tCQELdmFsdWVPckVsc2UCCQCbCAIFDmFtbUNvb3JkaW5hdG9yCQEOdG9Db21wb3NpdGVLZXkCBQVrX2FtbQUIX2FkZHJlc3MHBBJpc1ZhbGlkQ29vcmRpbmF0b3IDCQAAAgUPcm9vdENvb3JkaW5hdG9yBQ5hbW1Db29yZGluYXRvcgYJAQt2YWx1ZU9yRWxzZQIJAJsIAgUPcm9vdENvb3JkaW5hdG9yCQEOdG9Db21wb3NpdGVLZXkCBQdrX2NoaWxkCQClCAEFDmFtbUNvb3JkaW5hdG9yBwMFFWFtbUNvb3JkaW5hdG9ySGF2ZUFtbQUSaXNWYWxpZENvb3JkaW5hdG9yBwAMREVDSU1BTF9VTklUCQBoAgABCQBoAgkAaAIJAGgCCQBoAgkAaAIACgAKAAoACgAKAAoBBG11bGQCAl94Al95CQBuBAUCX3gFAl95BQxERUNJTUFMX1VOSVQFCEhBTEZFVkVOAQNpbnQBAWsJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQFrCQCsAgICDW5vIHZhbHVlIGZvciAFAWsBC2luaXRpYWxpemVkAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ1rX2luaXRpYWxpemVkBwEPZ2V0TGlua1JlZmVycmVyAQVfbGluawkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQESZ2V0UmVmZXJyZXJMaW5rS2V5AQUFX2xpbmsCAAELZ2V0UmVmZXJyZXIBB190cmFkZXIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBDmdldFJlZmVycmVyS2V5AQUHX3RyYWRlcgIAAQppc1JlZmVycmFsAQdfdHJhZGVyCQECIT0CCQELZ2V0UmVmZXJyZXIBBQdfdHJhZGVyAgABC2lzRmlyc3RUaW1lAQdfdHJhZGVyCQAAAgkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzCQEMZ2V0QWN0aXZlS2V5AQUHX3RyYWRlcgcHAQ1nZXREZWZhdWx0RmVlAAkBA2ludAEFDGtfZGVmYXVsdEZlZQETZ2V0UmVmZXJyZXJSZWZDb3VudAEJX3JlZmVycmVyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARZnZXRSZWZlcnJlclJlZkNvdW50S2V5AQUJX3JlZmVycmVyAAABFGdldFJlZmVycmVyTGlua0NvdW50AQlfcmVmZXJyZXIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBF2dldFJlZmVycmVyTGlua0NvdW50S2V5AQUJX3JlZmVycmVyAAABEWdldFJlZmVycmVyRWFybmVkAQlfcmVmZXJyZXIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBFGdldFJlZmVycmVyRWFybmVkS2V5AQUJX3JlZmVycmVyAAABEmdldFJlZmVycmVyQ2xhaW1lZAEJX3JlZmVycmVyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARVnZXRSZWZlcnJlckNsYWltZWRLZXkBBQlfcmVmZXJyZXIAAAUBaQESY3JlYXRlUmVmZXJyYWxMaW5rAAQDcmF3CQCsAgIJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkA2AQBCAUBaQ9jYWxsZXJQdWJsaWNLZXkEBWJ5dGVzCQCbAwEFA3JhdwQEbG9uZwkA2AQBCQD3AwEFBWJ5dGVzBAVzaG9ydAkArwICBQRsb25nAAoEA2tleQkBEmdldFJlZmVycmVyTGlua0tleQEFBXNob3J0BAZsaW5rSWQJAGQCCQEUZ2V0UmVmZXJyZXJMaW5rQ291bnQBCQClCAEIBQFpBmNhbGxlcgABAwkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwUDa2V5CQACAQIqU2hvcnQgbGluayBleGlzdHMsIHRyeSBnZW5lcmF0aW5nIGl0IGFnYWluCQDMCAIJAQtTdHJpbmdFbnRyeQIJARRnZXRSZWZlcnJlckxpbmtLZXlBdAIJAKUIAQgFAWkGY2FsbGVyBQZsaW5rSWQFBXNob3J0CQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQkApQgBCAUBaQZjYWxsZXIFA25pbAFpARVhY2NlcHRQYXltZW50V2l0aExpbmsCB190cmFkZXIIX3JlZkxpbmsECl9yYXdBbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BANhbW0JAKUIAQgFAWkGY2FsbGVyAwMDCQEBIQEJAQtpc1doaXRlbGlzdAEFA2FtbQYJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECJEludmFsaWQgYWNjZXB0UGF5bWVudFdpdGhMaW5rIHBhcmFtcwQLX2lzUmVmZXJyYWwJAQppc1JlZmVycmFsAQUHX3RyYWRlcgQMX2lzRmlyc3RUaW1lCQELaXNGaXJzdFRpbWUBBQdfdHJhZGVyAwMFC19pc1JlZmVycmFsBgUMX2lzRmlyc3RUaW1lAwULX2lzUmVmZXJyYWwECHJlZmVycmVyCQELZ2V0UmVmZXJyZXIBBQdfdHJhZGVyBANmZWUJAQ1nZXREZWZhdWx0RmVlAAQQYW1vdW50VG9SZWZlcnJlcgkBBG11bGQCBQpfcmF3QW1vdW50BQNmZWUECmJlZm9yZVN3YXAJAPAHAgUEdGhpcwkBD2dvdmVybmFuY2VBc3NldAADCQAAAgUKYmVmb3JlU3dhcAUKYmVmb3JlU3dhcAQGZG9Td2FwCQD8BwQJAQtzd2FwQWRkcmVzcwACBHN3YXAJAMwIAgkA2AQBCQEPZ292ZXJuYW5jZUFzc2V0AAkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBRBhbW91bnRUb1JlZmVycmVyBQNuaWwDCQAAAgUGZG9Td2FwBQZkb1N3YXAECWFmdGVyU3dhcAkA8AcCBQR0aGlzCQEPZ292ZXJuYW5jZUFzc2V0AAMJAAACBQlhZnRlclN3YXAFCWFmdGVyU3dhcAQTYW1vdW50R292VG9SZWZlcnJlcgkAZQIFCWFmdGVyU3dhcAUKYmVmb3JlU3dhcAMJAAACBRNhbW91bnRHb3ZUb1JlZmVycmVyBRNhbW91bnRHb3ZUb1JlZmVycmVyCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJARRnZXRSZWZlcnJlckVhcm5lZEtleQEFCHJlZmVycmVyCQBkAgkBEWdldFJlZmVycmVyRWFybmVkAQUIcmVmZXJyZXIFE2Ftb3VudEdvdlRvUmVmZXJyZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBlAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFEGFtb3VudFRvUmVmZXJyZXIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDbmlsBRBhbW91bnRUb1JlZmVycmVyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAhyZWZlcnJlcgkBD2dldExpbmtSZWZlcnJlcgEFCF9yZWZMaW5rAwMJAAACBQhyZWZlcnJlcgIABgkAAAIFCHJlZmVycmVyBQdfdHJhZGVyCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQDMCAIJAQxCb29sZWFuRW50cnkCCQEMZ2V0QWN0aXZlS2V5AQUHX3RyYWRlcgYFA25pbAAABANmZWUJAQ1nZXREZWZhdWx0RmVlAAQQYW1vdW50VG9SZWZlcnJlcgkBBG11bGQCBQpfcmF3QW1vdW50BQNmZWUECmJlZm9yZVN3YXAJAPAHAgUEdGhpcwkBD2dvdmVybmFuY2VBc3NldAADCQAAAgUKYmVmb3JlU3dhcAUKYmVmb3JlU3dhcAQGZG9Td2FwCQD8BwQJAQtzd2FwQWRkcmVzcwACBHN3YXAJAMwIAgkA2AQBCQEPZ292ZXJuYW5jZUFzc2V0AAkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBRBhbW91bnRUb1JlZmVycmVyBQNuaWwDCQAAAgUGZG9Td2FwBQZkb1N3YXAECWFmdGVyU3dhcAkA8AcCBQR0aGlzCQEPZ292ZXJuYW5jZUFzc2V0AAMJAAACBQlhZnRlclN3YXAFCWFmdGVyU3dhcAQTYW1vdW50R292VG9SZWZlcnJlcgkAZQIFCWFmdGVyU3dhcAUKYmVmb3JlU3dhcAMJAAACBRNhbW91bnRHb3ZUb1JlZmVycmVyBRNhbW91bnRHb3ZUb1JlZmVycmVyCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJARZnZXRSZWZlcnJlclJlZkNvdW50S2V5AQUIcmVmZXJyZXIJAGQCCQETZ2V0UmVmZXJyZXJSZWZDb3VudAEFCHJlZmVycmVyAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJARRnZXRSZWZlcnJlckVhcm5lZEtleQEFCHJlZmVycmVyCQBkAgkBEWdldFJlZmVycmVyRWFybmVkAQUIcmVmZXJyZXIFE2Ftb3VudEdvdlRvUmVmZXJyZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmdldFJlZmVycmVyS2V5AQUHX3RyYWRlcgUIcmVmZXJyZXIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQxnZXRBY3RpdmVLZXkBBQdfdHJhZGVyBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUQYW1vdW50VG9SZWZlcnJlcggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwFEGFtb3VudFRvUmVmZXJyZXIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA25pbAAAAWkBDWFjY2VwdFBheW1lbnQBB190cmFkZXIECl9yYXdBbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BANhbW0JAKUIAQgFAWkGY2FsbGVyAwMDCQEBIQEJAQtpc1doaXRlbGlzdAEFA2FtbQYJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECHEludmFsaWQgYWNjZXB0UGF5bWVudCBwYXJhbXMEC19pc1JlZmVycmFsCQEKaXNSZWZlcnJhbAEFB190cmFkZXIDBQtfaXNSZWZlcnJhbAQIcmVmZXJyZXIJAQtnZXRSZWZlcnJlcgEFB190cmFkZXIEA2ZlZQkBDWdldERlZmF1bHRGZWUABBBhbW91bnRUb1JlZmVycmVyCQEEbXVsZAIFCl9yYXdBbW91bnQFA2ZlZQQKYmVmb3JlU3dhcAkA8AcCBQR0aGlzCQEPZ292ZXJuYW5jZUFzc2V0AAMJAAACBQpiZWZvcmVTd2FwBQpiZWZvcmVTd2FwBAZkb1N3YXAJAPwHBAkBC3N3YXBBZGRyZXNzAAIEc3dhcAkAzAgCCQDYBAEJAQ9nb3Zlcm5hbmNlQXNzZXQACQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFEGFtb3VudFRvUmVmZXJyZXIFA25pbAMJAAACBQZkb1N3YXAFBmRvU3dhcAQJYWZ0ZXJTd2FwCQDwBwIFBHRoaXMJAQ9nb3Zlcm5hbmNlQXNzZXQAAwkAAAIFCWFmdGVyU3dhcAUJYWZ0ZXJTd2FwBBNhbW91bnRHb3ZUb1JlZmVycmVyCQBlAgUJYWZ0ZXJTd2FwBQpiZWZvcmVTd2FwAwkAAAIFE2Ftb3VudEdvdlRvUmVmZXJyZXIFE2Ftb3VudEdvdlRvUmVmZXJyZXIJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGdldFJlZmVycmVyRWFybmVkS2V5AQUIcmVmZXJyZXIJAGQCCQERZ2V0UmVmZXJyZXJFYXJuZWQBBQhyZWZlcnJlcgUTYW1vdW50R292VG9SZWZlcnJlcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUQYW1vdW50VG9SZWZlcnJlcggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwFEGFtb3VudFRvUmVmZXJyZXIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA25pbAAAAWkBDGNsYWltUmV3YXJkcwAECHJlZmVycmVyCQClCAEIBQFpBmNhbGxlcgQMdG90YWxSZXdhcmRzCQERZ2V0UmVmZXJyZXJFYXJuZWQBBQhyZWZlcnJlcgQMdG90YWxDbGFpbWVkCQESZ2V0UmVmZXJyZXJDbGFpbWVkAQUIcmVmZXJyZXIEB3RvQ2xhaW0JAGUCBQx0b3RhbFJld2FyZHMFDHRvdGFsQ2xhaW1lZAMJAGYCBQd0b0NsYWltAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJARVnZXRSZWZlcnJlckNsYWltZWRLZXkBBQhyZWZlcnJlcgkAZAIJARJnZXRSZWZlcnJlckNsYWltZWQBBQhyZWZlcnJlcgUHdG9DbGFpbQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB3RvQ2xhaW0JAQ9nb3Zlcm5hbmNlQXNzZXQABQNuaWwJAAIBAhBOb3RoaW5nIHRvIGNsYWltAWkBCmluaXRpYWxpemUCDF9jb29yZGluYXRvcgtfZGVmYXVsdEZlZQMDCQELaW5pdGlhbGl6ZWQABgkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIUVW5hYmxlIHRvIGluaXRpYWxpemUJAMwIAgkBC1N0cmluZ0VudHJ5AgUUa19jb29yZGluYXRvckFkZHJlc3MJAKUIAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUMX2Nvb3JkaW5hdG9yCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrX2RlZmF1bHRGZWUFC19kZWZhdWx0RmVlCQDMCAIJAQxCb29sZWFuRW50cnkCBQ1rX2luaXRpYWxpemVkBgUDbmlsAQJ0eAEGdmVyaWZ5AAQOY29vcmRpbmF0b3JTdHIJAJ0IAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MDCQEJaXNEZWZpbmVkAQUOY29vcmRpbmF0b3JTdHIEBWFkbWluCQCdCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFDmNvb3JkaW5hdG9yU3RyBQ9rX2FkbWluX2FkZHJlc3MDCQEJaXNEZWZpbmVkAQUFYWRtaW4JAQt2YWx1ZU9yRWxzZQIJAJsIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUFYWRtaW4JAKwCAgkArAICCQCsAgICB3N0YXR1c18JAKUIAQUEdGhpcwIBXwkA2AQBCAUCdHgCaWQHCQACAQIudW5hYmxlIHRvIHZlcmlmeTogYWRtaW4gbm90IHNldCBpbiBjb29yZGluYXRvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleR6+FKw=", "height": 2538841, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: A8RoaNxuSWcg7X6G1ECVao2vPNb8X7HoNqjsizy2tZpq Next: none Diff:
OldNewDifferences
1313
1414 let f = "k_defaultFee"
1515
16-let g = "k_swapAddress"
16+let g = "k_referrer_ref_count"
1717
18-let h = "k_referrer_ref_count"
18+let h = "k_referrer_earned"
1919
20-let i = "k_referrer_earned"
20+let i = "k_referrer_claimed"
2121
22-let j = "k_referrer_claimed"
22+let j = "k_initialized"
2323
24-let k = "k_initialized"
24+let k = "k_coordinatorAddress"
2525
26-let l = "k_coordinatorAddress"
26+let l = "k_child"
2727
2828 let m = "k_gov_asset"
2929
30-let n = "k_quote_asset"
30+let n = "k_admin_address"
3131
32-let o = "k_admin_public_key"
32+let o = "k_amm"
3333
34-let p = "k_admin_address"
34+let p = "k_swap_address"
3535
36-let q = "k_amm"
37-
38-func r (s,t) = ((s + "_") + t)
36+func q (r,s) = ((r + "_") + s)
3937
4038
41-func u (v) = ((a + "_") + v)
39+func t (u) = ((a + "_") + u)
4240
4341
44-func w (x) = ((d + "_") + x)
42+func v (w) = ((d + "_") + w)
4543
4644
47-func y (z) = ((h + "_") + z)
45+func x (y) = ((g + "_") + y)
4846
4947
50-func A (z) = ((b + "_") + z)
48+func z (y) = ((b + "_") + y)
5149
5250
53-func B (z,C) = ((((c + "_") + z) + "_") + toString(C))
51+func A (y,B) = ((((c + "_") + y) + "_") + toString(B))
5452
5553
56-func D (z) = ((i + "_") + z)
54+func C (y) = ((h + "_") + y)
5755
5856
59-func E (z) = ((j + "_") + z)
57+func D (y) = ((i + "_") + y)
6058
6159
62-func F (x) = ((e + "_") + x)
60+func E (w) = ((e + "_") + w)
6361
6462
65-func G () = valueOrErrorMessage(addressFromString(getStringValue(this, l)), "Coordinator not set")
63+func F () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, k), "Coordinator not set")), "Coordinator address invalid")
6664
6765
68-func H () = fromBase58String(getStringValue(G(), o))
66+func G () = addressFromString(valueOrErrorMessage(getString(F(), n), "Admin address not set"))
6967
7068
71-func I () = addressFromString(getStringValue(G(), p))
69+func H () = fromBase58String(valueOrErrorMessage(getString(F(), m), "Governance asset not set"))
7270
7371
74-func J () = fromBase58String(getStringValue(G(), m))
72+func I () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(F(), p), "Swap address not set")), "Swap address invalid")
7573
7674
77-func K () = fromBase58String(getStringValue(G(), n))
75+func J (s) = {
76+ let K = F()
77+ let L = addressFromStringValue(valueOrErrorMessage(getString(addressFromStringValue(s), k), ("No coordinator set for possible AMM " + s)))
78+ let M = valueOrElse(getBoolean(L, q(o, s)), false)
79+ let N = if ((K == L))
80+ then true
81+ else valueOrElse(getBoolean(K, q(l, toString(L))), false)
82+ if (M)
83+ then N
84+ else false
85+ }
7886
7987
80-func L (t) = valueOrElse(getBoolean(G(), r(q, t)), false)
88+let O = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
89+
90+func P (Q,R) = fraction(Q, R, O, HALFEVEN)
8191
8292
83-let M = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
84-
85-func N () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, g), "Now swap address")), "Invalid swap address")
93+func S (T) = valueOrErrorMessage(getInteger(this, T), ("no value for " + T))
8694
8795
88-func O (P) = (P / 100)
96+func U () = valueOrElse(getBoolean(this, j), false)
8997
9098
91-func Q (P) = (P * 100)
99+func V (u) = valueOrElse(getString(this, t(u)), "")
92100
93101
94-func R (S,T) = fraction(S, M, T, HALFEVEN)
102+func W (w) = valueOrElse(getString(this, v(w)), "")
95103
96104
97-func U (S,T) = fraction(S, T, M, HALFEVEN)
105+func X (w) = (W(w) != "")
98106
99107
100-func V (S) = if ((S > 0))
101- then S
102- else -(S)
108+func Y (w) = (valueOrElse(getBoolean(this, E(w)), false) == false)
103109
104110
105-func W (S,T) = if ((S > T))
106- then T
107- else S
111+func Z () = S(f)
108112
109113
110-func X (Y) = valueOrErrorMessage(getInteger(this, Y), ("no value for " + Y))
114+func aa (y) = valueOrElse(getInteger(this, x(y)), 0)
111115
112116
113-func Z (Y) = valueOrElse(getInteger(this, Y), 0)
117+func ab (y) = valueOrElse(getInteger(this, z(y)), 0)
114118
115119
116-func aa () = valueOrElse(getBoolean(this, k), false)
120+func ac (y) = valueOrElse(getInteger(this, C(y)), 0)
117121
118122
119-func ab (v) = valueOrElse(getString(this, u(v)), "")
123+func ad (y) = valueOrElse(getInteger(this, D(y)), 0)
120124
121125
122-func ac (x) = valueOrElse(getString(this, w(x)), "")
123-
124-
125-func ad (x) = (ac(x) != "")
126-
127-
128-func ae (x) = (valueOrElse(getBoolean(this, F(x)), false) == false)
129-
130-
131-func af () = X(f)
132-
133-
134-func ag (z) = valueOrElse(getInteger(this, y(z)), 0)
135-
136-
137-func ah (z) = valueOrElse(getInteger(this, A(z)), 0)
138-
139-
140-func ai (z) = valueOrElse(getInteger(this, D(z)), 0)
141-
142-
143-func aj (z) = valueOrElse(getInteger(this, E(z)), 0)
144-
145-
146-@Callable(ak)
126+@Callable(ae)
147127 func createReferralLink () = {
148- let al = (toBase58String(ak.transactionId) + toBase58String(ak.callerPublicKey))
149- let am = toBytes(al)
150- let an = toBase58String(sha256(am))
151- let ao = take(an, 10)
152- let ap = u(ao)
153- let aq = (ah(toString(ak.caller)) + 1)
154- if (isDefined(getString(this, ap)))
128+ let af = (toBase58String(ae.transactionId) + toBase58String(ae.callerPublicKey))
129+ let ag = toBytes(af)
130+ let ah = toBase58String(sha256(ag))
131+ let ai = take(ah, 10)
132+ let aj = t(ai)
133+ let ak = (ab(toString(ae.caller)) + 1)
134+ if (isDefined(getString(this, aj)))
155135 then throw("Short link exists, try generating it again")
156- else [StringEntry(B(toString(ak.caller), aq), ao), StringEntry(ap, toString(ak.caller))]
136+ else [StringEntry(A(toString(ae.caller), ak), ai), StringEntry(aj, toString(ae.caller))]
157137 }
158138
159139
160140
161-@Callable(ak)
162-func acceptPaymentWithLink (x,ar) = {
163- let as = ak.payments[0].amount
164- let at = toString(ak.caller)
165- if (if (!(L(at)))
141+@Callable(ae)
142+func acceptPaymentWithLink (w,al) = {
143+ let am = ae.payments[0].amount
144+ let an = toString(ae.caller)
145+ if (if (if (!(J(an)))
166146 then true
167- else !(aa()))
147+ else (size(ae.payments) != 1))
148+ then true
149+ else !(U()))
168150 then throw("Invalid acceptPaymentWithLink params")
169151 else {
170- let au = ad(x)
171- let av = ae(x)
172- if (if (au)
152+ let ao = X(w)
153+ let ap = Y(w)
154+ if (if (ao)
173155 then true
174- else av)
175- then if (au)
156+ else ap)
157+ then if (ao)
176158 then {
177- let aw = ac(x)
178- let ax = af()
179- let ay = U(as, ax)
180- let az = assetBalance(this, J())
181- if ((az == az))
159+ let aq = W(w)
160+ let ar = Z()
161+ let as = P(am, ar)
162+ let at = assetBalance(this, H())
163+ if ((at == at))
182164 then {
183- let aA = invoke(N(), "swap", [toBase58String(J()), 0], [AttachedPayment(K(), ay)])
184- if ((aA == aA))
165+ let au = invoke(I(), "swap", [toBase58String(H()), 0], [AttachedPayment(ae.payments[0].assetId, as)])
166+ if ((au == au))
185167 then {
186- let aB = assetBalance(this, J())
187- if ((aB == aB))
168+ let av = assetBalance(this, H())
169+ if ((av == av))
188170 then {
189- let aC = (aB - az)
190- if ((aC == aC))
191- then $Tuple2([IntegerEntry(D(aw), (ai(aw) + aC)), ScriptTransfer(ak.caller, (ak.payments[0].amount - ay), ak.payments[0].assetId)], ay)
171+ let aw = (av - at)
172+ if ((aw == aw))
173+ then $Tuple2([IntegerEntry(C(aq), (ac(aq) + aw)), ScriptTransfer(ae.caller, (ae.payments[0].amount - as), ae.payments[0].assetId)], as)
192174 else throw("Strict value is not equal to itself.")
193175 }
194176 else throw("Strict value is not equal to itself.")
198180 else throw("Strict value is not equal to itself.")
199181 }
200182 else {
201- let aw = ab(ar)
202- if (if ((aw == ""))
183+ let aq = V(al)
184+ if (if ((aq == ""))
203185 then true
204- else (aw == x))
205- then $Tuple2([ScriptTransfer(ak.caller, ak.payments[0].amount, ak.payments[0].assetId), BooleanEntry(F(x), true)], 0)
186+ else (aq == w))
187+ then $Tuple2([ScriptTransfer(ae.caller, ae.payments[0].amount, ae.payments[0].assetId), BooleanEntry(E(w), true)], 0)
206188 else {
207- let ax = af()
208- let ay = U(as, ax)
209- let az = assetBalance(this, J())
210- if ((az == az))
189+ let ar = Z()
190+ let as = P(am, ar)
191+ let at = assetBalance(this, H())
192+ if ((at == at))
211193 then {
212- let aA = invoke(N(), "swap", [toBase58String(J()), 0], [AttachedPayment(K(), ay)])
213- if ((aA == aA))
194+ let au = invoke(I(), "swap", [toBase58String(H()), 0], [AttachedPayment(ae.payments[0].assetId, as)])
195+ if ((au == au))
214196 then {
215- let aB = assetBalance(this, J())
216- if ((aB == aB))
197+ let av = assetBalance(this, H())
198+ if ((av == av))
217199 then {
218- let aC = (aB - az)
219- if ((aC == aC))
220- then $Tuple2([IntegerEntry(y(aw), (ag(aw) + 1)), IntegerEntry(D(aw), (ai(aw) + aC)), StringEntry(w(x), aw), BooleanEntry(F(x), true), ScriptTransfer(ak.caller, (ak.payments[0].amount - ay), ak.payments[0].assetId)], ay)
200+ let aw = (av - at)
201+ if ((aw == aw))
202+ then $Tuple2([IntegerEntry(x(aq), (aa(aq) + 1)), IntegerEntry(C(aq), (ac(aq) + aw)), StringEntry(v(w), aq), BooleanEntry(E(w), true), ScriptTransfer(ae.caller, (ae.payments[0].amount - as), ae.payments[0].assetId)], as)
221203 else throw("Strict value is not equal to itself.")
222204 }
223205 else throw("Strict value is not equal to itself.")
227209 else throw("Strict value is not equal to itself.")
228210 }
229211 }
230- else $Tuple2([ScriptTransfer(ak.caller, ak.payments[0].amount, ak.payments[0].assetId)], 0)
212+ else $Tuple2([ScriptTransfer(ae.caller, ae.payments[0].amount, ae.payments[0].assetId)], 0)
231213 }
232214 }
233215
234216
235217
236-@Callable(ak)
237-func acceptPayment (x) = {
238- let as = ak.payments[0].amount
239- let at = toString(ak.caller)
240- if (if (!(L(at)))
218+@Callable(ae)
219+func acceptPayment (w) = {
220+ let am = ae.payments[0].amount
221+ let an = toString(ae.caller)
222+ if (if (if (!(J(an)))
241223 then true
242- else !(aa()))
224+ else (size(ae.payments) != 1))
225+ then true
226+ else !(U()))
243227 then throw("Invalid acceptPayment params")
244228 else {
245- let au = ad(x)
246- if (au)
229+ let ao = X(w)
230+ if (ao)
247231 then {
248- let aw = ac(x)
249- let ax = af()
250- let ay = U(as, ax)
251- let az = assetBalance(this, J())
252- if ((az == az))
232+ let aq = W(w)
233+ let ar = Z()
234+ let as = P(am, ar)
235+ let at = assetBalance(this, H())
236+ if ((at == at))
253237 then {
254- let aA = invoke(N(), "swap", [toBase58String(J()), 0], [AttachedPayment(K(), ay)])
255- if ((aA == aA))
238+ let au = invoke(I(), "swap", [toBase58String(H()), 0], [AttachedPayment(ae.payments[0].assetId, as)])
239+ if ((au == au))
256240 then {
257- let aB = assetBalance(this, J())
258- if ((aB == aB))
241+ let av = assetBalance(this, H())
242+ if ((av == av))
259243 then {
260- let aC = (aB - az)
261- if ((aC == aC))
262- then $Tuple2([IntegerEntry(D(aw), (ai(aw) + aC)), ScriptTransfer(ak.caller, (ak.payments[0].amount - ay), ak.payments[0].assetId)], ay)
244+ let aw = (av - at)
245+ if ((aw == aw))
246+ then $Tuple2([IntegerEntry(C(aq), (ac(aq) + aw)), ScriptTransfer(ae.caller, (ae.payments[0].amount - as), ae.payments[0].assetId)], as)
263247 else throw("Strict value is not equal to itself.")
264248 }
265249 else throw("Strict value is not equal to itself.")
268252 }
269253 else throw("Strict value is not equal to itself.")
270254 }
271- else $Tuple2([ScriptTransfer(ak.caller, ak.payments[0].amount, ak.payments[0].assetId)], 0)
255+ else $Tuple2([ScriptTransfer(ae.caller, ae.payments[0].amount, ae.payments[0].assetId)], 0)
272256 }
273257 }
274258
275259
276260
277-@Callable(ak)
261+@Callable(ae)
278262 func claimRewards () = {
279- let aw = toString(ak.caller)
280- let aD = ai(aw)
281- let aE = aj(aw)
282- let aF = (aD - aE)
283- if ((aF > 0))
284- then [IntegerEntry(E(aw), (aj(aw) + aF)), ScriptTransfer(ak.caller, aF, J())]
263+ let aq = toString(ae.caller)
264+ let ax = ac(aq)
265+ let ay = ad(aq)
266+ let az = (ax - ay)
267+ if ((az > 0))
268+ then [IntegerEntry(D(aq), (ad(aq) + az)), ScriptTransfer(ae.caller, az, H())]
285269 else throw("Nothing to claim")
286270 }
287271
288272
289273
290-@Callable(ak)
291-func initialize (aG,aH,aI) = if (aa())
292- then throw("Already initialized")
293- else [StringEntry(l, aG), StringEntry(g, aI), IntegerEntry(f, aH), BooleanEntry(k, true)]
274+@Callable(ae)
275+func initialize (aA,aB) = if (if (U())
276+ then true
277+ else (ae.caller != this))
278+ then throw("Unable to initialize")
279+ else [StringEntry(k, toString(addressFromStringValue(aA))), IntegerEntry(f, aB), BooleanEntry(j, true)]
294280
295281
296-
297-@Callable(ak)
298-func setSwapAddress (aI) = if ((ak.caller != I()))
299- then throw("Invalid setSwapAddress params")
300- else [StringEntry(g, aI)]
301-
302-
303-@Verifier(aJ)
304-func aK () = sigVerify(aJ.bodyBytes, aJ.proofs[0], H())
282+@Verifier(aC)
283+func aD () = {
284+ let aE = getString(this, k)
285+ if (isDefined(aE))
286+ then {
287+ let aF = getString(addressFromStringValue(value(aE)), n)
288+ if (isDefined(aF))
289+ then valueOrElse(getBoolean(addressFromStringValue(value(aF)), ((("status_" + toString(this)) + "_") + toBase58String(aC.id))), false)
290+ else throw("unable to verify: admin not set in coordinator")
291+ }
292+ else sigVerify(aC.bodyBytes, aC.proofs[0], aC.senderPublicKey)
293+ }
305294
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "k_ref_link_owner"
55
66 let b = "k_ref_link_owner_count"
77
88 let c = "k_ref_owner_link"
99
1010 let d = "k_referrer"
1111
1212 let e = "k_active"
1313
1414 let f = "k_defaultFee"
1515
16-let g = "k_swapAddress"
16+let g = "k_referrer_ref_count"
1717
18-let h = "k_referrer_ref_count"
18+let h = "k_referrer_earned"
1919
20-let i = "k_referrer_earned"
20+let i = "k_referrer_claimed"
2121
22-let j = "k_referrer_claimed"
22+let j = "k_initialized"
2323
24-let k = "k_initialized"
24+let k = "k_coordinatorAddress"
2525
26-let l = "k_coordinatorAddress"
26+let l = "k_child"
2727
2828 let m = "k_gov_asset"
2929
30-let n = "k_quote_asset"
30+let n = "k_admin_address"
3131
32-let o = "k_admin_public_key"
32+let o = "k_amm"
3333
34-let p = "k_admin_address"
34+let p = "k_swap_address"
3535
36-let q = "k_amm"
37-
38-func r (s,t) = ((s + "_") + t)
36+func q (r,s) = ((r + "_") + s)
3937
4038
41-func u (v) = ((a + "_") + v)
39+func t (u) = ((a + "_") + u)
4240
4341
44-func w (x) = ((d + "_") + x)
42+func v (w) = ((d + "_") + w)
4543
4644
47-func y (z) = ((h + "_") + z)
45+func x (y) = ((g + "_") + y)
4846
4947
50-func A (z) = ((b + "_") + z)
48+func z (y) = ((b + "_") + y)
5149
5250
53-func B (z,C) = ((((c + "_") + z) + "_") + toString(C))
51+func A (y,B) = ((((c + "_") + y) + "_") + toString(B))
5452
5553
56-func D (z) = ((i + "_") + z)
54+func C (y) = ((h + "_") + y)
5755
5856
59-func E (z) = ((j + "_") + z)
57+func D (y) = ((i + "_") + y)
6058
6159
62-func F (x) = ((e + "_") + x)
60+func E (w) = ((e + "_") + w)
6361
6462
65-func G () = valueOrErrorMessage(addressFromString(getStringValue(this, l)), "Coordinator not set")
63+func F () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, k), "Coordinator not set")), "Coordinator address invalid")
6664
6765
68-func H () = fromBase58String(getStringValue(G(), o))
66+func G () = addressFromString(valueOrErrorMessage(getString(F(), n), "Admin address not set"))
6967
7068
71-func I () = addressFromString(getStringValue(G(), p))
69+func H () = fromBase58String(valueOrErrorMessage(getString(F(), m), "Governance asset not set"))
7270
7371
74-func J () = fromBase58String(getStringValue(G(), m))
72+func I () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(F(), p), "Swap address not set")), "Swap address invalid")
7573
7674
77-func K () = fromBase58String(getStringValue(G(), n))
75+func J (s) = {
76+ let K = F()
77+ let L = addressFromStringValue(valueOrErrorMessage(getString(addressFromStringValue(s), k), ("No coordinator set for possible AMM " + s)))
78+ let M = valueOrElse(getBoolean(L, q(o, s)), false)
79+ let N = if ((K == L))
80+ then true
81+ else valueOrElse(getBoolean(K, q(l, toString(L))), false)
82+ if (M)
83+ then N
84+ else false
85+ }
7886
7987
80-func L (t) = valueOrElse(getBoolean(G(), r(q, t)), false)
88+let O = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
89+
90+func P (Q,R) = fraction(Q, R, O, HALFEVEN)
8191
8292
83-let M = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
84-
85-func N () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, g), "Now swap address")), "Invalid swap address")
93+func S (T) = valueOrErrorMessage(getInteger(this, T), ("no value for " + T))
8694
8795
88-func O (P) = (P / 100)
96+func U () = valueOrElse(getBoolean(this, j), false)
8997
9098
91-func Q (P) = (P * 100)
99+func V (u) = valueOrElse(getString(this, t(u)), "")
92100
93101
94-func R (S,T) = fraction(S, M, T, HALFEVEN)
102+func W (w) = valueOrElse(getString(this, v(w)), "")
95103
96104
97-func U (S,T) = fraction(S, T, M, HALFEVEN)
105+func X (w) = (W(w) != "")
98106
99107
100-func V (S) = if ((S > 0))
101- then S
102- else -(S)
108+func Y (w) = (valueOrElse(getBoolean(this, E(w)), false) == false)
103109
104110
105-func W (S,T) = if ((S > T))
106- then T
107- else S
111+func Z () = S(f)
108112
109113
110-func X (Y) = valueOrErrorMessage(getInteger(this, Y), ("no value for " + Y))
114+func aa (y) = valueOrElse(getInteger(this, x(y)), 0)
111115
112116
113-func Z (Y) = valueOrElse(getInteger(this, Y), 0)
117+func ab (y) = valueOrElse(getInteger(this, z(y)), 0)
114118
115119
116-func aa () = valueOrElse(getBoolean(this, k), false)
120+func ac (y) = valueOrElse(getInteger(this, C(y)), 0)
117121
118122
119-func ab (v) = valueOrElse(getString(this, u(v)), "")
123+func ad (y) = valueOrElse(getInteger(this, D(y)), 0)
120124
121125
122-func ac (x) = valueOrElse(getString(this, w(x)), "")
123-
124-
125-func ad (x) = (ac(x) != "")
126-
127-
128-func ae (x) = (valueOrElse(getBoolean(this, F(x)), false) == false)
129-
130-
131-func af () = X(f)
132-
133-
134-func ag (z) = valueOrElse(getInteger(this, y(z)), 0)
135-
136-
137-func ah (z) = valueOrElse(getInteger(this, A(z)), 0)
138-
139-
140-func ai (z) = valueOrElse(getInteger(this, D(z)), 0)
141-
142-
143-func aj (z) = valueOrElse(getInteger(this, E(z)), 0)
144-
145-
146-@Callable(ak)
126+@Callable(ae)
147127 func createReferralLink () = {
148- let al = (toBase58String(ak.transactionId) + toBase58String(ak.callerPublicKey))
149- let am = toBytes(al)
150- let an = toBase58String(sha256(am))
151- let ao = take(an, 10)
152- let ap = u(ao)
153- let aq = (ah(toString(ak.caller)) + 1)
154- if (isDefined(getString(this, ap)))
128+ let af = (toBase58String(ae.transactionId) + toBase58String(ae.callerPublicKey))
129+ let ag = toBytes(af)
130+ let ah = toBase58String(sha256(ag))
131+ let ai = take(ah, 10)
132+ let aj = t(ai)
133+ let ak = (ab(toString(ae.caller)) + 1)
134+ if (isDefined(getString(this, aj)))
155135 then throw("Short link exists, try generating it again")
156- else [StringEntry(B(toString(ak.caller), aq), ao), StringEntry(ap, toString(ak.caller))]
136+ else [StringEntry(A(toString(ae.caller), ak), ai), StringEntry(aj, toString(ae.caller))]
157137 }
158138
159139
160140
161-@Callable(ak)
162-func acceptPaymentWithLink (x,ar) = {
163- let as = ak.payments[0].amount
164- let at = toString(ak.caller)
165- if (if (!(L(at)))
141+@Callable(ae)
142+func acceptPaymentWithLink (w,al) = {
143+ let am = ae.payments[0].amount
144+ let an = toString(ae.caller)
145+ if (if (if (!(J(an)))
166146 then true
167- else !(aa()))
147+ else (size(ae.payments) != 1))
148+ then true
149+ else !(U()))
168150 then throw("Invalid acceptPaymentWithLink params")
169151 else {
170- let au = ad(x)
171- let av = ae(x)
172- if (if (au)
152+ let ao = X(w)
153+ let ap = Y(w)
154+ if (if (ao)
173155 then true
174- else av)
175- then if (au)
156+ else ap)
157+ then if (ao)
176158 then {
177- let aw = ac(x)
178- let ax = af()
179- let ay = U(as, ax)
180- let az = assetBalance(this, J())
181- if ((az == az))
159+ let aq = W(w)
160+ let ar = Z()
161+ let as = P(am, ar)
162+ let at = assetBalance(this, H())
163+ if ((at == at))
182164 then {
183- let aA = invoke(N(), "swap", [toBase58String(J()), 0], [AttachedPayment(K(), ay)])
184- if ((aA == aA))
165+ let au = invoke(I(), "swap", [toBase58String(H()), 0], [AttachedPayment(ae.payments[0].assetId, as)])
166+ if ((au == au))
185167 then {
186- let aB = assetBalance(this, J())
187- if ((aB == aB))
168+ let av = assetBalance(this, H())
169+ if ((av == av))
188170 then {
189- let aC = (aB - az)
190- if ((aC == aC))
191- then $Tuple2([IntegerEntry(D(aw), (ai(aw) + aC)), ScriptTransfer(ak.caller, (ak.payments[0].amount - ay), ak.payments[0].assetId)], ay)
171+ let aw = (av - at)
172+ if ((aw == aw))
173+ then $Tuple2([IntegerEntry(C(aq), (ac(aq) + aw)), ScriptTransfer(ae.caller, (ae.payments[0].amount - as), ae.payments[0].assetId)], as)
192174 else throw("Strict value is not equal to itself.")
193175 }
194176 else throw("Strict value is not equal to itself.")
195177 }
196178 else throw("Strict value is not equal to itself.")
197179 }
198180 else throw("Strict value is not equal to itself.")
199181 }
200182 else {
201- let aw = ab(ar)
202- if (if ((aw == ""))
183+ let aq = V(al)
184+ if (if ((aq == ""))
203185 then true
204- else (aw == x))
205- then $Tuple2([ScriptTransfer(ak.caller, ak.payments[0].amount, ak.payments[0].assetId), BooleanEntry(F(x), true)], 0)
186+ else (aq == w))
187+ then $Tuple2([ScriptTransfer(ae.caller, ae.payments[0].amount, ae.payments[0].assetId), BooleanEntry(E(w), true)], 0)
206188 else {
207- let ax = af()
208- let ay = U(as, ax)
209- let az = assetBalance(this, J())
210- if ((az == az))
189+ let ar = Z()
190+ let as = P(am, ar)
191+ let at = assetBalance(this, H())
192+ if ((at == at))
211193 then {
212- let aA = invoke(N(), "swap", [toBase58String(J()), 0], [AttachedPayment(K(), ay)])
213- if ((aA == aA))
194+ let au = invoke(I(), "swap", [toBase58String(H()), 0], [AttachedPayment(ae.payments[0].assetId, as)])
195+ if ((au == au))
214196 then {
215- let aB = assetBalance(this, J())
216- if ((aB == aB))
197+ let av = assetBalance(this, H())
198+ if ((av == av))
217199 then {
218- let aC = (aB - az)
219- if ((aC == aC))
220- then $Tuple2([IntegerEntry(y(aw), (ag(aw) + 1)), IntegerEntry(D(aw), (ai(aw) + aC)), StringEntry(w(x), aw), BooleanEntry(F(x), true), ScriptTransfer(ak.caller, (ak.payments[0].amount - ay), ak.payments[0].assetId)], ay)
200+ let aw = (av - at)
201+ if ((aw == aw))
202+ then $Tuple2([IntegerEntry(x(aq), (aa(aq) + 1)), IntegerEntry(C(aq), (ac(aq) + aw)), StringEntry(v(w), aq), BooleanEntry(E(w), true), ScriptTransfer(ae.caller, (ae.payments[0].amount - as), ae.payments[0].assetId)], as)
221203 else throw("Strict value is not equal to itself.")
222204 }
223205 else throw("Strict value is not equal to itself.")
224206 }
225207 else throw("Strict value is not equal to itself.")
226208 }
227209 else throw("Strict value is not equal to itself.")
228210 }
229211 }
230- else $Tuple2([ScriptTransfer(ak.caller, ak.payments[0].amount, ak.payments[0].assetId)], 0)
212+ else $Tuple2([ScriptTransfer(ae.caller, ae.payments[0].amount, ae.payments[0].assetId)], 0)
231213 }
232214 }
233215
234216
235217
236-@Callable(ak)
237-func acceptPayment (x) = {
238- let as = ak.payments[0].amount
239- let at = toString(ak.caller)
240- if (if (!(L(at)))
218+@Callable(ae)
219+func acceptPayment (w) = {
220+ let am = ae.payments[0].amount
221+ let an = toString(ae.caller)
222+ if (if (if (!(J(an)))
241223 then true
242- else !(aa()))
224+ else (size(ae.payments) != 1))
225+ then true
226+ else !(U()))
243227 then throw("Invalid acceptPayment params")
244228 else {
245- let au = ad(x)
246- if (au)
229+ let ao = X(w)
230+ if (ao)
247231 then {
248- let aw = ac(x)
249- let ax = af()
250- let ay = U(as, ax)
251- let az = assetBalance(this, J())
252- if ((az == az))
232+ let aq = W(w)
233+ let ar = Z()
234+ let as = P(am, ar)
235+ let at = assetBalance(this, H())
236+ if ((at == at))
253237 then {
254- let aA = invoke(N(), "swap", [toBase58String(J()), 0], [AttachedPayment(K(), ay)])
255- if ((aA == aA))
238+ let au = invoke(I(), "swap", [toBase58String(H()), 0], [AttachedPayment(ae.payments[0].assetId, as)])
239+ if ((au == au))
256240 then {
257- let aB = assetBalance(this, J())
258- if ((aB == aB))
241+ let av = assetBalance(this, H())
242+ if ((av == av))
259243 then {
260- let aC = (aB - az)
261- if ((aC == aC))
262- then $Tuple2([IntegerEntry(D(aw), (ai(aw) + aC)), ScriptTransfer(ak.caller, (ak.payments[0].amount - ay), ak.payments[0].assetId)], ay)
244+ let aw = (av - at)
245+ if ((aw == aw))
246+ then $Tuple2([IntegerEntry(C(aq), (ac(aq) + aw)), ScriptTransfer(ae.caller, (ae.payments[0].amount - as), ae.payments[0].assetId)], as)
263247 else throw("Strict value is not equal to itself.")
264248 }
265249 else throw("Strict value is not equal to itself.")
266250 }
267251 else throw("Strict value is not equal to itself.")
268252 }
269253 else throw("Strict value is not equal to itself.")
270254 }
271- else $Tuple2([ScriptTransfer(ak.caller, ak.payments[0].amount, ak.payments[0].assetId)], 0)
255+ else $Tuple2([ScriptTransfer(ae.caller, ae.payments[0].amount, ae.payments[0].assetId)], 0)
272256 }
273257 }
274258
275259
276260
277-@Callable(ak)
261+@Callable(ae)
278262 func claimRewards () = {
279- let aw = toString(ak.caller)
280- let aD = ai(aw)
281- let aE = aj(aw)
282- let aF = (aD - aE)
283- if ((aF > 0))
284- then [IntegerEntry(E(aw), (aj(aw) + aF)), ScriptTransfer(ak.caller, aF, J())]
263+ let aq = toString(ae.caller)
264+ let ax = ac(aq)
265+ let ay = ad(aq)
266+ let az = (ax - ay)
267+ if ((az > 0))
268+ then [IntegerEntry(D(aq), (ad(aq) + az)), ScriptTransfer(ae.caller, az, H())]
285269 else throw("Nothing to claim")
286270 }
287271
288272
289273
290-@Callable(ak)
291-func initialize (aG,aH,aI) = if (aa())
292- then throw("Already initialized")
293- else [StringEntry(l, aG), StringEntry(g, aI), IntegerEntry(f, aH), BooleanEntry(k, true)]
274+@Callable(ae)
275+func initialize (aA,aB) = if (if (U())
276+ then true
277+ else (ae.caller != this))
278+ then throw("Unable to initialize")
279+ else [StringEntry(k, toString(addressFromStringValue(aA))), IntegerEntry(f, aB), BooleanEntry(j, true)]
294280
295281
296-
297-@Callable(ak)
298-func setSwapAddress (aI) = if ((ak.caller != I()))
299- then throw("Invalid setSwapAddress params")
300- else [StringEntry(g, aI)]
301-
302-
303-@Verifier(aJ)
304-func aK () = sigVerify(aJ.bodyBytes, aJ.proofs[0], H())
282+@Verifier(aC)
283+func aD () = {
284+ let aE = getString(this, k)
285+ if (isDefined(aE))
286+ then {
287+ let aF = getString(addressFromStringValue(value(aE)), n)
288+ if (isDefined(aF))
289+ then valueOrElse(getBoolean(addressFromStringValue(value(aF)), ((("status_" + toString(this)) + "_") + toBase58String(aC.id))), false)
290+ else throw("unable to verify: admin not set in coordinator")
291+ }
292+ else sigVerify(aC.bodyBytes, aC.proofs[0], aC.senderPublicKey)
293+ }
305294

github/deemru/w8io/873ac7e 
109.86 ms