tx · 4rj3raxFbSJnq3Va31d43cCz7gCc1VaMk6rb2BRWyv6S

3MxN27tyS9DuFsab1QSfM5Q2BfauiyVCr4M:  -0.03700000 Waves

2022.09.27 20:02 [2247819] smart account 3MxN27tyS9DuFsab1QSfM5Q2BfauiyVCr4M > SELF 0.00000000 Waves

{ "type": 13, "id": "4rj3raxFbSJnq3Va31d43cCz7gCc1VaMk6rb2BRWyv6S", "fee": 3700000, "feeAssetId": null, "timestamp": 1664298201689, "version": 2, "chainId": 84, "sender": "3MxN27tyS9DuFsab1QSfM5Q2BfauiyVCr4M", "senderPublicKey": "6PjNBLx8VTTNLWTS5y6zecyVfYCUC9ZCrAULFnLQU4XM", "proofs": [ "37ZGNdc2zqufEb6U6JGQQtcc2i3ARNrb2tXQqmE6diQyZyi1HXkThfgEdZBq4rPGdca7xHNZ3gPBC2yH9Fj5CLmr" ], "script": "base64:BgIdCAISABIECgIICBIDCgEIEgASBQoDCAEIEgMKAQg0ABBrX3JlZl9saW5rX293bmVyAhBrX3JlZl9saW5rX293bmVyABZrX3JlZl9saW5rX293bmVyX2NvdW50AhZrX3JlZl9saW5rX293bmVyX2NvdW50ABBrX3JlZl9vd25lcl9saW5rAhBrX3JlZl9vd25lcl9saW5rAAprX3JlZmVycmVyAgprX3JlZmVycmVyAAhrX2FjdGl2ZQIIa19hY3RpdmUADGtfZGVmYXVsdEZlZQIMa19kZWZhdWx0RmVlAA1rX3N3YXBBZGRyZXNzAg1rX3N3YXBBZGRyZXNzABRrX3JlZmVycmVyX3JlZl9jb3VudAIUa19yZWZlcnJlcl9yZWZfY291bnQAEWtfcmVmZXJyZXJfZWFybmVkAhFrX3JlZmVycmVyX2Vhcm5lZAASa19yZWZlcnJlcl9jbGFpbWVkAhJrX3JlZmVycmVyX2NsYWltZWQADWtfaW5pdGlhbGl6ZWQCDWtfaW5pdGlhbGl6ZWQAFGtfY29vcmRpbmF0b3JBZGRyZXNzAhRrX2Nvb3JkaW5hdG9yQWRkcmVzcwASa19nb3Zlcm5hbmNlX2Fzc2V0AgtrX2dvdl9hc3NldAANa19xdW90ZV9hc3NldAINa19xdW90ZV9hc3NldAASa19hZG1pbl9wdWJsaWNfa2V5AhJrX2FkbWluX3B1YmxpY19rZXkAD2tfYWRtaW5fYWRkcmVzcwIPa19hZG1pbl9hZGRyZXNzAAVrX2FtbQIFa19hbW0BDnRvQ29tcG9zaXRlS2V5AgRfa2V5CF9hZGRyZXNzCQCsAgIJAKwCAgUEX2tleQIBXwUIX2FkZHJlc3MBEmdldFJlZmVycmVyTGlua0tleQEFX2xpbmsJAKwCAgkArAICBRBrX3JlZl9saW5rX293bmVyAgFfBQVfbGluawEOZ2V0UmVmZXJyZXJLZXkBB190cmFkZXIJAKwCAgkArAICBQprX3JlZmVycmVyAgFfBQdfdHJhZGVyARZnZXRSZWZlcnJlclJlZkNvdW50S2V5AQlfcmVmZXJyZXIJAKwCAgkArAICBRRrX3JlZmVycmVyX3JlZl9jb3VudAIBXwUJX3JlZmVycmVyARdnZXRSZWZlcnJlckxpbmtDb3VudEtleQEJX3JlZmVycmVyCQCsAgIJAKwCAgUWa19yZWZfbGlua19vd25lcl9jb3VudAIBXwUJX3JlZmVycmVyARRnZXRSZWZlcnJlckxpbmtLZXlBdAIJX3JlZmVycmVyB19saW5rSWQJAKwCAgkArAICCQCsAgIJAKwCAgUQa19yZWZfb3duZXJfbGluawIBXwUJX3JlZmVycmVyAgFfCQCkAwEFB19saW5rSWQBFGdldFJlZmVycmVyRWFybmVkS2V5AQlfcmVmZXJyZXIJAKwCAgkArAICBRFrX3JlZmVycmVyX2Vhcm5lZAIBXwUJX3JlZmVycmVyARVnZXRSZWZlcnJlckNsYWltZWRLZXkBCV9yZWZlcnJlcgkArAICCQCsAgIFEmtfcmVmZXJyZXJfY2xhaW1lZAIBXwUJX3JlZmVycmVyAQxnZXRBY3RpdmVLZXkBB190cmFkZXIJAKwCAgkArAICBQhrX2FjdGl2ZQIBXwUHX3RyYWRlcgELY29vcmRpbmF0b3IACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUUa19jb29yZGluYXRvckFkZHJlc3MCE0Nvb3JkaW5hdG9yIG5vdCBzZXQBDmFkbWluUHVibGljS2V5AAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQELY29vcmRpbmF0b3IABRJrX2FkbWluX3B1YmxpY19rZXkBDGFkbWluQWRkcmVzcwAJAKYIAQkBEUBleHRyTmF0aXZlKDEwNTMpAgkBC2Nvb3JkaW5hdG9yAAUPa19hZG1pbl9hZGRyZXNzAQ9nb3Zlcm5hbmNlQXNzZXQACQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQtjb29yZGluYXRvcgAFEmtfZ292ZXJuYW5jZV9hc3NldAEKcXVvdGVBc3NldAAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgkBC2Nvb3JkaW5hdG9yAAUNa19xdW90ZV9hc3NldAELaXNXaGl0ZWxpc3QBCF9hZGRyZXNzCQELdmFsdWVPckVsc2UCCQCbCAIJAQtjb29yZGluYXRvcgAJAQ50b0NvbXBvc2l0ZUtleQIFBWtfYW1tBQhfYWRkcmVzcwcADERFQ0lNQUxfVU5JVAkAaAIAAQkAaAIJAGgCCQBoAgkAaAIJAGgCAAoACgAKAAoACgAKAQtzd2FwQWRkcmVzcwAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUNa19zd2FwQWRkcmVzcwIQTm93IHN3YXAgYWRkcmVzcwIUSW52YWxpZCBzd2FwIGFkZHJlc3MBEHVzZG5Gcm9tRGVjaW1hbHMBB19hbW91bnQJAGkCBQdfYW1vdW50AGQBDnVzZG5Ub0RlY2ltYWxzAQdfYW1vdW50CQBoAgUHX2Ftb3VudABkAQRkaXZkAgJfeAJfeQkAbgQFAl94BQxERUNJTUFMX1VOSVQFAl95BQhIQUxGRVZFTgEEbXVsZAICX3gCX3kJAG4EBQJfeAUCX3kFDERFQ0lNQUxfVU5JVAUISEFMRkVWRU4BA2FicwECX3gDCQBmAgUCX3gAAAUCX3gJAQEtAQUCX3gBBG1pbnYCAl94Al95AwkAZgIFAl94BQJfeQUCX3kFAl94AQNpbnQBAWsJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQFrCQCsAgICDW5vIHZhbHVlIGZvciAFAWsBBGludDABAWsJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBawAAAQtpbml0aWFsaXplZAAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUNa19pbml0aWFsaXplZAcBD2dldExpbmtSZWZlcnJlcgEFX2xpbmsJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBEmdldFJlZmVycmVyTGlua0tleQEFBV9saW5rAgABC2dldFJlZmVycmVyAQdfdHJhZGVyCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ5nZXRSZWZlcnJlcktleQEFB190cmFkZXICAAEKaXNSZWZlcnJhbAEHX3RyYWRlcgkBAiE9AgkBC2dldFJlZmVycmVyAQUHX3RyYWRlcgIAAQtpc0ZpcnN0VGltZQEHX3RyYWRlcgkAAAIJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwkBDGdldEFjdGl2ZUtleQEFB190cmFkZXIHBwENZ2V0RGVmYXVsdEZlZQAJAQNpbnQBBQxrX2RlZmF1bHRGZWUBE2dldFJlZmVycmVyUmVmQ291bnQBCV9yZWZlcnJlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEWZ2V0UmVmZXJyZXJSZWZDb3VudEtleQEFCV9yZWZlcnJlcgAAARRnZXRSZWZlcnJlckxpbmtDb3VudAEJX3JlZmVycmVyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARdnZXRSZWZlcnJlckxpbmtDb3VudEtleQEFCV9yZWZlcnJlcgAAARFnZXRSZWZlcnJlckVhcm5lZAEJX3JlZmVycmVyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARRnZXRSZWZlcnJlckVhcm5lZEtleQEFCV9yZWZlcnJlcgAAARJnZXRSZWZlcnJlckNsYWltZWQBCV9yZWZlcnJlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEVZ2V0UmVmZXJyZXJDbGFpbWVkS2V5AQUJX3JlZmVycmVyAAAGAWkBEmNyZWF0ZVJlZmVycmFsTGluawAEA3JhdwkArAICCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJANgEAQgFAWkPY2FsbGVyUHVibGljS2V5BAVieXRlcwkAmwMBBQNyYXcEBGxvbmcJANgEAQkA9wMBBQVieXRlcwQFc2hvcnQJAK8CAgUEbG9uZwAKBANrZXkJARJnZXRSZWZlcnJlckxpbmtLZXkBBQVzaG9ydAQGbGlua0lkCQBkAgkBFGdldFJlZmVycmVyTGlua0NvdW50AQkApQgBCAUBaQZjYWxsZXIAAQMJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFA2tleQkAAgECKlNob3J0IGxpbmsgZXhpc3RzLCB0cnkgZ2VuZXJhdGluZyBpdCBhZ2FpbgkAzAgCCQELU3RyaW5nRW50cnkCCQEUZ2V0UmVmZXJyZXJMaW5rS2V5QXQCCQClCAEIBQFpBmNhbGxlcgUGbGlua0lkBQVzaG9ydAkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkJAKUIAQgFAWkGY2FsbGVyBQNuaWwBaQEVYWNjZXB0UGF5bWVudFdpdGhMaW5rAgdfdHJhZGVyCF9yZWZMaW5rBApfcmF3QW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQDYW1tCQClCAEIBQFpBmNhbGxlcgMDCQEBIQEJAQtpc1doaXRlbGlzdAEFA2FtbQYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECJEludmFsaWQgYWNjZXB0UGF5bWVudFdpdGhMaW5rIHBhcmFtcwQLX2lzUmVmZXJyYWwJAQppc1JlZmVycmFsAQUHX3RyYWRlcgQMX2lzRmlyc3RUaW1lCQELaXNGaXJzdFRpbWUBBQdfdHJhZGVyAwMJAQppc1JlZmVycmFsAQUHX3RyYWRlcgYJAQtpc0ZpcnN0VGltZQEFB190cmFkZXIDBQtfaXNSZWZlcnJhbAQIcmVmZXJyZXIJAQtnZXRSZWZlcnJlcgEFB190cmFkZXIEA2ZlZQkBDWdldERlZmF1bHRGZWUABBBhbW91bnRUb1JlZmVycmVyCQEEbXVsZAIFCl9yYXdBbW91bnQFA2ZlZQQKYmVmb3JlU3dhcAkA8AcCBQR0aGlzCQEPZ292ZXJuYW5jZUFzc2V0AAMJAAACBQpiZWZvcmVTd2FwBQpiZWZvcmVTd2FwBAZkb1N3YXAJAPwHBAkBC3N3YXBBZGRyZXNzAAIEc3dhcAkAzAgCCQDYBAEJAQ9nb3Zlcm5hbmNlQXNzZXQACQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEKcXVvdGVBc3NldAAFEGFtb3VudFRvUmVmZXJyZXIFA25pbAMJAAACBQZkb1N3YXAFBmRvU3dhcAQJYWZ0ZXJTd2FwCQDwBwIFBHRoaXMJAQ9nb3Zlcm5hbmNlQXNzZXQAAwkAAAIFCWFmdGVyU3dhcAUJYWZ0ZXJTd2FwBBNhbW91bnRHb3ZUb1JlZmVycmVyCQBlAgUJYWZ0ZXJTd2FwBQpiZWZvcmVTd2FwAwkAAAIFE2Ftb3VudEdvdlRvUmVmZXJyZXIFE2Ftb3VudEdvdlRvUmVmZXJyZXIJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGdldFJlZmVycmVyRWFybmVkS2V5AQUIcmVmZXJyZXIJAGQCCQERZ2V0UmVmZXJyZXJFYXJuZWQBBQhyZWZlcnJlcgUTYW1vdW50R292VG9SZWZlcnJlcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUQYW1vdW50VG9SZWZlcnJlcggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwFEGFtb3VudFRvUmVmZXJyZXIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4ECHJlZmVycmVyCQEPZ2V0TGlua1JlZmVycmVyAQUIX3JlZkxpbmsDCQAAAgUIcmVmZXJyZXICAAkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBDGdldEFjdGl2ZUtleQEFB190cmFkZXIGBQNuaWwAAAQDZmVlCQENZ2V0RGVmYXVsdEZlZQAEEGFtb3VudFRvUmVmZXJyZXIJAQRtdWxkAgUKX3Jhd0Ftb3VudAUDZmVlBApiZWZvcmVTd2FwCQDwBwIFBHRoaXMJAQ9nb3Zlcm5hbmNlQXNzZXQAAwkAAAIFCmJlZm9yZVN3YXAFCmJlZm9yZVN3YXAEBmRvU3dhcAkA/AcECQELc3dhcEFkZHJlc3MAAgRzd2FwCQDMCAIJANgEAQkBD2dvdmVybmFuY2VBc3NldAAJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQpxdW90ZUFzc2V0AAUQYW1vdW50VG9SZWZlcnJlcgUDbmlsAwkAAAIFBmRvU3dhcAUGZG9Td2FwBAlhZnRlclN3YXAJAPAHAgUEdGhpcwkBD2dvdmVybmFuY2VBc3NldAADCQAAAgUJYWZ0ZXJTd2FwBQlhZnRlclN3YXAEE2Ftb3VudEdvdlRvUmVmZXJyZXIJAGUCBQlhZnRlclN3YXAFCmJlZm9yZVN3YXADCQAAAgUTYW1vdW50R292VG9SZWZlcnJlcgUTYW1vdW50R292VG9SZWZlcnJlcgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWZ2V0UmVmZXJyZXJSZWZDb3VudEtleQEFCHJlZmVycmVyCQBkAgkBE2dldFJlZmVycmVyUmVmQ291bnQBBQhyZWZlcnJlcgABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUZ2V0UmVmZXJyZXJFYXJuZWRLZXkBBQhyZWZlcnJlcgkAZAIJARFnZXRSZWZlcnJlckVhcm5lZAEFCHJlZmVycmVyBRNhbW91bnRHb3ZUb1JlZmVycmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5nZXRSZWZlcnJlcktleQEFB190cmFkZXIFCHJlZmVycmVyCQDMCAIJAQxCb29sZWFuRW50cnkCCQEMZ2V0QWN0aXZlS2V5AQUHX3RyYWRlcgYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBlAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFEGFtb3VudFRvUmVmZXJyZXIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUDbmlsBRBhbW91bnRUb1JlZmVycmVyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwAAAFpAQ1hY2NlcHRQYXltZW50AQdfdHJhZGVyBApfcmF3QW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQDYW1tCQClCAEIBQFpBmNhbGxlcgMDCQEBIQEJAQtpc1doaXRlbGlzdAEFA2FtbQYJAQEhAQkBC2luaXRpYWxpemVkAAkAAgECHEludmFsaWQgYWNjZXB0UGF5bWVudCBwYXJhbXMEC19pc1JlZmVycmFsCQEKaXNSZWZlcnJhbAEFB190cmFkZXIDBQtfaXNSZWZlcnJhbAQIcmVmZXJyZXIJAQtnZXRSZWZlcnJlcgEFB190cmFkZXIEA2ZlZQkBDWdldERlZmF1bHRGZWUABBBhbW91bnRUb1JlZmVycmVyCQEEbXVsZAIFCl9yYXdBbW91bnQFA2ZlZQQKYmVmb3JlU3dhcAkA8AcCBQR0aGlzCQEPZ292ZXJuYW5jZUFzc2V0AAMJAAACBQpiZWZvcmVTd2FwBQpiZWZvcmVTd2FwBAZkb1N3YXAJAPwHBAkBC3N3YXBBZGRyZXNzAAIEc3dhcAkAzAgCCQDYBAEJAQ9nb3Zlcm5hbmNlQXNzZXQACQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEKcXVvdGVBc3NldAAFEGFtb3VudFRvUmVmZXJyZXIFA25pbAMJAAACBQZkb1N3YXAFBmRvU3dhcAQJYWZ0ZXJTd2FwCQDwBwIFBHRoaXMJAQ9nb3Zlcm5hbmNlQXNzZXQAAwkAAAIFCWFmdGVyU3dhcAUJYWZ0ZXJTd2FwBBNhbW91bnRHb3ZUb1JlZmVycmVyCQBlAgUJYWZ0ZXJTd2FwBQpiZWZvcmVTd2FwAwkAAAIFE2Ftb3VudEdvdlRvUmVmZXJyZXIFE2Ftb3VudEdvdlRvUmVmZXJyZXIJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGdldFJlZmVycmVyRWFybmVkS2V5AQUIcmVmZXJyZXIJAGQCCQERZ2V0UmVmZXJyZXJFYXJuZWQBBQhyZWZlcnJlcgUTYW1vdW50R292VG9SZWZlcnJlcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUQYW1vdW50VG9SZWZlcnJlcggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQNuaWwFEGFtb3VudFRvUmVmZXJyZXIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFA25pbAAAAWkBDGNsYWltUmV3YXJkcwAECHJlZmVycmVyCQClCAEIBQFpBmNhbGxlcgQMdG90YWxSZXdhcmRzCQERZ2V0UmVmZXJyZXJFYXJuZWQBBQhyZWZlcnJlcgQMdG90YWxDbGFpbWVkCQESZ2V0UmVmZXJyZXJDbGFpbWVkAQUIcmVmZXJyZXIEB3RvQ2xhaW0JAGUCBQx0b3RhbFJld2FyZHMFDHRvdGFsQ2xhaW1lZAMJAGYCBQd0b0NsYWltAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJARVnZXRSZWZlcnJlckNsYWltZWRLZXkBBQhyZWZlcnJlcgkAZAIJARJnZXRSZWZlcnJlckNsYWltZWQBBQhyZWZlcnJlcgUHdG9DbGFpbQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB3RvQ2xhaW0JAQ9nb3Zlcm5hbmNlQXNzZXQABQNuaWwJAAIBAhBOb3RoaW5nIHRvIGNsYWltAWkBCmluaXRpYWxpemUDDF9jb29yZGluYXRvcgtfZGVmYXVsdEZlZQxfc3dhcEFkZHJlc3MDCQELaW5pdGlhbGl6ZWQACQACAQITQWxyZWFkeSBpbml0aWFsaXplZAkAzAgCCQELU3RyaW5nRW50cnkCBRRrX2Nvb3JkaW5hdG9yQWRkcmVzcwUMX2Nvb3JkaW5hdG9yCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWtfc3dhcEFkZHJlc3MFDF9zd2FwQWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUMa19kZWZhdWx0RmVlBQtfZGVmYXVsdEZlZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgUNa19pbml0aWFsaXplZAYFA25pbAFpAQ5zZXRTd2FwQWRkcmVzcwEMX3N3YXBBZGRyZXNzAwkBAiE9AggFAWkGY2FsbGVyCQEMYWRtaW5BZGRyZXNzAAkAAgECHUludmFsaWQgc2V0U3dhcEFkZHJlc3MgcGFyYW1zCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWtfc3dhcEFkZHJlc3MFDF9zd2FwQWRkcmVzcwUDbmlsAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAkBDmFkbWluUHVibGljS2V5ABXDTsw=", "height": 2247819, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7zoigKNpgR81ZhNZoqPtu4AUtrP4y4VoGP85qgPjn8Wi Next: A8RoaNxuSWcg7X6G1ECVao2vPNb8X7HoNqjsizy2tZpq Diff:
OldNewDifferences
1212 let k_active = "k_active"
1313
1414 let k_defaultFee = "k_defaultFee"
15+
16+let k_swapAddress = "k_swapAddress"
1517
1618 let k_referrer_ref_count = "k_referrer_ref_count"
1719
2830 let k_quote_asset = "k_quote_asset"
2931
3032 let k_admin_public_key = "k_admin_public_key"
33+
34+let k_admin_address = "k_admin_address"
3135
3236 let k_amm = "k_amm"
3337
6468 func adminPublicKey () = fromBase58String(getStringValue(coordinator(), k_admin_public_key))
6569
6670
71+func adminAddress () = addressFromString(getStringValue(coordinator(), k_admin_address))
72+
73+
6774 func governanceAsset () = fromBase58String(getStringValue(coordinator(), k_governance_asset))
6875
6976
7582
7683 let DECIMAL_UNIT = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
7784
78-let DURATION = ((60 * 60) * 24)
85+func swapAddress () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, k_swapAddress), "Now swap address")), "Invalid swap address")
7986
80-let NO_ADDRESS = ""
81-
82-let NO_STAKER = 0
8387
8488 func usdnFromDecimals (_amount) = (_amount / 100)
8589
156160
157161 @Callable(i)
158162 func acceptPaymentWithLink (_trader,_refLink) = {
159- let _amount = i.payments[0].amount
163+ let _rawAmount = i.payments[0].amount
160164 let amm = toString(i.caller)
161165 if (if (!(isWhitelist(amm)))
162166 then true
172176 then {
173177 let referrer = getReferrer(_trader)
174178 let fee = getDefaultFee()
175- let amountToReferrer = muld(_amount, fee)
176- $Tuple2([IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountToReferrer)), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
179+ let amountToReferrer = muld(_rawAmount, fee)
180+ let beforeSwap = assetBalance(this, governanceAsset())
181+ if ((beforeSwap == beforeSwap))
182+ then {
183+ let doSwap = invoke(swapAddress(), "swap", [toBase58String(governanceAsset()), 0], [AttachedPayment(quoteAsset(), amountToReferrer)])
184+ if ((doSwap == doSwap))
185+ then {
186+ let afterSwap = assetBalance(this, governanceAsset())
187+ if ((afterSwap == afterSwap))
188+ then {
189+ let amountGovToReferrer = (afterSwap - beforeSwap)
190+ if ((amountGovToReferrer == amountGovToReferrer))
191+ then $Tuple2([IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountGovToReferrer)), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
192+ else throw("Strict value is not equal to itself.")
193+ }
194+ else throw("Strict value is not equal to itself.")
195+ }
196+ else throw("Strict value is not equal to itself.")
197+ }
198+ else throw("Strict value is not equal to itself.")
177199 }
178200 else {
179201 let referrer = getLinkReferrer(_refLink)
181203 then $Tuple2([ScriptTransfer(i.caller, i.payments[0].amount, i.payments[0].assetId), BooleanEntry(getActiveKey(_trader), true)], 0)
182204 else {
183205 let fee = getDefaultFee()
184- let amountToReferrer = muld(_amount, fee)
185- $Tuple2([IntegerEntry(getReferrerRefCountKey(referrer), (getReferrerRefCount(referrer) + 1)), IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountToReferrer)), StringEntry(getReferrerKey(_trader), referrer), BooleanEntry(getActiveKey(_trader), true), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
206+ let amountToReferrer = muld(_rawAmount, fee)
207+ let beforeSwap = assetBalance(this, governanceAsset())
208+ if ((beforeSwap == beforeSwap))
209+ then {
210+ let doSwap = invoke(swapAddress(), "swap", [toBase58String(governanceAsset()), 0], [AttachedPayment(quoteAsset(), amountToReferrer)])
211+ if ((doSwap == doSwap))
212+ then {
213+ let afterSwap = assetBalance(this, governanceAsset())
214+ if ((afterSwap == afterSwap))
215+ then {
216+ let amountGovToReferrer = (afterSwap - beforeSwap)
217+ if ((amountGovToReferrer == amountGovToReferrer))
218+ then $Tuple2([IntegerEntry(getReferrerRefCountKey(referrer), (getReferrerRefCount(referrer) + 1)), IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountGovToReferrer)), StringEntry(getReferrerKey(_trader), referrer), BooleanEntry(getActiveKey(_trader), true), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
219+ else throw("Strict value is not equal to itself.")
220+ }
221+ else throw("Strict value is not equal to itself.")
222+ }
223+ else throw("Strict value is not equal to itself.")
224+ }
225+ else throw("Strict value is not equal to itself.")
186226 }
187227 }
188228 else $Tuple2([ScriptTransfer(i.caller, i.payments[0].amount, i.payments[0].assetId)], 0)
193233
194234 @Callable(i)
195235 func acceptPayment (_trader) = {
196- let _amount = i.payments[0].amount
236+ let _rawAmount = i.payments[0].amount
197237 let amm = toString(i.caller)
198238 if (if (!(isWhitelist(amm)))
199239 then true
205245 then {
206246 let referrer = getReferrer(_trader)
207247 let fee = getDefaultFee()
208- let amountToReferrer = muld(_amount, fee)
209- $Tuple2([IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountToReferrer)), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
248+ let amountToReferrer = muld(_rawAmount, fee)
249+ let beforeSwap = assetBalance(this, governanceAsset())
250+ if ((beforeSwap == beforeSwap))
251+ then {
252+ let doSwap = invoke(swapAddress(), "swap", [toBase58String(governanceAsset()), 0], [AttachedPayment(quoteAsset(), amountToReferrer)])
253+ if ((doSwap == doSwap))
254+ then {
255+ let afterSwap = assetBalance(this, governanceAsset())
256+ if ((afterSwap == afterSwap))
257+ then {
258+ let amountGovToReferrer = (afterSwap - beforeSwap)
259+ if ((amountGovToReferrer == amountGovToReferrer))
260+ then $Tuple2([IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountGovToReferrer)), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
261+ else throw("Strict value is not equal to itself.")
262+ }
263+ else throw("Strict value is not equal to itself.")
264+ }
265+ else throw("Strict value is not equal to itself.")
266+ }
267+ else throw("Strict value is not equal to itself.")
210268 }
211269 else $Tuple2([ScriptTransfer(i.caller, i.payments[0].amount, i.payments[0].assetId)], 0)
212270 }
221279 let totalClaimed = getReferrerClaimed(referrer)
222280 let toClaim = (totalRewards - totalClaimed)
223281 if ((toClaim > 0))
224- then [IntegerEntry(getReferrerClaimedKey(referrer), (getReferrerClaimed(referrer) + toClaim)), ScriptTransfer(i.caller, toClaim, quoteAsset())]
282+ then [IntegerEntry(getReferrerClaimedKey(referrer), (getReferrerClaimed(referrer) + toClaim)), ScriptTransfer(i.caller, toClaim, governanceAsset())]
225283 else throw("Nothing to claim")
226284 }
227285
228286
229287
230288 @Callable(i)
231-func initialize (_coordinator,_defaultFee) = if (initialized())
289+func initialize (_coordinator,_defaultFee,_swapAddress) = if (initialized())
232290 then throw("Already initialized")
233- else [StringEntry(k_coordinatorAddress, _coordinator), IntegerEntry(k_defaultFee, _defaultFee), BooleanEntry(k_initialized, true)]
291+ else [StringEntry(k_coordinatorAddress, _coordinator), StringEntry(k_swapAddress, _swapAddress), IntegerEntry(k_defaultFee, _defaultFee), BooleanEntry(k_initialized, true)]
292+
293+
294+
295+@Callable(i)
296+func setSwapAddress (_swapAddress) = if ((i.caller != adminAddress()))
297+ then throw("Invalid setSwapAddress params")
298+ else [StringEntry(k_swapAddress, _swapAddress)]
234299
235300
236301 @Verifier(tx)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let k_ref_link_owner = "k_ref_link_owner"
55
66 let k_ref_link_owner_count = "k_ref_link_owner_count"
77
88 let k_ref_owner_link = "k_ref_owner_link"
99
1010 let k_referrer = "k_referrer"
1111
1212 let k_active = "k_active"
1313
1414 let k_defaultFee = "k_defaultFee"
15+
16+let k_swapAddress = "k_swapAddress"
1517
1618 let k_referrer_ref_count = "k_referrer_ref_count"
1719
1820 let k_referrer_earned = "k_referrer_earned"
1921
2022 let k_referrer_claimed = "k_referrer_claimed"
2123
2224 let k_initialized = "k_initialized"
2325
2426 let k_coordinatorAddress = "k_coordinatorAddress"
2527
2628 let k_governance_asset = "k_gov_asset"
2729
2830 let k_quote_asset = "k_quote_asset"
2931
3032 let k_admin_public_key = "k_admin_public_key"
33+
34+let k_admin_address = "k_admin_address"
3135
3236 let k_amm = "k_amm"
3337
3438 func toCompositeKey (_key,_address) = ((_key + "_") + _address)
3539
3640
3741 func getReferrerLinkKey (_link) = ((k_ref_link_owner + "_") + _link)
3842
3943
4044 func getReferrerKey (_trader) = ((k_referrer + "_") + _trader)
4145
4246
4347 func getReferrerRefCountKey (_referrer) = ((k_referrer_ref_count + "_") + _referrer)
4448
4549
4650 func getReferrerLinkCountKey (_referrer) = ((k_ref_link_owner_count + "_") + _referrer)
4751
4852
4953 func getReferrerLinkKeyAt (_referrer,_linkId) = ((((k_ref_owner_link + "_") + _referrer) + "_") + toString(_linkId))
5054
5155
5256 func getReferrerEarnedKey (_referrer) = ((k_referrer_earned + "_") + _referrer)
5357
5458
5559 func getReferrerClaimedKey (_referrer) = ((k_referrer_claimed + "_") + _referrer)
5660
5761
5862 func getActiveKey (_trader) = ((k_active + "_") + _trader)
5963
6064
6165 func coordinator () = valueOrErrorMessage(addressFromString(getStringValue(this, k_coordinatorAddress)), "Coordinator not set")
6266
6367
6468 func adminPublicKey () = fromBase58String(getStringValue(coordinator(), k_admin_public_key))
6569
6670
71+func adminAddress () = addressFromString(getStringValue(coordinator(), k_admin_address))
72+
73+
6774 func governanceAsset () = fromBase58String(getStringValue(coordinator(), k_governance_asset))
6875
6976
7077 func quoteAsset () = fromBase58String(getStringValue(coordinator(), k_quote_asset))
7178
7279
7380 func isWhitelist (_address) = valueOrElse(getBoolean(coordinator(), toCompositeKey(k_amm, _address)), false)
7481
7582
7683 let DECIMAL_UNIT = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
7784
78-let DURATION = ((60 * 60) * 24)
85+func swapAddress () = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, k_swapAddress), "Now swap address")), "Invalid swap address")
7986
80-let NO_ADDRESS = ""
81-
82-let NO_STAKER = 0
8387
8488 func usdnFromDecimals (_amount) = (_amount / 100)
8589
8690
8791 func usdnToDecimals (_amount) = (_amount * 100)
8892
8993
9094 func divd (_x,_y) = fraction(_x, DECIMAL_UNIT, _y, HALFEVEN)
9195
9296
9397 func muld (_x,_y) = fraction(_x, _y, DECIMAL_UNIT, HALFEVEN)
9498
9599
96100 func abs (_x) = if ((_x > 0))
97101 then _x
98102 else -(_x)
99103
100104
101105 func minv (_x,_y) = if ((_x > _y))
102106 then _y
103107 else _x
104108
105109
106110 func int (k) = valueOrErrorMessage(getInteger(this, k), ("no value for " + k))
107111
108112
109113 func int0 (k) = valueOrElse(getInteger(this, k), 0)
110114
111115
112116 func initialized () = valueOrElse(getBoolean(this, k_initialized), false)
113117
114118
115119 func getLinkReferrer (_link) = valueOrElse(getString(this, getReferrerLinkKey(_link)), "")
116120
117121
118122 func getReferrer (_trader) = valueOrElse(getString(this, getReferrerKey(_trader)), "")
119123
120124
121125 func isReferral (_trader) = (getReferrer(_trader) != "")
122126
123127
124128 func isFirstTime (_trader) = (valueOrElse(getBoolean(this, getActiveKey(_trader)), false) == false)
125129
126130
127131 func getDefaultFee () = int(k_defaultFee)
128132
129133
130134 func getReferrerRefCount (_referrer) = valueOrElse(getInteger(this, getReferrerRefCountKey(_referrer)), 0)
131135
132136
133137 func getReferrerLinkCount (_referrer) = valueOrElse(getInteger(this, getReferrerLinkCountKey(_referrer)), 0)
134138
135139
136140 func getReferrerEarned (_referrer) = valueOrElse(getInteger(this, getReferrerEarnedKey(_referrer)), 0)
137141
138142
139143 func getReferrerClaimed (_referrer) = valueOrElse(getInteger(this, getReferrerClaimedKey(_referrer)), 0)
140144
141145
142146 @Callable(i)
143147 func createReferralLink () = {
144148 let raw = (toBase58String(i.transactionId) + toBase58String(i.callerPublicKey))
145149 let bytes = toBytes(raw)
146150 let long = toBase58String(sha256(bytes))
147151 let short = take(long, 10)
148152 let key = getReferrerLinkKey(short)
149153 let linkId = (getReferrerLinkCount(toString(i.caller)) + 1)
150154 if (isDefined(getString(this, key)))
151155 then throw("Short link exists, try generating it again")
152156 else [StringEntry(getReferrerLinkKeyAt(toString(i.caller), linkId), short), StringEntry(key, toString(i.caller))]
153157 }
154158
155159
156160
157161 @Callable(i)
158162 func acceptPaymentWithLink (_trader,_refLink) = {
159- let _amount = i.payments[0].amount
163+ let _rawAmount = i.payments[0].amount
160164 let amm = toString(i.caller)
161165 if (if (!(isWhitelist(amm)))
162166 then true
163167 else !(initialized()))
164168 then throw("Invalid acceptPaymentWithLink params")
165169 else {
166170 let _isReferral = isReferral(_trader)
167171 let _isFirstTime = isFirstTime(_trader)
168172 if (if (isReferral(_trader))
169173 then true
170174 else isFirstTime(_trader))
171175 then if (_isReferral)
172176 then {
173177 let referrer = getReferrer(_trader)
174178 let fee = getDefaultFee()
175- let amountToReferrer = muld(_amount, fee)
176- $Tuple2([IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountToReferrer)), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
179+ let amountToReferrer = muld(_rawAmount, fee)
180+ let beforeSwap = assetBalance(this, governanceAsset())
181+ if ((beforeSwap == beforeSwap))
182+ then {
183+ let doSwap = invoke(swapAddress(), "swap", [toBase58String(governanceAsset()), 0], [AttachedPayment(quoteAsset(), amountToReferrer)])
184+ if ((doSwap == doSwap))
185+ then {
186+ let afterSwap = assetBalance(this, governanceAsset())
187+ if ((afterSwap == afterSwap))
188+ then {
189+ let amountGovToReferrer = (afterSwap - beforeSwap)
190+ if ((amountGovToReferrer == amountGovToReferrer))
191+ then $Tuple2([IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountGovToReferrer)), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
192+ else throw("Strict value is not equal to itself.")
193+ }
194+ else throw("Strict value is not equal to itself.")
195+ }
196+ else throw("Strict value is not equal to itself.")
197+ }
198+ else throw("Strict value is not equal to itself.")
177199 }
178200 else {
179201 let referrer = getLinkReferrer(_refLink)
180202 if ((referrer == ""))
181203 then $Tuple2([ScriptTransfer(i.caller, i.payments[0].amount, i.payments[0].assetId), BooleanEntry(getActiveKey(_trader), true)], 0)
182204 else {
183205 let fee = getDefaultFee()
184- let amountToReferrer = muld(_amount, fee)
185- $Tuple2([IntegerEntry(getReferrerRefCountKey(referrer), (getReferrerRefCount(referrer) + 1)), IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountToReferrer)), StringEntry(getReferrerKey(_trader), referrer), BooleanEntry(getActiveKey(_trader), true), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
206+ let amountToReferrer = muld(_rawAmount, fee)
207+ let beforeSwap = assetBalance(this, governanceAsset())
208+ if ((beforeSwap == beforeSwap))
209+ then {
210+ let doSwap = invoke(swapAddress(), "swap", [toBase58String(governanceAsset()), 0], [AttachedPayment(quoteAsset(), amountToReferrer)])
211+ if ((doSwap == doSwap))
212+ then {
213+ let afterSwap = assetBalance(this, governanceAsset())
214+ if ((afterSwap == afterSwap))
215+ then {
216+ let amountGovToReferrer = (afterSwap - beforeSwap)
217+ if ((amountGovToReferrer == amountGovToReferrer))
218+ then $Tuple2([IntegerEntry(getReferrerRefCountKey(referrer), (getReferrerRefCount(referrer) + 1)), IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountGovToReferrer)), StringEntry(getReferrerKey(_trader), referrer), BooleanEntry(getActiveKey(_trader), true), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
219+ else throw("Strict value is not equal to itself.")
220+ }
221+ else throw("Strict value is not equal to itself.")
222+ }
223+ else throw("Strict value is not equal to itself.")
224+ }
225+ else throw("Strict value is not equal to itself.")
186226 }
187227 }
188228 else $Tuple2([ScriptTransfer(i.caller, i.payments[0].amount, i.payments[0].assetId)], 0)
189229 }
190230 }
191231
192232
193233
194234 @Callable(i)
195235 func acceptPayment (_trader) = {
196- let _amount = i.payments[0].amount
236+ let _rawAmount = i.payments[0].amount
197237 let amm = toString(i.caller)
198238 if (if (!(isWhitelist(amm)))
199239 then true
200240 else !(initialized()))
201241 then throw("Invalid acceptPayment params")
202242 else {
203243 let _isReferral = isReferral(_trader)
204244 if (_isReferral)
205245 then {
206246 let referrer = getReferrer(_trader)
207247 let fee = getDefaultFee()
208- let amountToReferrer = muld(_amount, fee)
209- $Tuple2([IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountToReferrer)), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
248+ let amountToReferrer = muld(_rawAmount, fee)
249+ let beforeSwap = assetBalance(this, governanceAsset())
250+ if ((beforeSwap == beforeSwap))
251+ then {
252+ let doSwap = invoke(swapAddress(), "swap", [toBase58String(governanceAsset()), 0], [AttachedPayment(quoteAsset(), amountToReferrer)])
253+ if ((doSwap == doSwap))
254+ then {
255+ let afterSwap = assetBalance(this, governanceAsset())
256+ if ((afterSwap == afterSwap))
257+ then {
258+ let amountGovToReferrer = (afterSwap - beforeSwap)
259+ if ((amountGovToReferrer == amountGovToReferrer))
260+ then $Tuple2([IntegerEntry(getReferrerEarnedKey(referrer), (getReferrerEarned(referrer) + amountGovToReferrer)), ScriptTransfer(i.caller, (i.payments[0].amount - amountToReferrer), i.payments[0].assetId)], amountToReferrer)
261+ else throw("Strict value is not equal to itself.")
262+ }
263+ else throw("Strict value is not equal to itself.")
264+ }
265+ else throw("Strict value is not equal to itself.")
266+ }
267+ else throw("Strict value is not equal to itself.")
210268 }
211269 else $Tuple2([ScriptTransfer(i.caller, i.payments[0].amount, i.payments[0].assetId)], 0)
212270 }
213271 }
214272
215273
216274
217275 @Callable(i)
218276 func claimRewards () = {
219277 let referrer = toString(i.caller)
220278 let totalRewards = getReferrerEarned(referrer)
221279 let totalClaimed = getReferrerClaimed(referrer)
222280 let toClaim = (totalRewards - totalClaimed)
223281 if ((toClaim > 0))
224- then [IntegerEntry(getReferrerClaimedKey(referrer), (getReferrerClaimed(referrer) + toClaim)), ScriptTransfer(i.caller, toClaim, quoteAsset())]
282+ then [IntegerEntry(getReferrerClaimedKey(referrer), (getReferrerClaimed(referrer) + toClaim)), ScriptTransfer(i.caller, toClaim, governanceAsset())]
225283 else throw("Nothing to claim")
226284 }
227285
228286
229287
230288 @Callable(i)
231-func initialize (_coordinator,_defaultFee) = if (initialized())
289+func initialize (_coordinator,_defaultFee,_swapAddress) = if (initialized())
232290 then throw("Already initialized")
233- else [StringEntry(k_coordinatorAddress, _coordinator), IntegerEntry(k_defaultFee, _defaultFee), BooleanEntry(k_initialized, true)]
291+ else [StringEntry(k_coordinatorAddress, _coordinator), StringEntry(k_swapAddress, _swapAddress), IntegerEntry(k_defaultFee, _defaultFee), BooleanEntry(k_initialized, true)]
292+
293+
294+
295+@Callable(i)
296+func setSwapAddress (_swapAddress) = if ((i.caller != adminAddress()))
297+ then throw("Invalid setSwapAddress params")
298+ else [StringEntry(k_swapAddress, _swapAddress)]
234299
235300
236301 @Verifier(tx)
237302 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], adminPublicKey())
238303

github/deemru/w8io/873ac7e 
69.68 ms