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