tx · Eav31zkrUGEnpbGEEGBSVks1QwMtRLDaPsqX1PcZ9Krr

3NAsFvuLwxz1iUtZ9fmhfmSN16r9NEsPqsh:  -0.01600000 Waves

2022.07.28 19:07 [2159895] smart account 3NAsFvuLwxz1iUtZ9fmhfmSN16r9NEsPqsh > SELF 0.00000000 Waves

{ "type": 13, "id": "Eav31zkrUGEnpbGEEGBSVks1QwMtRLDaPsqX1PcZ9Krr", "fee": 1600000, "feeAssetId": null, "timestamp": 1659024428955, "version": 1, "sender": "3NAsFvuLwxz1iUtZ9fmhfmSN16r9NEsPqsh", "senderPublicKey": "33fpjdpM9FMu87RZKePniPardKqQXM96sm7VhAk3JEVQ", "proofs": [ "3nX7yvwzMJuv19Pt3Y6KCRyYfNde42tMK8kF2mLmq32uxWKvjX1J59Tp9yTc7F6Kj3hn4D916pCr9qtLc8tDTZ3f" ], "script": "base64:BgIzCAISBgoECAgICBIGCgQICAgCEgUKAwgIBBIGCgQICAEBEgMKAQgSBAoCCAgSAwoBCBIAFwAJc2VwYXJhdG9yAgJfXwATa2V5QmFja2VuZFB1YmxpY0tleQkAuQkCCQDMCAICAiVzCQDMCAICEGJhY2tlbmRQdWJsaWNLZXkFA25pbAUJc2VwYXJhdG9yARtrZXlFeGlzdHNSZWZlcnJlclRvUmVmZXJyYWwDC3Byb2dyYW1OYW1lD3JlZmVycmVyQWRkcmVzcw9yZWZlcnJhbEFkZHJlc3MJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCAhhleGlzdHNSZWZlcnJlclRvUmVmZXJyYWwJAMwIAgULcHJvZ3JhbU5hbWUJAMwIAgUPcmVmZXJyZXJBZGRyZXNzCQDMCAIFD3JlZmVycmFsQWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBCmtleUNsYWltZWQCC3Byb2dyYW1OYW1lDmNsYWltZXJBZGRyZXNzCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgIHY2xhaW1lZAkAzAgCBQtwcm9ncmFtTmFtZQkAzAgCBQ5jbGFpbWVyQWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBDGtleVVuY2xhaW1lZAILcHJvZ3JhbU5hbWUOY2xhaW1lckFkZHJlc3MJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCAgl1bmNsYWltZWQJAMwIAgULcHJvZ3JhbU5hbWUJAMwIAgUOY2xhaW1lckFkZHJlc3MFA25pbAUJc2VwYXJhdG9yAQtrZXlSZWZlcnJlcgILcHJvZ3JhbU5hbWUPcmVmZXJyYWxBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCHJlZmVycmVyCQDMCAIFC3Byb2dyYW1OYW1lCQDMCAIFD3JlZmVycmFsQWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBDmtleVByb2dyYW1OYW1lAQtwcm9ncmFtTmFtZQkAuQkCCQDMCAICBCVzJXMJAMwIAgILcHJvZ3JhbU5hbWUJAMwIAgULcHJvZ3JhbU5hbWUFA25pbAUJc2VwYXJhdG9yARVrZXlUb3RhbFJlZmVycmFsQ291bnQCC3Byb2dyYW1OYW1lD3JlZmVycmVyQWRkcmVzcwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhJ0b3RhbFJlZmVycmFsQ291bnQJAMwIAgULcHJvZ3JhbU5hbWUJAMwIAgUPcmVmZXJyZXJBZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEWa2V5QWN0aXZlUmVmZXJyYWxDb3VudAILcHJvZ3JhbU5hbWUPcmVmZXJyZXJBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICE2FjdGl2ZVJlZmVycmFsQ291bnQJAMwIAgULcHJvZ3JhbU5hbWUJAMwIAgUPcmVmZXJyZXJBZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgETa2V5SXNSZWZlcnJhbEFjdGl2ZQILcHJvZ3JhbU5hbWUPcmVmZXJyYWxBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICDmFjdGl2ZVJlZmVycmFsCQDMCAIFC3Byb2dyYW1OYW1lCQDMCAIFD3JlZmVycmFsQWRkcmVzcwUDbmlsBQlzZXBhcmF0b3IBD2tleUNsYWltZWRUb3RhbAELcHJvZ3JhbU5hbWUJALkJAgkAzAgCAgQlcyVzCQDMCAICDGNsYWltZWRUb3RhbAkAzAgCBQtwcm9ncmFtTmFtZQUDbmlsBQlzZXBhcmF0b3IBD2tleVJld2FyZHNUb3RhbAELcHJvZ3JhbU5hbWUJALkJAgkAzAgCAgQlcyVzCQDMCAICDHJld2FyZHNUb3RhbAkAzAgCBQtwcm9ncmFtTmFtZQUDbmlsBQlzZXBhcmF0b3IBEGtleVJld2FyZEFzc2V0SWQBC3Byb2dyYW1OYW1lCQC5CQIJAMwIAgIEJXMlcwkAzAgCAg1yZXdhcmRBc3NldElkCQDMCAIFC3Byb2dyYW1OYW1lBQNuaWwFCXNlcGFyYXRvcgETa2V5VHJlYXN1cnlDb250cmFjdAELcHJvZ3JhbU5hbWUJALkJAgkAzAgCAgQlcyVzCQDMCAICEHRyZWFzdXJ5Q29udHJhY3QJAMwIAgULcHJvZ3JhbU5hbWUFA25pbAUJc2VwYXJhdG9yARlrZXlJbXBsZW1lbnRhdGlvbkNvbnRyYWN0AQtwcm9ncmFtTmFtZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIWaW1wbGVtZW50YXRpb25Db250cmFjdAkAzAgCBQtwcm9ncmFtTmFtZQUDbmlsBQlzZXBhcmF0b3IBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBD2tleUNsYWltSGlzdG9yeQMLcHJvZ3JhbU5hbWULdXNlckFkZHJlc3MNdHJhbnNhY3Rpb25JZAkAuQkCCQDMCAICCiVzJXMlcyVzJXMJAMwIAgIHaGlzdG9yeQkAzAgCAgVjbGFpbQkAzAgCBQtwcm9ncmFtTmFtZQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklkBQNuaWwFCXNlcGFyYXRvcgESZm9ybWF0Q2xhaW1IaXN0b3J5AQZhbW91bnQJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUGYW1vdW50BQNuaWwFCXNlcGFyYXRvcgEIdGhyb3dFcnIBA21zZwkAAgEJALkJAgkAzAgCAg5yZWZlcnJhbC5yaWRlOgkAzAgCBQNtc2cFA25pbAIBIAEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBE2tleU1hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQttdXN0TWFuYWdlcgEBaQQCcGQJAQh0aHJvd0VycgECEXBlcm1pc3Npb24gZGVuaWVkBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFAnBkAwkAAQIFByRtYXRjaDACBFVuaXQDCQAAAggFAWkGY2FsbGVyBQR0aGlzBgUCcGQJAAIBAgtNYXRjaCBlcnJvcggBaQEVY3JlYXRlUmVmZXJyYWxQcm9ncmFtBAtwcm9ncmFtTmFtZRB0cmVhc3VyeUNvbnRyYWN0FmltcGxlbWVudGF0aW9uQ29udHJhY3QNcmV3YXJkQXNzZXRJZAQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBBBjaGVja1Byb2dyYW1OYW1lAwkAAAIJAKAIAQkBDmtleVByb2dyYW1OYW1lAQULcHJvZ3JhbU5hbWUFBHVuaXQGCQEIdGhyb3dFcnIBAhtwcm9ncmFtIG5hbWUgYWxyZWFkeSBleGlzdHMDCQAAAgUQY2hlY2tQcm9ncmFtTmFtZQUQY2hlY2tQcm9ncmFtTmFtZQQScHJvZ3JhbU5hbWVJc1ZhbGlkAwkBASEBCQEIY29udGFpbnMCBQtwcm9ncmFtTmFtZQUJc2VwYXJhdG9yCQEBIQEJAQhjb250YWlucwIFC3Byb2dyYW1OYW1lAgEgBwQSY2hlY2tQcm9ncmFtRXhpc3RzAwUScHJvZ3JhbU5hbWVJc1ZhbGlkBgkBCHRocm93RXJyAQIUaW52YWxpZCBwcm9ncmFtIG5hbWUDCQAAAgUSY2hlY2tQcm9ncmFtRXhpc3RzBRJjaGVja1Byb2dyYW1FeGlzdHMEEGNoZWNrUmV3YXJkQXNzZXQDCQECIT0CCQDsBwEJANkEAQUNcmV3YXJkQXNzZXRJZAUEdW5pdAYJAQh0aHJvd0VycgECF2ludmFsaWQgcmV3YXJkIGFzc2V0IGlkAwkAAAIFEGNoZWNrUmV3YXJkQXNzZXQFEGNoZWNrUmV3YXJkQXNzZXQJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBDmtleVByb2dyYW1OYW1lAQULcHJvZ3JhbU5hbWUGCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNrZXlUcmVhc3VyeUNvbnRyYWN0AQULcHJvZ3JhbU5hbWUFEHRyZWFzdXJ5Q29udHJhY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGWtleUltcGxlbWVudGF0aW9uQ29udHJhY3QBBQtwcm9ncmFtTmFtZQUWaW1wbGVtZW50YXRpb25Db250cmFjdAkAzAgCCQELU3RyaW5nRW50cnkCCQEQa2V5UmV3YXJkQXNzZXRJZAEFC3Byb2dyYW1OYW1lBQ1yZXdhcmRBc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5UmV3YXJkc1RvdGFsAQULcHJvZ3JhbU5hbWUAAAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNyZWF0ZVBhaXIEC3Byb2dyYW1OYW1lD3JlZmVycmVyQWRkcmVzcw9yZWZlcnJhbEFkZHJlc3MJc2lnbmF0dXJlBBJjaGVja1Byb2dyYW1FeGlzdHMDCQELdmFsdWVPckVsc2UCCQCgCAEJAQ5rZXlQcm9ncmFtTmFtZQEFC3Byb2dyYW1OYW1lBwYJAQh0aHJvd0VycgECFnByb2dyYW0gZG9lcyBub3QgZXhpc3QDCQAAAgUSY2hlY2tQcm9ncmFtRXhpc3RzBRJjaGVja1Byb2dyYW1FeGlzdHMEIHBhaXJSZWZlcnJlclRvUmVmZXJyYWxFeGlzdENoZWNrAwkAAAIJAKIIAQkBG2tleUV4aXN0c1JlZmVycmVyVG9SZWZlcnJhbAMFC3Byb2dyYW1OYW1lBQ9yZWZlcnJlckFkZHJlc3MFD3JlZmVycmFsQWRkcmVzcwUEdW5pdAYJAQh0aHJvd0VycgECE3BhaXIgYWxyZWFkeSBleGlzdHMDCQAAAgUgcGFpclJlZmVycmVyVG9SZWZlcnJhbEV4aXN0Q2hlY2sFIHBhaXJSZWZlcnJlclRvUmVmZXJyYWxFeGlzdENoZWNrBAlub1JlZlNlbGYDCQECIT0CBQ9yZWZlcnJlckFkZHJlc3MFD3JlZmVycmFsQWRkcmVzcwYJAQh0aHJvd0VycgECFGNhbm5vdCByZWZlciB0byBzZWxmAwkAAAIFCW5vUmVmU2VsZgUJbm9SZWZTZWxmBARwYWlyCQCbAwEJALkJAgkAzAgCBQtwcm9ncmFtTmFtZQkAzAgCBQ9yZWZlcnJlckFkZHJlc3MJAMwIAgUPcmVmZXJyYWxBZGRyZXNzBQNuaWwCAToEEGJhY2tlbmRQdWJsaWNLZXkJANkEAQkBBXZhbHVlAQkAoggBBRNrZXlCYWNrZW5kUHVibGljS2V5BBF2YWxpZGF0ZVNpZ25hdHVyZQMJAPQDAwUEcGFpcgUJc2lnbmF0dXJlBRBiYWNrZW5kUHVibGljS2V5BgkBCHRocm93RXJyAQINYmFkIHNpZ25hdHVyZQMJAAACBRF2YWxpZGF0ZVNpZ25hdHVyZQURdmFsaWRhdGVTaWduYXR1cmUEEnRvdGFsUmVmZXJyYWxDb3VudAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEVa2V5VG90YWxSZWZlcnJhbENvdW50AgULcHJvZ3JhbU5hbWUFD3JlZmVycmVyQWRkcmVzcwAABBVuZXdUb3RhbFJlZmVycmFsQ291bnQJAGQCBRJ0b3RhbFJlZmVycmFsQ291bnQAAQkAlAoCCQDMCAIJAQxCb29sZWFuRW50cnkCCQEba2V5RXhpc3RzUmVmZXJyZXJUb1JlZmVycmFsAwULcHJvZ3JhbU5hbWUFD3JlZmVycmVyQWRkcmVzcwUPcmVmZXJyYWxBZGRyZXNzBgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFWtleVRvdGFsUmVmZXJyYWxDb3VudAIFC3Byb2dyYW1OYW1lBQ9yZWZlcnJlckFkZHJlc3MFFW5ld1RvdGFsUmVmZXJyYWxDb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQELa2V5UmVmZXJyZXICBQtwcm9ncmFtTmFtZQUPcmVmZXJyYWxBZGRyZXNzBQ9yZWZlcnJlckFkZHJlc3MFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5Awtwcm9ncmFtTmFtZQ9yZWZlcnJhbEFkZHJlc3MIaXNBY3RpdmUEFmltcGxlbWVudGF0aW9uQ29udHJhY3QJAQV2YWx1ZQEJAKIIAQkBGWtleUltcGxlbWVudGF0aW9uQ29udHJhY3QBBQtwcm9ncmFtTmFtZQQQaXNSZWZlcnJhbEFjdGl2ZQkBAiE9AgkAoAgBCQETa2V5SXNSZWZlcnJhbEFjdGl2ZQIFC3Byb2dyYW1OYW1lBQ9yZWZlcnJhbEFkZHJlc3MFBHVuaXQED3JlZmVycmVyQWRkcmVzcwkBBXZhbHVlAQkAoggBCQELa2V5UmVmZXJyZXICBQtwcm9ncmFtTmFtZQUPcmVmZXJyYWxBZGRyZXNzBAtjaGVja0NhbGxlcgMJAAACCQClCAEIBQFpBmNhbGxlcgUWaW1wbGVtZW50YXRpb25Db250cmFjdAYJAQh0aHJvd0VycgECEXBlcm1pc3Npb24gZGVuaWVkAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQGdXBkYXRlAwkAAAIFEGlzUmVmZXJyYWxBY3RpdmUFCGlzQWN0aXZlCQCUCgIFA25pbAUEdW5pdAQGdXBkYXRlAwkAAAIFCGlzQWN0aXZlBgQWbmV3QWN0aXZlUmVmZXJyYWxDb3VudAkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFmtleUFjdGl2ZVJlZmVycmFsQ291bnQCBQtwcm9ncmFtTmFtZQUPcmVmZXJyZXJBZGRyZXNzAAAAAQkAlAoCCQDMCAIJAQxCb29sZWFuRW50cnkCCQETa2V5SXNSZWZlcnJhbEFjdGl2ZQIFC3Byb2dyYW1OYW1lBQ9yZWZlcnJhbEFkZHJlc3MGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5QWN0aXZlUmVmZXJyYWxDb3VudAIFC3Byb2dyYW1OYW1lBQ9yZWZlcnJlckFkZHJlc3MFFm5ld0FjdGl2ZVJlZmVycmFsQ291bnQFA25pbAUEdW5pdAQWbmV3QWN0aXZlUmVmZXJyYWxDb3VudAkAZQIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFmtleUFjdGl2ZVJlZmVycmFsQ291bnQCBQtwcm9ncmFtTmFtZQUPcmVmZXJyZXJBZGRyZXNzAAAAAQkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEJARNrZXlJc1JlZmVycmFsQWN0aXZlAgULcHJvZ3JhbU5hbWUFD3JlZmVycmFsQWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleUFjdGl2ZVJlZmVycmFsQ291bnQCBQtwcm9ncmFtTmFtZQUPcmVmZXJyZXJBZGRyZXNzBRZuZXdBY3RpdmVSZWZlcnJhbENvdW50BQNuaWwFBHVuaXQFBnVwZGF0ZQUGdXBkYXRlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDGluY1VuY2xhaW1lZAQLcHJvZ3JhbU5hbWUPcmVmZXJyYWxBZGRyZXNzDnJlZmVycmVyUmV3YXJkDnJlZmVycmFsUmV3YXJkBBZpbXBsZW1lbnRhdGlvbkNvbnRyYWN0CQEFdmFsdWUBCQCiCAEJARlrZXlJbXBsZW1lbnRhdGlvbkNvbnRyYWN0AQULcHJvZ3JhbU5hbWUEC2NoZWNrQ2FsbGVyAwkAAAIJAKUIAQgFAWkGY2FsbGVyBRZpbXBsZW1lbnRhdGlvbkNvbnRyYWN0BgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBA9yZWZlcnJlckFkZHJlc3MJAQV2YWx1ZQEJAKIIAQkBC2tleVJlZmVycmVyAgULcHJvZ3JhbU5hbWUFD3JlZmVycmFsQWRkcmVzcwQRcmVmZXJyZXJVbmNsYWltZWQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDGtleVVuY2xhaW1lZAIFC3Byb2dyYW1OYW1lBQ9yZWZlcnJlckFkZHJlc3MAAAQRcmVmZXJyYWxVbmNsYWltZWQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDGtleVVuY2xhaW1lZAIFC3Byb2dyYW1OYW1lBQ9yZWZlcnJhbEFkZHJlc3MAAAQMcmV3YXJkc1RvdGFsCQELdmFsdWVPckVsc2UCCQCfCAEJAQ9rZXlSZXdhcmRzVG90YWwBBQtwcm9ncmFtTmFtZQAABBRuZXdSZWZlcnJlclVuY2xhaW1lZAkAZAIFEXJlZmVycmVyVW5jbGFpbWVkBQ5yZWZlcnJlclJld2FyZAQUbmV3UmVmZXJyYWxVbmNsYWltZWQJAGQCBRFyZWZlcnJhbFVuY2xhaW1lZAUOcmVmZXJyYWxSZXdhcmQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDGtleVVuY2xhaW1lZAIFC3Byb2dyYW1OYW1lBQ9yZWZlcnJlckFkZHJlc3MFFG5ld1JlZmVycmVyVW5jbGFpbWVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEMa2V5VW5jbGFpbWVkAgULcHJvZ3JhbU5hbWUFD3JlZmVycmFsQWRkcmVzcwUUbmV3UmVmZXJyYWxVbmNsYWltZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlSZXdhcmRzVG90YWwBBQtwcm9ncmFtTmFtZQkAZAIJAGQCBQxyZXdhcmRzVG90YWwFDnJlZmVycmVyUmV3YXJkBQ5yZWZlcnJhbFJld2FyZAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBWNsYWltAQtwcm9ncmFtTmFtZQQSY2hlY2tQcm9ncmFtRXhpc3RzAwkBC3ZhbHVlT3JFbHNlAgkAoAgBCQEOa2V5UHJvZ3JhbU5hbWUBBQtwcm9ncmFtTmFtZQcGCQEIdGhyb3dFcnIBAhZwcm9ncmFtIGRvZXMgbm90IGV4aXN0AwkAAAIFEmNoZWNrUHJvZ3JhbUV4aXN0cwUSY2hlY2tQcm9ncmFtRXhpc3RzBA51c2VyQWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIEDGNsYWltZWRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEPa2V5Q2xhaW1lZFRvdGFsAQULcHJvZ3JhbU5hbWUAAAQOY2xhaW1lckNsYWltZWQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBCmtleUNsYWltZWQCBQtwcm9ncmFtTmFtZQUOdXNlckFkZHJlc3NTdHIAAAQQY2xhaW1lclVuY2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEMa2V5VW5jbGFpbWVkAgULcHJvZ3JhbU5hbWUFDnVzZXJBZGRyZXNzU3RyAAAEEHRyZWFzdXJ5Q29udHJhY3QJAQV2YWx1ZQEJAKYIAQkBBXZhbHVlAQkAoggBCQETa2V5VHJlYXN1cnlDb250cmFjdAEFC3Byb2dyYW1OYW1lBA1yZXdhcmRBc3NldElkCQDZBAEJAQV2YWx1ZQEJAKIIAQkBEGtleVJld2FyZEFzc2V0SWQBBQtwcm9ncmFtTmFtZQQNY2hlY2tDYW5DbGFpbQMJAGYCBRBjbGFpbWVyVW5jbGFpbWVkAAAGCQEIdGhyb3dFcnIBAhBub3RoaW5nIHRvIGNsYWltAwkAAAIFDWNoZWNrQ2FuQ2xhaW0FDWNoZWNrQ2FuQ2xhaW0EEW5ld0NsYWltZXJDbGFpbWVkCQBkAgUOY2xhaW1lckNsYWltZWQFEGNsYWltZXJVbmNsYWltZWQED25ld0NsYWltZWRUb3RhbAkAZAIFDGNsYWltZWRUb3RhbAUQY2xhaW1lclVuY2xhaW1lZAQNYmFsYW5jZUJlZm9yZQkBBXZhbHVlAQkA8AcCBQR0aGlzBQ1yZXdhcmRBc3NldElkAwkAAAIFDWJhbGFuY2VCZWZvcmUFDWJhbGFuY2VCZWZvcmUEA3JlcwkA/AcEBRB0cmVhc3VyeUNvbnRyYWN0AhZ3aXRoZHJhd1JlZmVycmFsUmV3YXJkCQDMCAIFEGNsYWltZXJVbmNsYWltZWQFA25pbAUDbmlsAwkAAAIFA3JlcwUDcmVzBAxiYWxhbmNlQWZ0ZXIJAQV2YWx1ZQEJAPAHAgUEdGhpcwUNcmV3YXJkQXNzZXRJZAMJAAACBQxiYWxhbmNlQWZ0ZXIFDGJhbGFuY2VBZnRlcgQLYmFsYW5jZURpZmYJAGUCBQxiYWxhbmNlQWZ0ZXIFDWJhbGFuY2VCZWZvcmUDCQAAAgULYmFsYW5jZURpZmYFC2JhbGFuY2VEaWZmBAxjaGVja0JhbGFuY2UDCQAAAgULYmFsYW5jZURpZmYFEGNsYWltZXJVbmNsYWltZWQGCQEIdGhyb3dFcnIBAilpbnN1ZmZpY2llbnQgYmFsYW5jZSBvbiByZWZlcnJhbCBjb250cmFjdAMJAAACBQxjaGVja0JhbGFuY2UFDGNoZWNrQmFsYW5jZQkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEKa2V5Q2xhaW1lZAIFC3Byb2dyYW1OYW1lBQ51c2VyQWRkcmVzc1N0cgURbmV3Q2xhaW1lckNsYWltZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlDbGFpbWVkVG90YWwBBQtwcm9ncmFtTmFtZQUPbmV3Q2xhaW1lZFRvdGFsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEMa2V5VW5jbGFpbWVkAgULcHJvZ3JhbU5hbWUFDnVzZXJBZGRyZXNzU3RyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRBjbGFpbWVyVW5jbGFpbWVkBQ1yZXdhcmRBc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlDbGFpbUhpc3RvcnkDBQtwcm9ncmFtTmFtZQUOdXNlckFkZHJlc3NTdHIJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkBEmZvcm1hdENsYWltSGlzdG9yeQEFEGNsYWltZXJVbmNsYWltZWQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1jbGFpbVJFQURPTkxZAgtwcm9ncmFtTmFtZQt1c2VyQWRkcmVzcwQOY2xhaW1lckNsYWltZWQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBCmtleUNsYWltZWQCBQtwcm9ncmFtTmFtZQULdXNlckFkZHJlc3MAAAQQY2xhaW1lclVuY2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEMa2V5VW5jbGFpbWVkAgULcHJvZ3JhbU5hbWUFC3VzZXJBZGRyZXNzAAAJAJQKAgUDbmlsCQDMCAIFEGNsYWltZXJVbmNsYWltZWQJAMwIAgUOY2xhaW1lckNsYWltZWQFA25pbAFpAQpzZXRNYW5hZ2VyARdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBBVjaGVja01hbmFnZXJQdWJsaWNLZXkJANkEAQUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAgUVY2hlY2tNYW5hZ2VyUHVibGljS2V5BRVjaGVja01hbmFnZXJQdWJsaWNLZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jb25maXJtTWFuYWdlcgAEAnBtCQEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAVoYXNQTQMJAQlpc0RlZmluZWQBBQJwbQYJAQh0aHJvd0VycgECEm5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQVoYXNQTQUFaGFzUE0EB2NoZWNrUE0DCQAAAggFAWkPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJwbQYJAQh0aHJvd0VycgECG3lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQdjaGVja1BNBQdjaGVja1BNCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNrZXlNYW5hZ2VyUHVibGljS2V5AAkA2AQBCQEFdmFsdWUBBQJwbQkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXkx3hd8", "chainId": 84, "height": 2159895, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6UaxptDcpLKYeS3ANnaxmm5AApe4uiXSXtwetCnTbXmL Next: 3YzZr6vnD6D7LZ1t4ih11zb7Q8h7BMZRAea5C9Rs68PJ Diff:
OldNewDifferences
5050 func u () = "%s__pendingManagerPublicKey"
5151
5252
53-func v (w) = throw(makeString(["referral.ride:", w], " "))
53+func v (d,w,x) = makeString(["%s%s%s%s%s", "history", "claim", d, w, x], a)
5454
5555
56-func x () = {
57- let y = getString(t())
58- if ($isInstanceOf(y, "String"))
56+func y (z) = makeString(["%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(z)], a)
57+
58+
59+func A (B) = throw(makeString(["referral.ride:", B], " "))
60+
61+
62+func C () = {
63+ let D = getString(t())
64+ if ($isInstanceOf(D, "String"))
5965 then {
60- let z = y
61- fromBase58String(z)
66+ let E = D
67+ fromBase58String(E)
6268 }
63- else if ($isInstanceOf(y, "Unit"))
69+ else if ($isInstanceOf(D, "Unit"))
6470 then unit
6571 else throw("Match error")
6672 }
6773
6874
69-func A () = {
70- let y = getString(u())
71- if ($isInstanceOf(y, "String"))
75+func F () = {
76+ let D = getString(u())
77+ if ($isInstanceOf(D, "String"))
7278 then {
73- let z = y
74- fromBase58String(z)
79+ let E = D
80+ fromBase58String(E)
7581 }
76- else if ($isInstanceOf(y, "Unit"))
82+ else if ($isInstanceOf(D, "Unit"))
7783 then unit
7884 else throw("Match error")
7985 }
8086
8187
82-func B (C) = {
83- let D = v("permission denied")
84- let y = x()
85- if ($isInstanceOf(y, "ByteVector"))
88+func G (H) = {
89+ let I = A("permission denied")
90+ let D = C()
91+ if ($isInstanceOf(D, "ByteVector"))
8692 then {
87- let E = y
88- if ((C.callerPublicKey == E))
93+ let J = D
94+ if ((H.callerPublicKey == J))
8995 then true
90- else D
96+ else I
9197 }
92- else if ($isInstanceOf(y, "Unit"))
93- then if ((C.caller == this))
98+ else if ($isInstanceOf(D, "Unit"))
99+ then if ((H.caller == this))
94100 then true
95- else D
101+ else I
96102 else throw("Match error")
97103 }
98104
99105
100-@Callable(C)
101-func createReferralProgram (d,F,G,H) = {
102- let I = B(C)
103- if ((I == I))
106+@Callable(H)
107+func createReferralProgram (d,K,L,M) = {
108+ let N = G(H)
109+ if ((N == N))
104110 then {
105- let J = if ((getBoolean(k(d)) == unit))
111+ let O = if ((getBoolean(k(d)) == unit))
106112 then true
107- else v("program name already exists")
108- if ((J == J))
113+ else A("program name already exists")
114+ if ((O == O))
109115 then {
110- let K = if (!(contains(d, a)))
116+ let P = if (!(contains(d, a)))
111117 then !(contains(d, " "))
112118 else false
113- let L = if (K)
119+ let Q = if (P)
114120 then true
115- else v("invalid program name")
116- if ((L == L))
121+ else A("invalid program name")
122+ if ((Q == Q))
117123 then {
118- let M = if ((assetInfo(fromBase58String(H)) != unit))
124+ let R = if ((assetInfo(fromBase58String(M)) != unit))
119125 then true
120- else v("invalid reward asset id")
121- if ((M == M))
122- then $Tuple2([BooleanEntry(k(d), true), StringEntry(r(d), F), StringEntry(s(d), G), StringEntry(q(d), H), IntegerEntry(p(d), 0)], unit)
126+ else A("invalid reward asset id")
127+ if ((R == R))
128+ then $Tuple2([BooleanEntry(k(d), true), StringEntry(r(d), K), StringEntry(s(d), L), StringEntry(q(d), M), IntegerEntry(p(d), 0)], unit)
123129 else throw("Strict value is not equal to itself.")
124130 }
125131 else throw("Strict value is not equal to itself.")
131137
132138
133139
134-@Callable(C)
135-func createPair (d,e,f,N) = {
136- let L = if (valueOrElse(getBoolean(k(d)), false))
140+@Callable(H)
141+func createPair (d,e,f,S) = {
142+ let Q = if (valueOrElse(getBoolean(k(d)), false))
137143 then true
138- else v("program does not exist")
139- if ((L == L))
144+ else A("program does not exist")
145+ if ((Q == Q))
140146 then {
141- let O = if ((getString(c(d, e, f)) == unit))
147+ let T = if ((getString(c(d, e, f)) == unit))
142148 then true
143- else v("pair already exists")
144- if ((O == O))
149+ else A("pair already exists")
150+ if ((T == T))
145151 then {
146- let P = if ((e != f))
152+ let U = if ((e != f))
147153 then true
148- else v("cannot refer to self")
149- if ((P == P))
154+ else A("cannot refer to self")
155+ if ((U == U))
150156 then {
151- let Q = toBytes(makeString([d, e, f], ":"))
152- let R = fromBase58String(value(getString(b)))
153- let S = if (sigVerify(Q, N, R))
157+ let V = toBytes(makeString([d, e, f], ":"))
158+ let W = fromBase58String(value(getString(b)))
159+ let X = if (sigVerify(V, S, W))
154160 then true
155- else v("bad signature")
156- if ((S == S))
161+ else A("bad signature")
162+ if ((X == X))
157163 then {
158- let T = valueOrElse(getInteger(l(d, e)), 0)
159- let U = (T + 1)
160- $Tuple2([BooleanEntry(c(d, e, f), true), IntegerEntry(l(d, e), U), StringEntry(j(d, f), e)], unit)
164+ let Y = valueOrElse(getInteger(l(d, e)), 0)
165+ let Z = (Y + 1)
166+ $Tuple2([BooleanEntry(c(d, e, f), true), IntegerEntry(l(d, e), Z), StringEntry(j(d, f), e)], unit)
161167 }
162168 else throw("Strict value is not equal to itself.")
163169 }
170176
171177
172178
173-@Callable(C)
174-func updateReferralActivity (d,f,V) = {
175- let G = value(getString(s(d)))
176- let W = (getBoolean(n(d, f)) != unit)
179+@Callable(H)
180+func updateReferralActivity (d,f,aa) = {
181+ let L = value(getString(s(d)))
182+ let ab = (getBoolean(n(d, f)) != unit)
177183 let e = value(getString(j(d, f)))
178- let I = if ((toString(C.caller) == G))
184+ let N = if ((toString(H.caller) == L))
179185 then true
180- else v("permission denied")
181- if ((I == I))
186+ else A("permission denied")
187+ if ((N == N))
182188 then {
183- let X = if ((W == V))
189+ let ac = if ((ab == aa))
184190 then $Tuple2(nil, unit)
185191 else {
186- let X = if ((V == true))
192+ let ac = if ((aa == true))
187193 then {
188- let Y = (valueOrElse(getInteger(m(d, e)), 0) + 1)
189- $Tuple2([BooleanEntry(n(d, f), true), IntegerEntry(m(d, e), Y)], unit)
194+ let ad = (valueOrElse(getInteger(m(d, e)), 0) + 1)
195+ $Tuple2([BooleanEntry(n(d, f), true), IntegerEntry(m(d, e), ad)], unit)
190196 }
191197 else {
192- let Y = (valueOrElse(getInteger(m(d, e)), 0) - 1)
193- $Tuple2([DeleteEntry(n(d, f)), IntegerEntry(m(d, e), Y)], unit)
198+ let ad = (valueOrElse(getInteger(m(d, e)), 0) - 1)
199+ $Tuple2([DeleteEntry(n(d, f)), IntegerEntry(m(d, e), ad)], unit)
194200 }
195- X
201+ ac
196202 }
197- X
203+ ac
198204 }
199205 else throw("Strict value is not equal to itself.")
200206 }
201207
202208
203209
204-@Callable(C)
205-func incUnclaimed (d,f,Z,aa) = {
206- let G = value(getString(s(d)))
207- let I = if ((toString(C.caller) == G))
210+@Callable(H)
211+func incUnclaimed (d,f,ae,af) = {
212+ let L = value(getString(s(d)))
213+ let N = if ((toString(H.caller) == L))
208214 then true
209- else v("permission denied")
210- if ((I == I))
215+ else A("permission denied")
216+ if ((N == N))
211217 then {
212218 let e = value(getString(j(d, f)))
213- let ab = valueOrElse(getInteger(i(d, e)), 0)
214- let ac = valueOrElse(getInteger(i(d, f)), 0)
215- let ad = valueOrElse(getInteger(p(d)), 0)
216- let ae = (ab + Z)
217- let af = (ac + aa)
218- $Tuple2([IntegerEntry(i(d, e), ae), IntegerEntry(i(d, f), af), IntegerEntry(p(d), ((ad + Z) + aa))], unit)
219+ let ag = valueOrElse(getInteger(i(d, e)), 0)
220+ let ah = valueOrElse(getInteger(i(d, f)), 0)
221+ let ai = valueOrElse(getInteger(p(d)), 0)
222+ let aj = (ag + ae)
223+ let ak = (ah + af)
224+ $Tuple2([IntegerEntry(i(d, e), aj), IntegerEntry(i(d, f), ak), IntegerEntry(p(d), ((ai + ae) + af))], unit)
219225 }
220226 else throw("Strict value is not equal to itself.")
221227 }
222228
223229
224230
225-@Callable(C)
231+@Callable(H)
226232 func claim (d) = {
227- let L = if (valueOrElse(getBoolean(k(d)), false))
233+ let Q = if (valueOrElse(getBoolean(k(d)), false))
228234 then true
229- else v("program does not exist")
230- if ((L == L))
235+ else A("program does not exist")
236+ if ((Q == Q))
231237 then {
232- let ag = valueOrElse(getInteger(o(d)), 0)
233- let ah = valueOrElse(getInteger(g(d, toString(C.caller))), 0)
234- let ai = valueOrElse(getInteger(i(d, toString(C.caller))), 0)
235- let F = value(addressFromString(value(getString(r(d)))))
236- let H = fromBase58String(value(getString(q(d))))
237- let aj = if ((ai > 0))
238+ let al = toString(H.caller)
239+ let am = valueOrElse(getInteger(o(d)), 0)
240+ let an = valueOrElse(getInteger(g(d, al)), 0)
241+ let ao = valueOrElse(getInteger(i(d, al)), 0)
242+ let K = value(addressFromString(value(getString(r(d)))))
243+ let M = fromBase58String(value(getString(q(d))))
244+ let ap = if ((ao > 0))
238245 then true
239- else v("nothing to claim")
240- if ((aj == aj))
246+ else A("nothing to claim")
247+ if ((ap == ap))
241248 then {
242- let ak = (ah + ai)
243- let al = (ag + ai)
244- let am = value(assetBalance(this, H))
245- if ((am == am))
249+ let aq = (an + ao)
250+ let ar = (am + ao)
251+ let as = value(assetBalance(this, M))
252+ if ((as == as))
246253 then {
247- let an = invoke(F, "withdrawReferralReward", [ai], nil)
248- if ((an == an))
254+ let at = invoke(K, "withdrawReferralReward", [ao], nil)
255+ if ((at == at))
249256 then {
250- let ao = value(assetBalance(this, H))
251- if ((ao == ao))
257+ let au = value(assetBalance(this, M))
258+ if ((au == au))
252259 then {
253- let ap = (ao - am)
254- if ((ap == ap))
260+ let av = (au - as)
261+ if ((av == av))
255262 then {
256- let aq = if ((ap == ai))
263+ let aw = if ((av == ao))
257264 then true
258- else v("insufficient balance on referral contract")
259- if ((aq == aq))
260- then $Tuple2([IntegerEntry(g(d, toString(C.caller)), ak), IntegerEntry(o(d), al), IntegerEntry(i(d, toString(C.caller)), 0), ScriptTransfer(C.caller, ai, H)], unit)
265+ else A("insufficient balance on referral contract")
266+ if ((aw == aw))
267+ then $Tuple2([IntegerEntry(g(d, al), aq), IntegerEntry(o(d), ar), IntegerEntry(i(d, al), 0), ScriptTransfer(H.caller, ao, M), StringEntry(v(d, al, toBase58String(H.transactionId)), y(ao))], unit)
261268 else throw("Strict value is not equal to itself.")
262269 }
263270 else throw("Strict value is not equal to itself.")
275282
276283
277284
278-@Callable(C)
279-func claimREADONLY (d,ar) = {
280- let ah = valueOrElse(getInteger(g(d, ar)), 0)
281- let ai = valueOrElse(getInteger(i(d, ar)), 0)
282- $Tuple2(nil, [ai, ah])
285+@Callable(H)
286+func claimREADONLY (d,w) = {
287+ let an = valueOrElse(getInteger(g(d, w)), 0)
288+ let ao = valueOrElse(getInteger(i(d, w)), 0)
289+ $Tuple2(nil, [ao, an])
283290 }
284291
285292
286293
287-@Callable(C)
288-func setManager (as) = {
289- let I = B(C)
290- if ((I == I))
294+@Callable(H)
295+func setManager (ax) = {
296+ let N = G(H)
297+ if ((N == N))
291298 then {
292- let at = fromBase58String(as)
293- if ((at == at))
294- then [StringEntry(u(), as)]
299+ let ay = fromBase58String(ax)
300+ if ((ay == ay))
301+ then [StringEntry(u(), ax)]
295302 else throw("Strict value is not equal to itself.")
296303 }
297304 else throw("Strict value is not equal to itself.")
299306
300307
301308
302-@Callable(C)
309+@Callable(H)
303310 func confirmManager () = {
304- let au = A()
305- let av = if (isDefined(au))
311+ let az = F()
312+ let aA = if (isDefined(az))
306313 then true
307- else v("no pending manager")
308- if ((av == av))
314+ else A("no pending manager")
315+ if ((aA == aA))
309316 then {
310- let aw = if ((C.callerPublicKey == value(au)))
317+ let aB = if ((H.callerPublicKey == value(az)))
311318 then true
312- else v("you are not pending manager")
313- if ((aw == aw))
314- then [StringEntry(t(), toBase58String(value(au))), DeleteEntry(u())]
319+ else A("you are not pending manager")
320+ if ((aB == aB))
321+ then [StringEntry(t(), toBase58String(value(az))), DeleteEntry(u())]
315322 else throw("Strict value is not equal to itself.")
316323 }
317324 else throw("Strict value is not equal to itself.")
318325 }
319326
320327
321-@Verifier(ax)
322-func ay () = {
323- let az = {
324- let y = x()
325- if ($isInstanceOf(y, "ByteVector"))
328+@Verifier(aC)
329+func aD () = {
330+ let aE = {
331+ let D = C()
332+ if ($isInstanceOf(D, "ByteVector"))
326333 then {
327- let E = y
328- E
334+ let J = D
335+ J
329336 }
330- else if ($isInstanceOf(y, "Unit"))
331- then ax.senderPublicKey
337+ else if ($isInstanceOf(D, "Unit"))
338+ then aC.senderPublicKey
332339 else throw("Match error")
333340 }
334- sigVerify(ax.bodyBytes, ax.proofs[0], az)
341+ sigVerify(aC.bodyBytes, aC.proofs[0], aE)
335342 }
336343
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = makeString(["%s", "backendPublicKey"], a)
77
88 func c (d,e,f) = makeString(["%s%s%s%s", "existsReferrerToReferral", d, e, f], a)
99
1010
1111 func g (d,h) = makeString(["%s%s%s%s", "claimed", d, h], a)
1212
1313
1414 func i (d,h) = makeString(["%s%s%s%s", "unclaimed", d, h], a)
1515
1616
1717 func j (d,f) = makeString(["%s%s%s", "referrer", d, f], a)
1818
1919
2020 func k (d) = makeString(["%s%s", "programName", d], a)
2121
2222
2323 func l (d,e) = makeString(["%s%s%s", "totalReferralCount", d, e], a)
2424
2525
2626 func m (d,e) = makeString(["%s%s%s", "activeReferralCount", d, e], a)
2727
2828
2929 func n (d,f) = makeString(["%s%s%s", "activeReferral", d, f], a)
3030
3131
3232 func o (d) = makeString(["%s%s", "claimedTotal", d], a)
3333
3434
3535 func p (d) = makeString(["%s%s", "rewardsTotal", d], a)
3636
3737
3838 func q (d) = makeString(["%s%s", "rewardAssetId", d], a)
3939
4040
4141 func r (d) = makeString(["%s%s", "treasuryContract", d], a)
4242
4343
4444 func s (d) = makeString(["%s%s", "implementationContract", d], a)
4545
4646
4747 func t () = "%s__managerPublicKey"
4848
4949
5050 func u () = "%s__pendingManagerPublicKey"
5151
5252
53-func v (w) = throw(makeString(["referral.ride:", w], " "))
53+func v (d,w,x) = makeString(["%s%s%s%s%s", "history", "claim", d, w, x], a)
5454
5555
56-func x () = {
57- let y = getString(t())
58- if ($isInstanceOf(y, "String"))
56+func y (z) = makeString(["%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(z)], a)
57+
58+
59+func A (B) = throw(makeString(["referral.ride:", B], " "))
60+
61+
62+func C () = {
63+ let D = getString(t())
64+ if ($isInstanceOf(D, "String"))
5965 then {
60- let z = y
61- fromBase58String(z)
66+ let E = D
67+ fromBase58String(E)
6268 }
63- else if ($isInstanceOf(y, "Unit"))
69+ else if ($isInstanceOf(D, "Unit"))
6470 then unit
6571 else throw("Match error")
6672 }
6773
6874
69-func A () = {
70- let y = getString(u())
71- if ($isInstanceOf(y, "String"))
75+func F () = {
76+ let D = getString(u())
77+ if ($isInstanceOf(D, "String"))
7278 then {
73- let z = y
74- fromBase58String(z)
79+ let E = D
80+ fromBase58String(E)
7581 }
76- else if ($isInstanceOf(y, "Unit"))
82+ else if ($isInstanceOf(D, "Unit"))
7783 then unit
7884 else throw("Match error")
7985 }
8086
8187
82-func B (C) = {
83- let D = v("permission denied")
84- let y = x()
85- if ($isInstanceOf(y, "ByteVector"))
88+func G (H) = {
89+ let I = A("permission denied")
90+ let D = C()
91+ if ($isInstanceOf(D, "ByteVector"))
8692 then {
87- let E = y
88- if ((C.callerPublicKey == E))
93+ let J = D
94+ if ((H.callerPublicKey == J))
8995 then true
90- else D
96+ else I
9197 }
92- else if ($isInstanceOf(y, "Unit"))
93- then if ((C.caller == this))
98+ else if ($isInstanceOf(D, "Unit"))
99+ then if ((H.caller == this))
94100 then true
95- else D
101+ else I
96102 else throw("Match error")
97103 }
98104
99105
100-@Callable(C)
101-func createReferralProgram (d,F,G,H) = {
102- let I = B(C)
103- if ((I == I))
106+@Callable(H)
107+func createReferralProgram (d,K,L,M) = {
108+ let N = G(H)
109+ if ((N == N))
104110 then {
105- let J = if ((getBoolean(k(d)) == unit))
111+ let O = if ((getBoolean(k(d)) == unit))
106112 then true
107- else v("program name already exists")
108- if ((J == J))
113+ else A("program name already exists")
114+ if ((O == O))
109115 then {
110- let K = if (!(contains(d, a)))
116+ let P = if (!(contains(d, a)))
111117 then !(contains(d, " "))
112118 else false
113- let L = if (K)
119+ let Q = if (P)
114120 then true
115- else v("invalid program name")
116- if ((L == L))
121+ else A("invalid program name")
122+ if ((Q == Q))
117123 then {
118- let M = if ((assetInfo(fromBase58String(H)) != unit))
124+ let R = if ((assetInfo(fromBase58String(M)) != unit))
119125 then true
120- else v("invalid reward asset id")
121- if ((M == M))
122- then $Tuple2([BooleanEntry(k(d), true), StringEntry(r(d), F), StringEntry(s(d), G), StringEntry(q(d), H), IntegerEntry(p(d), 0)], unit)
126+ else A("invalid reward asset id")
127+ if ((R == R))
128+ then $Tuple2([BooleanEntry(k(d), true), StringEntry(r(d), K), StringEntry(s(d), L), StringEntry(q(d), M), IntegerEntry(p(d), 0)], unit)
123129 else throw("Strict value is not equal to itself.")
124130 }
125131 else throw("Strict value is not equal to itself.")
126132 }
127133 else throw("Strict value is not equal to itself.")
128134 }
129135 else throw("Strict value is not equal to itself.")
130136 }
131137
132138
133139
134-@Callable(C)
135-func createPair (d,e,f,N) = {
136- let L = if (valueOrElse(getBoolean(k(d)), false))
140+@Callable(H)
141+func createPair (d,e,f,S) = {
142+ let Q = if (valueOrElse(getBoolean(k(d)), false))
137143 then true
138- else v("program does not exist")
139- if ((L == L))
144+ else A("program does not exist")
145+ if ((Q == Q))
140146 then {
141- let O = if ((getString(c(d, e, f)) == unit))
147+ let T = if ((getString(c(d, e, f)) == unit))
142148 then true
143- else v("pair already exists")
144- if ((O == O))
149+ else A("pair already exists")
150+ if ((T == T))
145151 then {
146- let P = if ((e != f))
152+ let U = if ((e != f))
147153 then true
148- else v("cannot refer to self")
149- if ((P == P))
154+ else A("cannot refer to self")
155+ if ((U == U))
150156 then {
151- let Q = toBytes(makeString([d, e, f], ":"))
152- let R = fromBase58String(value(getString(b)))
153- let S = if (sigVerify(Q, N, R))
157+ let V = toBytes(makeString([d, e, f], ":"))
158+ let W = fromBase58String(value(getString(b)))
159+ let X = if (sigVerify(V, S, W))
154160 then true
155- else v("bad signature")
156- if ((S == S))
161+ else A("bad signature")
162+ if ((X == X))
157163 then {
158- let T = valueOrElse(getInteger(l(d, e)), 0)
159- let U = (T + 1)
160- $Tuple2([BooleanEntry(c(d, e, f), true), IntegerEntry(l(d, e), U), StringEntry(j(d, f), e)], unit)
164+ let Y = valueOrElse(getInteger(l(d, e)), 0)
165+ let Z = (Y + 1)
166+ $Tuple2([BooleanEntry(c(d, e, f), true), IntegerEntry(l(d, e), Z), StringEntry(j(d, f), e)], unit)
161167 }
162168 else throw("Strict value is not equal to itself.")
163169 }
164170 else throw("Strict value is not equal to itself.")
165171 }
166172 else throw("Strict value is not equal to itself.")
167173 }
168174 else throw("Strict value is not equal to itself.")
169175 }
170176
171177
172178
173-@Callable(C)
174-func updateReferralActivity (d,f,V) = {
175- let G = value(getString(s(d)))
176- let W = (getBoolean(n(d, f)) != unit)
179+@Callable(H)
180+func updateReferralActivity (d,f,aa) = {
181+ let L = value(getString(s(d)))
182+ let ab = (getBoolean(n(d, f)) != unit)
177183 let e = value(getString(j(d, f)))
178- let I = if ((toString(C.caller) == G))
184+ let N = if ((toString(H.caller) == L))
179185 then true
180- else v("permission denied")
181- if ((I == I))
186+ else A("permission denied")
187+ if ((N == N))
182188 then {
183- let X = if ((W == V))
189+ let ac = if ((ab == aa))
184190 then $Tuple2(nil, unit)
185191 else {
186- let X = if ((V == true))
192+ let ac = if ((aa == true))
187193 then {
188- let Y = (valueOrElse(getInteger(m(d, e)), 0) + 1)
189- $Tuple2([BooleanEntry(n(d, f), true), IntegerEntry(m(d, e), Y)], unit)
194+ let ad = (valueOrElse(getInteger(m(d, e)), 0) + 1)
195+ $Tuple2([BooleanEntry(n(d, f), true), IntegerEntry(m(d, e), ad)], unit)
190196 }
191197 else {
192- let Y = (valueOrElse(getInteger(m(d, e)), 0) - 1)
193- $Tuple2([DeleteEntry(n(d, f)), IntegerEntry(m(d, e), Y)], unit)
198+ let ad = (valueOrElse(getInteger(m(d, e)), 0) - 1)
199+ $Tuple2([DeleteEntry(n(d, f)), IntegerEntry(m(d, e), ad)], unit)
194200 }
195- X
201+ ac
196202 }
197- X
203+ ac
198204 }
199205 else throw("Strict value is not equal to itself.")
200206 }
201207
202208
203209
204-@Callable(C)
205-func incUnclaimed (d,f,Z,aa) = {
206- let G = value(getString(s(d)))
207- let I = if ((toString(C.caller) == G))
210+@Callable(H)
211+func incUnclaimed (d,f,ae,af) = {
212+ let L = value(getString(s(d)))
213+ let N = if ((toString(H.caller) == L))
208214 then true
209- else v("permission denied")
210- if ((I == I))
215+ else A("permission denied")
216+ if ((N == N))
211217 then {
212218 let e = value(getString(j(d, f)))
213- let ab = valueOrElse(getInteger(i(d, e)), 0)
214- let ac = valueOrElse(getInteger(i(d, f)), 0)
215- let ad = valueOrElse(getInteger(p(d)), 0)
216- let ae = (ab + Z)
217- let af = (ac + aa)
218- $Tuple2([IntegerEntry(i(d, e), ae), IntegerEntry(i(d, f), af), IntegerEntry(p(d), ((ad + Z) + aa))], unit)
219+ let ag = valueOrElse(getInteger(i(d, e)), 0)
220+ let ah = valueOrElse(getInteger(i(d, f)), 0)
221+ let ai = valueOrElse(getInteger(p(d)), 0)
222+ let aj = (ag + ae)
223+ let ak = (ah + af)
224+ $Tuple2([IntegerEntry(i(d, e), aj), IntegerEntry(i(d, f), ak), IntegerEntry(p(d), ((ai + ae) + af))], unit)
219225 }
220226 else throw("Strict value is not equal to itself.")
221227 }
222228
223229
224230
225-@Callable(C)
231+@Callable(H)
226232 func claim (d) = {
227- let L = if (valueOrElse(getBoolean(k(d)), false))
233+ let Q = if (valueOrElse(getBoolean(k(d)), false))
228234 then true
229- else v("program does not exist")
230- if ((L == L))
235+ else A("program does not exist")
236+ if ((Q == Q))
231237 then {
232- let ag = valueOrElse(getInteger(o(d)), 0)
233- let ah = valueOrElse(getInteger(g(d, toString(C.caller))), 0)
234- let ai = valueOrElse(getInteger(i(d, toString(C.caller))), 0)
235- let F = value(addressFromString(value(getString(r(d)))))
236- let H = fromBase58String(value(getString(q(d))))
237- let aj = if ((ai > 0))
238+ let al = toString(H.caller)
239+ let am = valueOrElse(getInteger(o(d)), 0)
240+ let an = valueOrElse(getInteger(g(d, al)), 0)
241+ let ao = valueOrElse(getInteger(i(d, al)), 0)
242+ let K = value(addressFromString(value(getString(r(d)))))
243+ let M = fromBase58String(value(getString(q(d))))
244+ let ap = if ((ao > 0))
238245 then true
239- else v("nothing to claim")
240- if ((aj == aj))
246+ else A("nothing to claim")
247+ if ((ap == ap))
241248 then {
242- let ak = (ah + ai)
243- let al = (ag + ai)
244- let am = value(assetBalance(this, H))
245- if ((am == am))
249+ let aq = (an + ao)
250+ let ar = (am + ao)
251+ let as = value(assetBalance(this, M))
252+ if ((as == as))
246253 then {
247- let an = invoke(F, "withdrawReferralReward", [ai], nil)
248- if ((an == an))
254+ let at = invoke(K, "withdrawReferralReward", [ao], nil)
255+ if ((at == at))
249256 then {
250- let ao = value(assetBalance(this, H))
251- if ((ao == ao))
257+ let au = value(assetBalance(this, M))
258+ if ((au == au))
252259 then {
253- let ap = (ao - am)
254- if ((ap == ap))
260+ let av = (au - as)
261+ if ((av == av))
255262 then {
256- let aq = if ((ap == ai))
263+ let aw = if ((av == ao))
257264 then true
258- else v("insufficient balance on referral contract")
259- if ((aq == aq))
260- then $Tuple2([IntegerEntry(g(d, toString(C.caller)), ak), IntegerEntry(o(d), al), IntegerEntry(i(d, toString(C.caller)), 0), ScriptTransfer(C.caller, ai, H)], unit)
265+ else A("insufficient balance on referral contract")
266+ if ((aw == aw))
267+ then $Tuple2([IntegerEntry(g(d, al), aq), IntegerEntry(o(d), ar), IntegerEntry(i(d, al), 0), ScriptTransfer(H.caller, ao, M), StringEntry(v(d, al, toBase58String(H.transactionId)), y(ao))], unit)
261268 else throw("Strict value is not equal to itself.")
262269 }
263270 else throw("Strict value is not equal to itself.")
264271 }
265272 else throw("Strict value is not equal to itself.")
266273 }
267274 else throw("Strict value is not equal to itself.")
268275 }
269276 else throw("Strict value is not equal to itself.")
270277 }
271278 else throw("Strict value is not equal to itself.")
272279 }
273280 else throw("Strict value is not equal to itself.")
274281 }
275282
276283
277284
278-@Callable(C)
279-func claimREADONLY (d,ar) = {
280- let ah = valueOrElse(getInteger(g(d, ar)), 0)
281- let ai = valueOrElse(getInteger(i(d, ar)), 0)
282- $Tuple2(nil, [ai, ah])
285+@Callable(H)
286+func claimREADONLY (d,w) = {
287+ let an = valueOrElse(getInteger(g(d, w)), 0)
288+ let ao = valueOrElse(getInteger(i(d, w)), 0)
289+ $Tuple2(nil, [ao, an])
283290 }
284291
285292
286293
287-@Callable(C)
288-func setManager (as) = {
289- let I = B(C)
290- if ((I == I))
294+@Callable(H)
295+func setManager (ax) = {
296+ let N = G(H)
297+ if ((N == N))
291298 then {
292- let at = fromBase58String(as)
293- if ((at == at))
294- then [StringEntry(u(), as)]
299+ let ay = fromBase58String(ax)
300+ if ((ay == ay))
301+ then [StringEntry(u(), ax)]
295302 else throw("Strict value is not equal to itself.")
296303 }
297304 else throw("Strict value is not equal to itself.")
298305 }
299306
300307
301308
302-@Callable(C)
309+@Callable(H)
303310 func confirmManager () = {
304- let au = A()
305- let av = if (isDefined(au))
311+ let az = F()
312+ let aA = if (isDefined(az))
306313 then true
307- else v("no pending manager")
308- if ((av == av))
314+ else A("no pending manager")
315+ if ((aA == aA))
309316 then {
310- let aw = if ((C.callerPublicKey == value(au)))
317+ let aB = if ((H.callerPublicKey == value(az)))
311318 then true
312- else v("you are not pending manager")
313- if ((aw == aw))
314- then [StringEntry(t(), toBase58String(value(au))), DeleteEntry(u())]
319+ else A("you are not pending manager")
320+ if ((aB == aB))
321+ then [StringEntry(t(), toBase58String(value(az))), DeleteEntry(u())]
315322 else throw("Strict value is not equal to itself.")
316323 }
317324 else throw("Strict value is not equal to itself.")
318325 }
319326
320327
321-@Verifier(ax)
322-func ay () = {
323- let az = {
324- let y = x()
325- if ($isInstanceOf(y, "ByteVector"))
328+@Verifier(aC)
329+func aD () = {
330+ let aE = {
331+ let D = C()
332+ if ($isInstanceOf(D, "ByteVector"))
326333 then {
327- let E = y
328- E
334+ let J = D
335+ J
329336 }
330- else if ($isInstanceOf(y, "Unit"))
331- then ax.senderPublicKey
337+ else if ($isInstanceOf(D, "Unit"))
338+ then aC.senderPublicKey
332339 else throw("Match error")
333340 }
334- sigVerify(ax.bodyBytes, ax.proofs[0], az)
341+ sigVerify(aC.bodyBytes, aC.proofs[0], aE)
335342 }
336343

github/deemru/w8io/169f3d6 
101.21 ms