tx · 5acnfoAU9CZCqooSmHi73jXLwaMraXiQBecBcKM6zvi7 3NAsFvuLwxz1iUtZ9fmhfmSN16r9NEsPqsh: -0.01400000 Waves 2022.07.26 18:46 [2156968] smart account 3NAsFvuLwxz1iUtZ9fmhfmSN16r9NEsPqsh > SELF 0.00000000 Waves
{ "type": 13, "id": "5acnfoAU9CZCqooSmHi73jXLwaMraXiQBecBcKM6zvi7", "fee": 1400000, "feeAssetId": null, "timestamp": 1658850398671, "version": 1, "sender": "3NAsFvuLwxz1iUtZ9fmhfmSN16r9NEsPqsh", "senderPublicKey": "33fpjdpM9FMu87RZKePniPardKqQXM96sm7VhAk3JEVQ", "proofs": [ "42Q6bDKx9cpTSYLt5jri1Qz2MmTJV5LR9MD1bzEWiPzwyzZpAAcrSoesVUJKKMiM3Qt9Dusdkrsrf3adrNBDUNPb" ], "script": "base64:BgIyCAISBQoDCAgIEgYKBAgICAISBQoDCAgEEgYKBAgIAQESAwoBCBIECgIICBIDCgEIEgAUAAlzZXBhcmF0b3ICAl9fABNrZXlCYWNrZW5kUHVibGljS2V5CQC5CQIJAMwIAgICJXMJAMwIAgIQYmFja2VuZFB1bGJpY0tleQUDbmlsBQlzZXBhcmF0b3IBG2tleUV4aXN0c1JlZmVycmVyVG9SZWZlcnJhbAMLcHJvZ3JhbU5hbWUPcmVmZXJyZXJBZGRyZXNzD3JlZmVycmFsQWRkcmVzcwkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAICGGV4aXN0c1JlZmVycmVyVG9SZWZlcnJhbAkAzAgCBQtwcm9ncmFtTmFtZQkAzAgCBQ9yZWZlcnJlckFkZHJlc3MJAMwIAgUPcmVmZXJyYWxBZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEKa2V5Q2xhaW1lZAILcHJvZ3JhbU5hbWUOY2xhaW1lckFkZHJlc3MJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCAgdjbGFpbWVkCQDMCAIFC3Byb2dyYW1OYW1lCQDMCAIFDmNsYWltZXJBZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEMa2V5VW5jbGFpbWVkAgtwcm9ncmFtTmFtZQ5jbGFpbWVyQWRkcmVzcwkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAICCXVuY2xhaW1lZAkAzAgCBQtwcm9ncmFtTmFtZQkAzAgCBQ5jbGFpbWVyQWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBC2tleVJlZmVycmVyAgtwcm9ncmFtTmFtZQ9yZWZlcnJhbEFkZHJlc3MJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIIcmVmZXJyZXIJAMwIAgULcHJvZ3JhbU5hbWUJAMwIAgUPcmVmZXJyYWxBZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEOa2V5UHJvZ3JhbU5hbWUBC3Byb2dyYW1OYW1lCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgtwcm9ncmFtTmFtZQkAzAgCBQtwcm9ncmFtTmFtZQUDbmlsBQlzZXBhcmF0b3IBFWtleVRvdGFsUmVmZXJyYWxDb3VudAILcHJvZ3JhbU5hbWUPcmVmZXJyZXJBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICEnRvdGFsUmVmZXJyYWxDb3VudAkAzAgCBQtwcm9ncmFtTmFtZQkAzAgCBQ9yZWZlcnJlckFkZHJlc3MFA25pbAUJc2VwYXJhdG9yARZrZXlBY3RpdmVSZWZlcnJhbENvdW50Agtwcm9ncmFtTmFtZQ9yZWZlcnJlckFkZHJlc3MJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgITYWN0aXZlUmVmZXJyYWxDb3VudAkAzAgCBQtwcm9ncmFtTmFtZQkAzAgCBQ9yZWZlcnJlckFkZHJlc3MFA25pbAUJc2VwYXJhdG9yARNrZXlJc1JlZmVycmFsQWN0aXZlAgtwcm9ncmFtTmFtZQ9yZWZlcnJhbEFkZHJlc3MJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIOYWN0aXZlUmVmZXJyYWwJAMwIAgULcHJvZ3JhbU5hbWUJAMwIAgUPcmVmZXJyYWxBZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEPa2V5Q2xhaW1lZFRvdGFsAQtwcm9ncmFtTmFtZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIMY2xhaW1lZFRvdGFsCQDMCAIFC3Byb2dyYW1OYW1lBQNuaWwFCXNlcGFyYXRvcgEQa2V5UmV3YXJkQXNzZXRJZAELcHJvZ3JhbU5hbWUJALkJAgkAzAgCAgQlcyVzCQDMCAICDXJld2FyZEFzc2V0SWQJAMwIAgULcHJvZ3JhbU5hbWUFA25pbAUJc2VwYXJhdG9yARNrZXlUcmVhc3VyeUNvbnRyYWN0AQtwcm9ncmFtTmFtZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIQdHJlYXN1cnlDb250cmFjdAkAzAgCBQtwcm9ncmFtTmFtZQUDbmlsBQlzZXBhcmF0b3IBGWtleUltcGxlbWVudGF0aW9uQ29udHJhY3QBC3Byb2dyYW1OYW1lCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhZpbXBsZW1lbnRhdGlvbkNvbnRyYWN0CQDMCAIFC3Byb2dyYW1OYW1lBQNuaWwFCXNlcGFyYXRvcgETa2V5TWFuYWdlclB1YmxpY0tleQACFCVzX19tYW5hZ2VyUHVibGljS2V5ARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEIdGhyb3dFcnIBA21zZwkAAgEJALkJAgkAzAgCAg5yZWZlcnJhbC5yaWRlOgkAzAgCBQNtc2cFA25pbAIBIAEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBE2tleU1hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQttdXN0TWFuYWdlcgEBaQQCcGQJAQh0aHJvd0VycgECEXBlcm1pc3Npb24gZGVuaWVkBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFAnBkAwkAAQIFByRtYXRjaDACBFVuaXQDCQAAAggFAWkGY2FsbGVyBQR0aGlzBgUCcGQJAAIBAgtNYXRjaCBlcnJvcggBaQEVY3JlYXRlUmVmZXJyYWxQcm9ncmFtAwtwcm9ncmFtTmFtZRB0cmVhc3VyeUNvbnRyYWN0FmltcGxlbWVudGF0aW9uQ29udHJhY3QEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQQY2hlY2tQcm9ncmFtTmFtZQMJAAACCQCgCAEFC3Byb2dyYW1OYW1lBgYJAQh0aHJvd0VycgECG3Byb2dyYW0gbmFtZSBhbHJlYWR5IGV4aXN0cwMJAAACBRBjaGVja1Byb2dyYW1OYW1lBRBjaGVja1Byb2dyYW1OYW1lCQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQ5rZXlQcm9ncmFtTmFtZQEFC3Byb2dyYW1OYW1lBgkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5VHJlYXN1cnlDb250cmFjdAEFC3Byb2dyYW1OYW1lBRB0cmVhc3VyeUNvbnRyYWN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJARlrZXlJbXBsZW1lbnRhdGlvbkNvbnRyYWN0AQULcHJvZ3JhbU5hbWUFFmltcGxlbWVudGF0aW9uQ29udHJhY3QFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjcmVhdGVQYWlyBAtwcm9ncmFtTmFtZQ9yZWZlcnJlckFkZHJlc3MPcmVmZXJyYWxBZGRyZXNzCXNpZ25hdHVyZQQgcGFpclJlZmVycmVyVG9SZWZlcnJhbEV4aXN0Q2hlY2sDCQAAAgkAoggBCQEba2V5RXhpc3RzUmVmZXJyZXJUb1JlZmVycmFsAwULcHJvZ3JhbU5hbWUFD3JlZmVycmVyQWRkcmVzcwUPcmVmZXJyYWxBZGRyZXNzBQR1bml0BgkBCHRocm93RXJyAQITcGFpciBhbHJlYWR5IGV4aXN0cwMJAAACBSBwYWlyUmVmZXJyZXJUb1JlZmVycmFsRXhpc3RDaGVjawUgcGFpclJlZmVycmVyVG9SZWZlcnJhbEV4aXN0Q2hlY2sEBHBhaXIJAJsDAQkAuQkCCQDMCAIFC3Byb2dyYW1OYW1lCQDMCAIFD3JlZmVycmVyQWRkcmVzcwkAzAgCBQ9yZWZlcnJhbEFkZHJlc3MFA25pbAIBOgQQYmFja2VuZFB1YmxpY0tleQkAmwMBCQEFdmFsdWUBCQCiCAEFE2tleUJhY2tlbmRQdWJsaWNLZXkEEXZhbGlkYXRlU2lnbmF0dXJlAwkA9AMDBQRwYWlyBQlzaWduYXR1cmUFEGJhY2tlbmRQdWJsaWNLZXkGCQEIdGhyb3dFcnIBAg1iYWQgc2lnbmF0dXJlAwkAAAIFEXZhbGlkYXRlU2lnbmF0dXJlBRF2YWxpZGF0ZVNpZ25hdHVyZQQSdG90YWxSZWZlcnJhbENvdW50CQELdmFsdWVPckVsc2UCCQCfCAEJARVrZXlUb3RhbFJlZmVycmFsQ291bnQCBQtwcm9ncmFtTmFtZQUPcmVmZXJyZXJBZGRyZXNzAAAEFW5ld1RvdGFsUmVmZXJyYWxDb3VudAkAZAIFEnRvdGFsUmVmZXJyYWxDb3VudAABCQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJARtrZXlFeGlzdHNSZWZlcnJlclRvUmVmZXJyYWwDBQtwcm9ncmFtTmFtZQUPcmVmZXJyZXJBZGRyZXNzBQ9yZWZlcnJhbEFkZHJlc3MGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5VG90YWxSZWZlcnJhbENvdW50AgULcHJvZ3JhbU5hbWUFD3JlZmVycmVyQWRkcmVzcwUVbmV3VG90YWxSZWZlcnJhbENvdW50BQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQMLcHJvZ3JhbU5hbWUPcmVmZXJyYWxBZGRyZXNzCGlzQWN0aXZlBBZpbXBsZW1lbnRhdGlvbkNvbnRyYWN0CQEFdmFsdWUBCQCiCAEJARlrZXlJbXBsZW1lbnRhdGlvbkNvbnRyYWN0AQULcHJvZ3JhbU5hbWUEEGlzUmVmZXJyYWxBY3RpdmUJAQIhPQIJAKAIAQkBE2tleUlzUmVmZXJyYWxBY3RpdmUCBQtwcm9ncmFtTmFtZQUPcmVmZXJyYWxBZGRyZXNzBQR1bml0BA9yZWZlcnJlckFkZHJlc3MJAQV2YWx1ZQEJAKIIAQkBC2tleVJlZmVycmVyAgULcHJvZ3JhbU5hbWUFD3JlZmVycmFsQWRkcmVzcwQLY2hlY2tDYWxsZXIDCQAAAgkApQgBCAUBaQZjYWxsZXIFFmltcGxlbWVudGF0aW9uQ29udHJhY3QGCQEIdGhyb3dFcnIBAhFwZXJtaXNzaW9uIGRlbmllZAMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEBnVwZGF0ZQMJAAACBRBpc1JlZmVycmFsQWN0aXZlBQhpc0FjdGl2ZQkAlAoCBQNuaWwFBHVuaXQEBnVwZGF0ZQMJAAACBQhpc0FjdGl2ZQYEFm5ld0FjdGl2ZVJlZmVycmFsQ291bnQJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlBY3RpdmVSZWZlcnJhbENvdW50AgULcHJvZ3JhbU5hbWUFD3JlZmVycmVyQWRkcmVzcwAAAAEJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBE2tleUlzUmVmZXJyYWxBY3RpdmUCBQtwcm9ncmFtTmFtZQUPcmVmZXJyYWxBZGRyZXNzBgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleUFjdGl2ZVJlZmVycmFsQ291bnQCBQtwcm9ncmFtTmFtZQUPcmVmZXJyZXJBZGRyZXNzBRZuZXdBY3RpdmVSZWZlcnJhbENvdW50BQNuaWwFBHVuaXQEFm5ld0FjdGl2ZVJlZmVycmFsQ291bnQJAGUCCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlBY3RpdmVSZWZlcnJhbENvdW50AgULcHJvZ3JhbU5hbWUFD3JlZmVycmVyQWRkcmVzcwAAAAEJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQETa2V5SXNSZWZlcnJhbEFjdGl2ZQIFC3Byb2dyYW1OYW1lBQ9yZWZlcnJhbEFkZHJlc3MJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlBY3RpdmVSZWZlcnJhbENvdW50AgULcHJvZ3JhbU5hbWUFD3JlZmVycmVyQWRkcmVzcwUWbmV3QWN0aXZlUmVmZXJyYWxDb3VudAUDbmlsBQR1bml0BQZ1cGRhdGUFBnVwZGF0ZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxpbmNVbmNsYWltZWQEC3Byb2dyYW1OYW1lD3JlZmVycmFsQWRkcmVzcw5yZWZlcnJlclJld2FyZA5yZWZlcnJhbFJld2FyZAQWaW1wbGVtZW50YXRpb25Db250cmFjdAkBBXZhbHVlAQkAoggBCQEZa2V5SW1wbGVtZW50YXRpb25Db250cmFjdAEFC3Byb2dyYW1OYW1lBAtjaGVja0NhbGxlcgMJAAACCQClCAEIBQFpBmNhbGxlcgUWaW1wbGVtZW50YXRpb25Db250cmFjdAYJAQh0aHJvd0VycgECEXBlcm1pc3Npb24gZGVuaWVkAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQPcmVmZXJyZXJBZGRyZXNzCQEFdmFsdWUBCQCiCAEJAQtrZXlSZWZlcnJlcgIFC3Byb2dyYW1OYW1lBQ9yZWZlcnJhbEFkZHJlc3MEEXJlZmVycmVyVW5jbGFpbWVkCQEFdmFsdWUBCQCfCAEJAQxrZXlVbmNsYWltZWQCBQtwcm9ncmFtTmFtZQUPcmVmZXJyZXJBZGRyZXNzBBFyZWZlcnJhbFVuY2xhaW1lZAkBBXZhbHVlAQkAnwgBCQEMa2V5VW5jbGFpbWVkAgULcHJvZ3JhbU5hbWUFD3JlZmVycmFsQWRkcmVzcwQUbmV3UmVmZXJyZXJVbmNsYWltZWQJAGQCBRFyZWZlcnJlclVuY2xhaW1lZAUOcmVmZXJyZXJSZXdhcmQEFG5ld1JlZmVycmFsVW5jbGFpbWVkCQBkAgURcmVmZXJyYWxVbmNsYWltZWQFDnJlZmVycmFsUmV3YXJkCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQprZXlDbGFpbWVkAgULcHJvZ3JhbU5hbWUFD3JlZmVycmFsQWRkcmVzcwUUbmV3UmVmZXJyZXJVbmNsYWltZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQxrZXlVbmNsYWltZWQCBQtwcm9ncmFtTmFtZQUPcmVmZXJyYWxBZGRyZXNzBRRuZXdSZWZlcnJhbFVuY2xhaW1lZAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBWNsYWltAQtwcm9ncmFtTmFtZQQMY2xhaW1lZFRvdGFsCQEFdmFsdWUBCQCfCAEJAQ9rZXlDbGFpbWVkVG90YWwBBQtwcm9ncmFtTmFtZQQOY2xhaW1lckNsYWltZWQJAQV2YWx1ZQEJAJ8IAQkBCmtleUNsYWltZWQCBQtwcm9ncmFtTmFtZQkApQgBCAUBaQZjYWxsZXIEEGNsYWltZXJVbmNsYWltZWQJAQV2YWx1ZQEJAJ8IAQkBDGtleVVuY2xhaW1lZAIFC3Byb2dyYW1OYW1lCQClCAEIBQFpBmNhbGxlcgQQdHJlYXN1cnlDb250cmFjdAkBBXZhbHVlAQkApggBCQEFdmFsdWUBCQCiCAEJARNrZXlUcmVhc3VyeUNvbnRyYWN0AQULcHJvZ3JhbU5hbWUEDXJld2FyZEFzc2V0SWQJANkEAQkBBXZhbHVlAQkAoggBCQEQa2V5UmV3YXJkQXNzZXRJZAEFC3Byb2dyYW1OYW1lBA1jaGVja0NhbkNsYWltAwkAZgIFEGNsYWltZXJVbmNsYWltZWQAAAYJAQh0aHJvd0VycgECEG5vdGhpbmcgdG8gY2xhaW0DCQAAAgUNY2hlY2tDYW5DbGFpbQUNY2hlY2tDYW5DbGFpbQQRbmV3Q2xhaW1lckNsYWltZWQJAGQCBQ5jbGFpbWVyQ2xhaW1lZAUQY2xhaW1lclVuY2xhaW1lZAQPbmV3Q2xhaW1lZFRvdGFsCQBkAgUMY2xhaW1lZFRvdGFsBRBjbGFpbWVyVW5jbGFpbWVkBA1iYWxhbmNlQmVmb3JlCQEFdmFsdWUBCQDwBwIFBHRoaXMFDXJld2FyZEFzc2V0SWQDCQAAAgUNYmFsYW5jZUJlZm9yZQUNYmFsYW5jZUJlZm9yZQQDcmVzCQD8BwQFEHRyZWFzdXJ5Q29udHJhY3QCFndpdGhkcmF3UmVmZXJyYWxSZXdhcmQJAMwIAgUQY2xhaW1lclVuY2xhaW1lZAUDbmlsBQNuaWwDCQAAAgUDcmVzBQNyZXMEDGJhbGFuY2VBZnRlcgkBBXZhbHVlAQkA8AcCBQR0aGlzBQ1yZXdhcmRBc3NldElkAwkAAAIFDGJhbGFuY2VBZnRlcgUMYmFsYW5jZUFmdGVyBAtiYWxhbmNlRGlmZgkAZQIFDGJhbGFuY2VBZnRlcgUNYmFsYW5jZUJlZm9yZQMJAAACBQtiYWxhbmNlRGlmZgULYmFsYW5jZURpZmYEDGNoZWNrQmFsYW5jZQMJAAACBQtiYWxhbmNlRGlmZgUQY2xhaW1lclVuY2xhaW1lZAYJAQh0aHJvd0VycgECKWluc3VmZmljaWVudCBiYWxhbmNlIG9uIHJlZmVycmFsIGNvbnRyYWN0AwkAAAIFDGNoZWNrQmFsYW5jZQUMY2hlY2tCYWxhbmNlCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQprZXlDbGFpbWVkAgULcHJvZ3JhbU5hbWUJAKUIAQgFAWkGY2FsbGVyBRFuZXdDbGFpbWVyQ2xhaW1lZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleUNsYWltZWRUb3RhbAEFC3Byb2dyYW1OYW1lBQ9uZXdDbGFpbWVkVG90YWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQxrZXlVbmNsYWltZWQCBQtwcm9ncmFtTmFtZQkApQgBCAUBaQZjYWxsZXIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFEGNsYWltZXJVbmNsYWltZWQFDXJld2FyZEFzc2V0SWQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1jbGFpbVJFQURPTkxZAgtwcm9ncmFtTmFtZQ9yZWZlcnJhbEFkZHJlc3MEDmNsYWltZXJDbGFpbWVkCQEFdmFsdWUBCQCfCAEJAQprZXlDbGFpbWVkAgULcHJvZ3JhbU5hbWUFD3JlZmVycmFsQWRkcmVzcwQQY2xhaW1lclVuY2xhaW1lZAkBBXZhbHVlAQkAnwgBCQEMa2V5VW5jbGFpbWVkAgULcHJvZ3JhbU5hbWUFD3JlZmVycmFsQWRkcmVzcwQRbmV3Q2xhaW1lckNsYWltZWQJAGQCBQ5jbGFpbWVyQ2xhaW1lZAUQY2xhaW1lclVuY2xhaW1lZAkAlAoCBQNuaWwFEW5ld0NsYWltZXJDbGFpbWVkAWkBCnNldE1hbmFnZXIBF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEFWNoZWNrTWFuYWdlclB1YmxpY0tleQkA2QQBBRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAACBRVjaGVja01hbmFnZXJQdWJsaWNLZXkFFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAzAgCCQELU3RyaW5nRW50cnkCCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmNvbmZpcm1NYW5hZ2VyAAQCcG0JAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEBWhhc1BNAwkBCWlzRGVmaW5lZAEFAnBtBgkBCHRocm93RXJyAQISbm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFBWhhc1BNBQVoYXNQTQQHY2hlY2tQTQMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAnBtBgkBCHRocm93RXJyAQIbeW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFB2NoZWNrUE0FB2NoZWNrUE0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBE2tleU1hbmFnZXJQdWJsaWNLZXkACQDYBAEJAQV2YWx1ZQEFAnBtCQDMCAIJAQtEZWxldGVFbnRyeQEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAED3RhcmdldFB1YmxpY0tleQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwBQJwawMJAAECBQckbWF0Y2gwAgRVbml0CAUCdHgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFD3RhcmdldFB1YmxpY0tlefYoILk=", "chainId": 84, "height": 2156968, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: Agy9bF4xqPBL3cMu2uDEkpo3LLg9xd5Lcda2KenXvhJk Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | let b = makeString(["%s", "backendPulbicKey"], a) | |
7 | + | ||
8 | + | func c (d,e,f) = makeString(["%s%s%s%s", "existsReferrerToReferral", d, e, f], a) | |
9 | + | ||
10 | + | ||
11 | + | func g (d,h) = makeString(["%s%s%s%s", "claimed", d, h], a) | |
12 | + | ||
13 | + | ||
14 | + | func i (d,h) = makeString(["%s%s%s%s", "unclaimed", d, h], a) | |
15 | + | ||
16 | + | ||
17 | + | func j (d,f) = makeString(["%s%s%s", "referrer", d, f], a) | |
18 | + | ||
19 | + | ||
20 | + | func k (d) = makeString(["%s%s", "programName", d], a) | |
21 | + | ||
22 | + | ||
23 | + | func l (d,e) = makeString(["%s%s%s", "totalReferralCount", d, e], a) | |
24 | + | ||
25 | + | ||
26 | + | func m (d,e) = makeString(["%s%s%s", "activeReferralCount", d, e], a) | |
27 | + | ||
28 | + | ||
29 | + | func n (d,f) = makeString(["%s%s%s", "activeReferral", d, f], a) | |
30 | + | ||
31 | + | ||
32 | + | func o (d) = makeString(["%s%s", "claimedTotal", d], a) | |
33 | + | ||
34 | + | ||
35 | + | func p (d) = makeString(["%s%s", "rewardAssetId", d], a) | |
36 | + | ||
37 | + | ||
38 | + | func q (d) = makeString(["%s%s", "treasuryContract", d], a) | |
39 | + | ||
40 | + | ||
41 | + | func r (d) = makeString(["%s%s", "implementationContract", d], a) | |
42 | + | ||
43 | + | ||
44 | + | func s () = "%s__managerPublicKey" | |
45 | + | ||
46 | + | ||
47 | + | func t () = "%s__pendingManagerPublicKey" | |
48 | + | ||
49 | + | ||
50 | + | func u (v) = throw(makeString(["referral.ride:", v], " ")) | |
51 | + | ||
52 | + | ||
53 | + | func w () = { | |
54 | + | let x = getString(s()) | |
55 | + | if ($isInstanceOf(x, "String")) | |
56 | + | then { | |
57 | + | let y = x | |
58 | + | fromBase58String(y) | |
59 | + | } | |
60 | + | else if ($isInstanceOf(x, "Unit")) | |
61 | + | then unit | |
62 | + | else throw("Match error") | |
63 | + | } | |
64 | + | ||
65 | + | ||
66 | + | func z () = { | |
67 | + | let x = getString(t()) | |
68 | + | if ($isInstanceOf(x, "String")) | |
69 | + | then { | |
70 | + | let y = x | |
71 | + | fromBase58String(y) | |
72 | + | } | |
73 | + | else if ($isInstanceOf(x, "Unit")) | |
74 | + | then unit | |
75 | + | else throw("Match error") | |
76 | + | } | |
77 | + | ||
78 | + | ||
79 | + | func A (B) = { | |
80 | + | let C = u("permission denied") | |
81 | + | let x = w() | |
82 | + | if ($isInstanceOf(x, "ByteVector")) | |
83 | + | then { | |
84 | + | let D = x | |
85 | + | if ((B.callerPublicKey == D)) | |
86 | + | then true | |
87 | + | else C | |
88 | + | } | |
89 | + | else if ($isInstanceOf(x, "Unit")) | |
90 | + | then if ((B.caller == this)) | |
91 | + | then true | |
92 | + | else C | |
93 | + | else throw("Match error") | |
94 | + | } | |
95 | + | ||
96 | + | ||
97 | + | @Callable(B) | |
98 | + | func createReferralProgram (d,E,F) = { | |
99 | + | let G = A(B) | |
100 | + | if ((G == G)) | |
101 | + | then { | |
102 | + | let H = if ((getBoolean(d) == true)) | |
103 | + | then true | |
104 | + | else u("program name already exists") | |
105 | + | if ((H == H)) | |
106 | + | then $Tuple2([BooleanEntry(k(d), true), StringEntry(q(d), E), StringEntry(r(d), F)], unit) | |
107 | + | else throw("Strict value is not equal to itself.") | |
108 | + | } | |
109 | + | else throw("Strict value is not equal to itself.") | |
110 | + | } | |
111 | + | ||
112 | + | ||
113 | + | ||
114 | + | @Callable(B) | |
115 | + | func createPair (d,e,f,I) = { | |
116 | + | let J = if ((getString(c(d, e, f)) == unit)) | |
117 | + | then true | |
118 | + | else u("pair already exists") | |
119 | + | if ((J == J)) | |
120 | + | then { | |
121 | + | let K = toBytes(makeString([d, e, f], ":")) | |
122 | + | let L = toBytes(value(getString(b))) | |
123 | + | let M = if (sigVerify(K, I, L)) | |
124 | + | then true | |
125 | + | else u("bad signature") | |
126 | + | if ((M == M)) | |
127 | + | then { | |
128 | + | let N = valueOrElse(getInteger(l(d, e)), 0) | |
129 | + | let O = (N + 1) | |
130 | + | $Tuple2([BooleanEntry(c(d, e, f), true), IntegerEntry(l(d, e), O)], unit) | |
131 | + | } | |
132 | + | else throw("Strict value is not equal to itself.") | |
133 | + | } | |
134 | + | else throw("Strict value is not equal to itself.") | |
135 | + | } | |
136 | + | ||
137 | + | ||
138 | + | ||
139 | + | @Callable(B) | |
140 | + | func updateReferralActivity (d,f,P) = { | |
141 | + | let F = value(getString(r(d))) | |
142 | + | let Q = (getBoolean(n(d, f)) != unit) | |
143 | + | let e = value(getString(j(d, f))) | |
144 | + | let G = if ((toString(B.caller) == F)) | |
145 | + | then true | |
146 | + | else u("permission denied") | |
147 | + | if ((G == G)) | |
148 | + | then { | |
149 | + | let R = if ((Q == P)) | |
150 | + | then $Tuple2(nil, unit) | |
151 | + | else { | |
152 | + | let R = if ((P == true)) | |
153 | + | then { | |
154 | + | let S = (valueOrElse(getInteger(m(d, e)), 0) + 1) | |
155 | + | $Tuple2([BooleanEntry(n(d, f), true), IntegerEntry(m(d, e), S)], unit) | |
156 | + | } | |
157 | + | else { | |
158 | + | let S = (valueOrElse(getInteger(m(d, e)), 0) - 1) | |
159 | + | $Tuple2([DeleteEntry(n(d, f)), IntegerEntry(m(d, e), S)], unit) | |
160 | + | } | |
161 | + | R | |
162 | + | } | |
163 | + | R | |
164 | + | } | |
165 | + | else throw("Strict value is not equal to itself.") | |
166 | + | } | |
167 | + | ||
168 | + | ||
169 | + | ||
170 | + | @Callable(B) | |
171 | + | func incUnclaimed (d,f,T,U) = { | |
172 | + | let F = value(getString(r(d))) | |
173 | + | let G = if ((toString(B.caller) == F)) | |
174 | + | then true | |
175 | + | else u("permission denied") | |
176 | + | if ((G == G)) | |
177 | + | then { | |
178 | + | let e = value(getString(j(d, f))) | |
179 | + | let V = value(getInteger(i(d, e))) | |
180 | + | let W = value(getInteger(i(d, f))) | |
181 | + | let X = (V + T) | |
182 | + | let Y = (W + U) | |
183 | + | $Tuple2([IntegerEntry(g(d, f), X), IntegerEntry(i(d, f), Y)], unit) | |
184 | + | } | |
185 | + | else throw("Strict value is not equal to itself.") | |
186 | + | } | |
187 | + | ||
188 | + | ||
189 | + | ||
190 | + | @Callable(B) | |
191 | + | func claim (d) = { | |
192 | + | let Z = value(getInteger(o(d))) | |
193 | + | let aa = value(getInteger(g(d, toString(B.caller)))) | |
194 | + | let ab = value(getInteger(i(d, toString(B.caller)))) | |
195 | + | let E = value(addressFromString(value(getString(q(d))))) | |
196 | + | let ac = fromBase58String(value(getString(p(d)))) | |
197 | + | let ad = if ((ab > 0)) | |
198 | + | then true | |
199 | + | else u("nothing to claim") | |
200 | + | if ((ad == ad)) | |
201 | + | then { | |
202 | + | let ae = (aa + ab) | |
203 | + | let af = (Z + ab) | |
204 | + | let ag = value(assetBalance(this, ac)) | |
205 | + | if ((ag == ag)) | |
206 | + | then { | |
207 | + | let ah = invoke(E, "withdrawReferralReward", [ab], nil) | |
208 | + | if ((ah == ah)) | |
209 | + | then { | |
210 | + | let ai = value(assetBalance(this, ac)) | |
211 | + | if ((ai == ai)) | |
212 | + | then { | |
213 | + | let aj = (ai - ag) | |
214 | + | if ((aj == aj)) | |
215 | + | then { | |
216 | + | let ak = if ((aj == ab)) | |
217 | + | then true | |
218 | + | else u("insufficient balance on referral contract") | |
219 | + | if ((ak == ak)) | |
220 | + | then $Tuple2([IntegerEntry(g(d, toString(B.caller)), ae), IntegerEntry(o(d), af), IntegerEntry(i(d, toString(B.caller)), 0), ScriptTransfer(B.caller, ab, ac)], unit) | |
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.") | |
226 | + | } | |
227 | + | else throw("Strict value is not equal to itself.") | |
228 | + | } | |
229 | + | else throw("Strict value is not equal to itself.") | |
230 | + | } | |
231 | + | else throw("Strict value is not equal to itself.") | |
232 | + | } | |
233 | + | ||
234 | + | ||
235 | + | ||
236 | + | @Callable(B) | |
237 | + | func claimREADONLY (d,f) = { | |
238 | + | let aa = value(getInteger(g(d, f))) | |
239 | + | let ab = value(getInteger(i(d, f))) | |
240 | + | let ae = (aa + ab) | |
241 | + | $Tuple2(nil, ae) | |
242 | + | } | |
243 | + | ||
244 | + | ||
245 | + | ||
246 | + | @Callable(B) | |
247 | + | func setManager (al) = { | |
248 | + | let G = A(B) | |
249 | + | if ((G == G)) | |
250 | + | then { | |
251 | + | let am = fromBase58String(al) | |
252 | + | if ((am == am)) | |
253 | + | then [StringEntry(t(), al)] | |
254 | + | else throw("Strict value is not equal to itself.") | |
255 | + | } | |
256 | + | else throw("Strict value is not equal to itself.") | |
257 | + | } | |
258 | + | ||
259 | + | ||
260 | + | ||
261 | + | @Callable(B) | |
262 | + | func confirmManager () = { | |
263 | + | let an = z() | |
264 | + | let ao = if (isDefined(an)) | |
265 | + | then true | |
266 | + | else u("no pending manager") | |
267 | + | if ((ao == ao)) | |
268 | + | then { | |
269 | + | let ap = if ((B.callerPublicKey == value(an))) | |
270 | + | then true | |
271 | + | else u("you are not pending manager") | |
272 | + | if ((ap == ap)) | |
273 | + | then [StringEntry(s(), toBase58String(value(an))), DeleteEntry(t())] | |
274 | + | else throw("Strict value is not equal to itself.") | |
275 | + | } | |
276 | + | else throw("Strict value is not equal to itself.") | |
277 | + | } | |
278 | + | ||
279 | + | ||
280 | + | @Verifier(aq) | |
281 | + | func ar () = { | |
282 | + | let as = { | |
283 | + | let x = w() | |
284 | + | if ($isInstanceOf(x, "ByteVector")) | |
285 | + | then { | |
286 | + | let D = x | |
287 | + | D | |
288 | + | } | |
289 | + | else if ($isInstanceOf(x, "Unit")) | |
290 | + | then aq.senderPublicKey | |
291 | + | else throw("Match error") | |
292 | + | } | |
293 | + | sigVerify(aq.bodyBytes, aq.proofs[0], as) | |
294 | + | } | |
295 | + |
github/deemru/w8io/026f985 26.21 ms ◑