tx · 8egnpN8ni4wvEeZTEQndwqHJs7sWjcbTqaVqSKCEJc9M

3NBhCjipaSBkkoRSBdcyx2ui7wnY4HnxiVW:  -0.01300000 Waves

2023.05.04 13:11 [2562877] smart account 3NBhCjipaSBkkoRSBdcyx2ui7wnY4HnxiVW > SELF 0.00000000 Waves

{ "type": 13, "id": "8egnpN8ni4wvEeZTEQndwqHJs7sWjcbTqaVqSKCEJc9M", "fee": 1300000, "feeAssetId": null, "timestamp": 1683195127225, "version": 2, "chainId": 84, "sender": "3NBhCjipaSBkkoRSBdcyx2ui7wnY4HnxiVW", "senderPublicKey": "FwXakLfcNwZygjHPVBd5TDZ4C5Wrgpoi9U69GufmFkQ", "proofs": [ "4SfLDikSbsx3gnsfQdBn1meYJHtjxzxtDs9cgaujNoRBBn1JFXwktRyHDkURfYcpa1mvYhevcoDAZ1gZQcjWqYFk" ], "script": "base64:BgIlCAISCgoICAgBAQEBAQESAwoBCBIDCgEIEgUKAwgIARIECgIICBIAA1NFUAICX18BE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzARdnZXRNYW5hZ2VyQWRkcmVzc09yRmFpbAAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAEQa2V5V2l0aGRyYXdEZWxheQIGYXNzZXRBBmFzc2V0QgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAg13aXRoZHJhd0RlbGF5CQDMCAIFBmFzc2V0QQkAzAgCBQZhc3NldEIFA25pbAUDU0VQARVrZXlEZXBvc2l0RmVlUGVybWlsbGUCBmFzc2V0QQZhc3NldEIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgISZGVwb3NpdEZlZVBlcm1pbGxlCQDMCAIFBmFzc2V0QQkAzAgCBQZhc3NldEIFA25pbAUDU0VQARZrZXlXaXRoZHJhd0ZlZVBlcm1pbGxlAgZhc3NldEEGYXNzZXRCCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICE3dpdGhkcmF3RmVlUGVybWlsbGUJAMwIAgUGYXNzZXRBCQDMCAIFBmFzc2V0QgUDbmlsBQNTRVABE2tleU1pbkFtb3VudERlcG9zaXQCBmFzc2V0QQZhc3NldEIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIQbWluQW1vdW50RGVwb3NpdAkAzAgCBQZhc3NldEEJAMwIAgUGYXNzZXRCBQNuaWwFA1NFUAETa2V5QXNzZXRzUGFpclN0YXR1cwIGYXNzZXRBBmFzc2V0QgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhBhc3NldHNQYWlyU3RhdHVzCQDMCAIFBmFzc2V0QQkAzAgCBQZhc3NldEIFA25pbAUDU0VQARRrZXlNaW5BbW91bnRXaXRoZHJhdwIGYXNzZXRBBmFzc2V0QgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhFtaW5BbW91bnRXaXRoZHJhdwkAzAgCBQZhc3NldEEJAMwIAgUGYXNzZXRCBQNuaWwFA1NFUAEKa2V5QmFsYW5jZQMGYXNzZXRBBmFzc2V0Qgt1c2VyQWRkcmVzcwkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAICB2JhbGFuY2UJAMwIAgUGYXNzZXRBCQDMCAIFBmFzc2V0QgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABG2tleVRvdGFsRmVlQ29sbGVjdGVkRGVwb3NpdAIGYXNzZXRBBmFzc2V0QgkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAICEXRvdGFsRmVlQ29sbGVjdGVkCQDMCAICB2RlcG9zaXQJAMwIAgUGYXNzZXRBCQDMCAIFBmFzc2V0QgUDbmlsBQNTRVABFGtleVByb2Nlc3NJblByb2dyZXNzBAt1c2VyQWRkcmVzcwZhc3NldEEGYXNzZXRCC2hlaWdodEluS2V5CQC5CQIJAMwIAgIMJXMlcyVzJXMlcyVkCQDMCAICD3dpdGhkcmF3UHJvY2VzcwkAzAgCAgppblByb2dyZXNzCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFBmFzc2V0QQkAzAgCBQZhc3NldEIJAMwIAgkApAMBBQtoZWlnaHRJbktleQUDbmlsBQNTRVABDmtleVByb2Nlc3NEb25lBAt1c2VyQWRkcmVzcwZhc3NldEEGYXNzZXRCC2hlaWdodEluS2V5CQC5CQIJAMwIAgIMJXMlcyVzJXMlcyVkCQDMCAICD3dpdGhkcmF3UHJvY2VzcwkAzAgCAgRkb25lCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFBmFzc2V0QQkAzAgCBQZhc3NldEIJAMwIAgkApAMBBQtoZWlnaHRJbktleQUDbmlsBQNTRVABFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQABBNtYW5hZ2VyVmF1bHRBZGRyZXNzCQEXZ2V0TWFuYWdlckFkZHJlc3NPckZhaWwABAckbWF0Y2gwCQCdCAIFE21hbmFnZXJWYXVsdEFkZHJlc3MJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpBAJwZAkAAgECElBlcm1pc3Npb24gZGVuaWVkLgQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQUCcGsGBQJwZAMJAAECBQckbWF0Y2gwAgRVbml0AwkAAAIIBQFpBmNhbGxlcgUEdGhpcwYFAnBkCQACAQILTWF0Y2ggZXJyb3IBBmZtdEVycgEDbXNnCQC5CQIJAMwIAgIUb3RjX211bHRpYXNzZXQucmlkZToJAMwIAgUDbXNnBQNuaWwCASABCHRocm93RXJyAQNtc2cJAAIBCQEGZm10RXJyAQUDbXNnBQFpAQ1yZWdpc3RlckFzc2V0CAZhc3NldEEGYXNzZXRCDXdpdGhkcmF3RGVsYXkKZGVwb3NpdEZlZQt3aXRoZHJhd0ZlZRBtaW5BbW91bnREZXBvc2l0EW1pbkFtb3VudFdpdGhkcmF3CnBhaXJTdGF0dXMEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQQd2l0aGRyYXdEZWxheUtleQkBEGtleVdpdGhkcmF3RGVsYXkCBQZhc3NldEEFBmFzc2V0QgQVZGVwb3NpdEZlZVBlcm1pbGxlS2V5CQEVa2V5RGVwb3NpdEZlZVBlcm1pbGxlAgUGYXNzZXRBBQZhc3NldEIEFndpdGhkcmF3RmVlUGVybWlsbGVLZXkJARZrZXlXaXRoZHJhd0ZlZVBlcm1pbGxlAgUGYXNzZXRBBQZhc3NldEIEE21pbkFtb3VudERlcG9zaXRLZXkJARNrZXlNaW5BbW91bnREZXBvc2l0AgUGYXNzZXRBBQZhc3NldEIEFG1pbkFtb3VudFdpdGhkcmF3S2V5CQEUa2V5TWluQW1vdW50V2l0aGRyYXcCBQZhc3NldEEFBmFzc2V0QgQNcGFpclN0YXR1c0tleQkBE2tleUFzc2V0c1BhaXJTdGF0dXMCBQZhc3NldEEFBmFzc2V0QgkAzAgCCQEMSW50ZWdlckVudHJ5AgUQd2l0aGRyYXdEZWxheUtleQUNd2l0aGRyYXdEZWxheQkAzAgCCQEMSW50ZWdlckVudHJ5AgUVZGVwb3NpdEZlZVBlcm1pbGxlS2V5BQpkZXBvc2l0RmVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRZ3aXRoZHJhd0ZlZVBlcm1pbGxlS2V5BQt3aXRoZHJhd0ZlZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUTbWluQW1vdW50RGVwb3NpdEtleQUQbWluQW1vdW50RGVwb3NpdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUbWluQW1vdW50V2l0aGRyYXdLZXkFEW1pbkFtb3VudFdpdGhkcmF3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1wYWlyU3RhdHVzS2V5BQpwYWlyU3RhdHVzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOc3dhcEFzc2V0c0FUb0IBBmFzc2V0QgQHcGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAZhc3NldEEJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAQFYXNzZXQJANkEAQkBBXZhbHVlAQUGYXNzZXRCBAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEEG1pbkFtb3VudERlcG9zaXQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQETa2V5TWluQW1vdW50RGVwb3NpdAIFBmFzc2V0QQUGYXNzZXRCCQEGZm10RXJyAQIfVGhpcyBhc3NldCBwYWlyIGRvZXMgbm90IGV4aXN0LgQJdG9EZXBvc2l0CAUHcGF5bWVudAZhbW91bnQECmRlcG9zaXRGZWUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEVa2V5RGVwb3NpdEZlZVBlcm1pbGxlAgUGYXNzZXRBBQZhc3NldEIJAQZmbXRFcnIBAjNUaGUgZGVwb3NpdCBmZWUgZm9yIHRoaXMgcGFpciBvZiBhc3NldHMgaXMgbm90IHNldC4EA2ZlZQkAaAIJAGkCBQl0b0RlcG9zaXQA6AcFCmRlcG9zaXRGZWUEEmN1cnJlbnRVc2VyQmFsYW5jZQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEKa2V5QmFsYW5jZQMFBmFzc2V0QQUGYXNzZXRCBQt1c2VyQWRkcmVzcwAABBB0b3RhbENvbW1pc3Npb25zCQELdmFsdWVPckVsc2UCCQCfCAEJARtrZXlUb3RhbEZlZUNvbGxlY3RlZERlcG9zaXQCBQZhc3NldEEFBmFzc2V0QgAABApwYWlyU3RhdHVzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBE2tleUFzc2V0c1BhaXJTdGF0dXMCBQZhc3NldEEFBmFzc2V0QgkBBmZtdEVycgECOVRoZSBhc3NldCBwYWlyIHN0YXR1cyBmb3IgdGhpcyBwYWlyIG9mIGFzc2V0cyBpcyBub3Qgc2V0LgQPY2hlY2tQYWlyU3RhdHVzAwkAAAIFCnBhaXJTdGF0dXMAAAYJAQh0aHJvd0VycgECIFRoZSBjb3VwbGUncyBkZXBvc2l0IGlzIGJsb2NrZWQuAwkAAAIFD2NoZWNrUGFpclN0YXR1cwUPY2hlY2tQYWlyU3RhdHVzBAxjaGVja1BheW1lbnQDCQBnAgUJdG9EZXBvc2l0BRBtaW5BbW91bnREZXBvc2l0BgkBCHRocm93RXJyAQIsVGhlIGRlcG9zaXQgYW1vdW50IGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bS4DCQAAAgUMY2hlY2tQYXltZW50BQxjaGVja1BheW1lbnQECm5ld0JhbGFuY2UJAGUCCQBkAgUSY3VycmVudFVzZXJCYWxhbmNlBQl0b0RlcG9zaXQFA2ZlZQQMY2hlY2tCYWxhbmNlAwkAZgIFCm5ld0JhbGFuY2UAAAYJAQh0aHJvd0VycgECLVRoZSBmaW5hbCBiYWxhbmNlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAwLgMJAAACBQxjaGVja0JhbGFuY2UFDGNoZWNrQmFsYW5jZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCmtleUJhbGFuY2UDBQZhc3NldEEFBmFzc2V0QgULdXNlckFkZHJlc3MFCm5ld0JhbGFuY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARtrZXlUb3RhbEZlZUNvbGxlY3RlZERlcG9zaXQCBQZhc3NldEEFBmFzc2V0QgkAZAIFEHRvdGFsQ29tbWlzc2lvbnMFA2ZlZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCBQl0b0RlcG9zaXQFA2ZlZQUFYXNzZXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARxpbml0aWFsaXphdGlvblN3YXBBc3NldHNCVG9BAQZhc3NldEEEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQKdG9XaXRoZHJhdwgFB3BheW1lbnQGYW1vdW50BAZhc3NldEIJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBBFtaW5BbW91bnRXaXRoZHJhdwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJARRrZXlNaW5BbW91bnRXaXRoZHJhdwIFBmFzc2V0QQUGYXNzZXRCCQEGZm10RXJyAQJBVGhlIG1pbmltdW0gd2l0aGRyYXdhbCBhbW91bnQgZm9yIHRoaXMgcGFpciBvZiBhc3NldHMgaXMgbm90IHNldC4ED2Fzc2V0TG9ja0hlaWdodAkAZAIFBmhlaWdodAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJARBrZXlXaXRoZHJhd0RlbGF5AgUGYXNzZXRBBQZhc3NldEIJAQZmbXRFcnIBAjNXaXRoZHJhd2FsIGRlbGF5IGlzIG5vdCBzZXQgZm9yIHRoZSBzcGVjaWZpZWQgcGFpci4EEmN1cnJlbnRVc2VyQmFsYW5jZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJAQprZXlCYWxhbmNlAwUGYXNzZXRBBQZhc3NldEIFC3VzZXJBZGRyZXNzCQEGZm10RXJyAQIhVGhpcyB1c2VyIGJhbGFuY2UgZG9lcyBub3QgZXhpc3QuBBB0b3RhbENvbW1pc3Npb25zCQELdmFsdWVPckVsc2UCCQCfCAEJARtrZXlUb3RhbEZlZUNvbGxlY3RlZERlcG9zaXQCBQZhc3NldEEFBmFzc2V0QgAABBZ3aXRoZHJhd0ZlZVBlcm1pbGxlS2V5CQEWa2V5V2l0aGRyYXdGZWVQZXJtaWxsZQIFBmFzc2V0QQUGYXNzZXRCBAt3aXRoZHJhd0ZlZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEFFndpdGhkcmF3RmVlUGVybWlsbGVLZXkJAQZmbXRFcnIBAjZUaGUgd2l0aGRyYXdhbCBmZWUgZm9yIHRoaXMgcGFpciBvZiBhc3NldHMgaXMgbm90IHNldC4EA2ZlZQkAaAIJAGkCBQp0b1dpdGhkcmF3AOgHBQt3aXRoZHJhd0ZlZQQKbmV3QmFsYW5jZQkAZQIFEmN1cnJlbnRVc2VyQmFsYW5jZQUKdG9XaXRoZHJhdwQMY2hlY2tCYWxhbmNlAwkAZwIFCm5ld0JhbGFuY2UAAAYJAQh0aHJvd0VycgECJVN3YXAgYW1vdW50IGZhaWwsIGFtb3VudCBpcyB0byBzbWFsbC4DCQAAAgUMY2hlY2tCYWxhbmNlBQxjaGVja0JhbGFuY2UEDGNoZWNrUGF5bWVudAMJAGcCBQp0b1dpdGhkcmF3BRFtaW5BbW91bnRXaXRoZHJhdwYJAQh0aHJvd0VycgECLVRoZSB3aXRoZHJhdyBhbW91bnQgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtLgMJAAACBQxjaGVja1BheW1lbnQFDGNoZWNrUGF5bWVudAQWY2hlY2tQcm9jZXNzSW5Qcm9ncmVzcwMJAAACCQCfCAEJARRrZXlQcm9jZXNzSW5Qcm9ncmVzcwQFC3VzZXJBZGRyZXNzBQZhc3NldEEFBmFzc2V0QgUPYXNzZXRMb2NrSGVpZ2h0BQR1bml0BgkBCHRocm93RXJyAQI6QXQgdGhpcyBoZWlnaHQsIHRoZXJlIGlzIGFscmVhZHkgYW4gZXhjaGFuZ2Ugb2YgdGhpcyBwYWlyLgMJAAACBRZjaGVja1Byb2Nlc3NJblByb2dyZXNzBRZjaGVja1Byb2Nlc3NJblByb2dyZXNzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEKa2V5QmFsYW5jZQMFBmFzc2V0QQUGYXNzZXRCBQt1c2VyQWRkcmVzcwUKbmV3QmFsYW5jZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleVByb2Nlc3NJblByb2dyZXNzBAULdXNlckFkZHJlc3MFBmFzc2V0QQUGYXNzZXRCBQ9hc3NldExvY2tIZWlnaHQJAGUCBQp0b1dpdGhkcmF3BQNmZWUJAMwIAgkBDEludGVnZXJFbnRyeQIJARtrZXlUb3RhbEZlZUNvbGxlY3RlZERlcG9zaXQCBQZhc3NldEEFBmFzc2V0QgkAZAIFEHRvdGFsQ29tbWlzc2lvbnMFA2ZlZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDXdpdGhkcmF3QXNzZXQDBmFzc2V0QQZhc3NldEILaGVpZ2h0SW5LZXkEC3VzZXJBZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQKdG9XaXRoZHJhdwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJARRrZXlQcm9jZXNzSW5Qcm9ncmVzcwQFC3VzZXJBZGRyZXNzBQZhc3NldEEFBmFzc2V0QgULaGVpZ2h0SW5LZXkJAQZmbXRFcnIBAkZBdCB0aGlzIGhlaWdodCwgd2l0aGRyYXcgd2FzIG5vdCBpbml0aWFsaXplZCB3aXRoIHRoaXMgcGFpciBvZiBhc3NldHMuBAVhc3NldAkA2QQBCQEFdmFsdWUBBQZhc3NldEEEC2NoZWNrSGVpZ2h0AwkAZwIFBmhlaWdodAULaGVpZ2h0SW5LZXkGCQEIdGhyb3dFcnIBCQCsAgIJAKwCAgIdV2l0aGRyYXdhbCBpcyBwb3NzaWJsZSBhZnRlciAJAKQDAQULaGVpZ2h0SW5LZXkCJiBoZWlnaHQgb3IgeW91IGhhdmUgYWxyZWFkeSB3aXRoZHJhd24uAwkAAAIFC2NoZWNrSGVpZ2h0BQtjaGVja0hlaWdodAkAzAgCCQELRGVsZXRlRW50cnkBCQEUa2V5UHJvY2Vzc0luUHJvZ3Jlc3MEBQt1c2VyQWRkcmVzcwUGYXNzZXRBBQZhc3NldEIFC2hlaWdodEluS2V5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOa2V5UHJvY2Vzc0RvbmUEBQt1c2VyQWRkcmVzcwUGYXNzZXRBBQZhc3NldEIFC2hlaWdodEluS2V5BQp0b1dpdGhkcmF3CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUKdG9XaXRoZHJhdwUFYXNzZXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQt3aXRoZHJhd0ZlZQIGYXNzZXRBBmFzc2V0QgQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBAt0b1dpdGhkcmF3QQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEba2V5VG90YWxGZWVDb2xsZWN0ZWREZXBvc2l0AgUGYXNzZXRBBQZhc3NldEIAAAQOd2l0aGRyYXdBc3NldEEJANkEAQkBBXZhbHVlAQUGYXNzZXRBCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEba2V5VG90YWxGZWVDb2xsZWN0ZWREZXBvc2l0AgUGYXNzZXRBBQZhc3NldEIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFC3RvV2l0aGRyYXdBBQ53aXRoZHJhd0Fzc2V0QQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQPdGFyZ2V0UHVibGljS2V5BAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V5FVMfmg==", "height": 2562877, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CLSZFcsU3jobwVaGwq9wqTvsA9R4hKieuD4Fezk7fgAU Next: none Diff:
OldNewDifferences
66 func b () = "%s__managerPublicKey"
77
88
9-func c () = "%s__pendingManagerPublicKey"
9+func c () = "%s__managerVaultAddress"
1010
1111
12-func d (e,f) = makeString(["%s%s%s", "withdrawDelay", e, f], a)
12+func d () = addressFromStringValue(getStringValue(c()))
1313
1414
15-func g (e,f) = makeString(["%s%s%s", "depositFeePermille", e, f], a)
15+func e (f,g) = makeString(["%s%s%s", "withdrawDelay", f, g], a)
1616
1717
18-func h (e,f) = makeString(["%s%s%s", "withdrawFeePermille", e, f], a)
18+func h (f,g) = makeString(["%s%s%s", "depositFeePermille", f, g], a)
1919
2020
21-func i (e,f) = makeString(["%s%s%s", "minAmountDeposit", e, f], a)
21+func i (f,g) = makeString(["%s%s%s", "withdrawFeePermille", f, g], a)
2222
2323
24-func j (e,f) = makeString(["%s%s%s", "assetsPairStatus", e, f], a)
24+func j (f,g) = makeString(["%s%s%s", "minAmountDeposit", f, g], a)
2525
2626
27-func k (e,f) = makeString(["%s%s%s", "minAmountWithdraw", e, f], a)
27+func k (f,g) = makeString(["%s%s%s", "assetsPairStatus", f, g], a)
2828
2929
30-func l (e,f,m) = makeString(["%s%s%s%s", "balance", e, f, m], a)
30+func l (f,g) = makeString(["%s%s%s", "minAmountWithdraw", f, g], a)
3131
3232
33-func n (e,f) = makeString(["%s%s%s%s", "totalFeeCollected", "deposit", e, f], a)
33+func m (f,g,n) = makeString(["%s%s%s%s", "balance", f, g, n], a)
3434
3535
36-func o (m,e,f,p) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "inProgress", m, e, f, toString(p)], a)
36+func o (f,g) = makeString(["%s%s%s%s", "totalFeeCollected", "deposit", f, g], a)
3737
3838
39-func q (m,e,f,p) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "done", m, e, f, toString(p)], a)
39+func p (n,f,g,q) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "inProgress", n, f, g, toString(q)], a)
4040
4141
42-func r () = {
43- let s = getString(b())
44- if ($isInstanceOf(s, "String"))
42+func r (n,f,g,q) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "done", n, f, g, toString(q)], a)
43+
44+
45+func s () = {
46+ let t = d()
47+ let u = getString(t, b())
48+ if ($isInstanceOf(u, "String"))
4549 then {
46- let t = s
47- fromBase58String(t)
50+ let v = u
51+ fromBase58String(v)
4852 }
49- else if ($isInstanceOf(s, "Unit"))
53+ else if ($isInstanceOf(u, "Unit"))
5054 then unit
5155 else throw("Match error")
5256 }
5357
5458
55-func u () = {
56- let s = getString(c())
57- if ($isInstanceOf(s, "String"))
59+func w (x) = {
60+ let y = throw("Permission denied.")
61+ let u = s()
62+ if ($isInstanceOf(u, "ByteVector"))
5863 then {
59- let t = s
60- fromBase58String(t)
64+ let z = u
65+ if ((x.callerPublicKey == z))
66+ then true
67+ else y
6168 }
62- else if ($isInstanceOf(s, "Unit"))
63- then unit
69+ else if ($isInstanceOf(u, "Unit"))
70+ then if ((x.caller == this))
71+ then true
72+ else y
6473 else throw("Match error")
6574 }
6675
6776
68-func v (w) = {
69- let x = throw("Permission denied.")
70- let s = r()
71- if ($isInstanceOf(s, "ByteVector"))
72- then {
73- let y = s
74- if ((w.callerPublicKey == y))
75- then true
76- else x
77- }
78- else if ($isInstanceOf(s, "Unit"))
79- then if ((w.caller == this))
80- then true
81- else x
82- else throw("Match error")
83- }
77+func A (B) = makeString(["otc_multiasset.ride:", B], " ")
8478
8579
86-func z (A) = makeString(["otc_multiasset.ride:", A], " ")
80+func C (B) = throw(A(B))
8781
8882
89-func B (A) = throw(z(A))
90-
91-
92-@Callable(w)
93-func registerAsset (e,f,C,D,E,F,G,H) = {
94- let I = v(w)
95- if ((I == I))
83+@Callable(x)
84+func registerAsset (f,g,D,E,F,G,H,I) = {
85+ let J = w(x)
86+ if ((J == J))
9687 then {
97- let J = d(e, f)
98- let K = g(e, f)
99- let L = h(e, f)
100- let M = i(e, f)
101- let N = k(e, f)
102- let O = j(e, f)
103-[IntegerEntry(J, C), IntegerEntry(K, D), IntegerEntry(L, E), IntegerEntry(M, F), IntegerEntry(N, G), IntegerEntry(O, H)]
88+ let K = e(f, g)
89+ let L = h(f, g)
90+ let M = i(f, g)
91+ let N = j(f, g)
92+ let O = l(f, g)
93+ let P = k(f, g)
94+[IntegerEntry(K, D), IntegerEntry(L, E), IntegerEntry(M, F), IntegerEntry(N, G), IntegerEntry(O, H), IntegerEntry(P, I)]
10495 }
10596 else throw("Strict value is not equal to itself.")
10697 }
10798
10899
109100
110-@Callable(w)
111-func swapAssetsAToB (f) = {
112- let P = value(w.payments[0])
113- let e = toBase58String(value(P.assetId))
114- let Q = fromBase58String(value(f))
115- let m = toString(w.caller)
116- let F = valueOrErrorMessage(getInteger(i(e, f)), z("This asset pair does not exist."))
117- let R = P.amount
118- let D = valueOrErrorMessage(getInteger(g(e, f)), z("The deposit fee for this pair of assets is not set."))
119- let S = ((R / 1000) * D)
120- let T = valueOrElse(getInteger(l(e, f, m)), 0)
121- let U = valueOrElse(getInteger(n(e, f)), 0)
122- let H = valueOrErrorMessage(getInteger(j(e, f)), z("The asset pair status for this pair of assets is not set."))
123- let V = if ((H == 0))
101+@Callable(x)
102+func swapAssetsAToB (g) = {
103+ let Q = value(x.payments[0])
104+ let f = toBase58String(value(Q.assetId))
105+ let R = fromBase58String(value(g))
106+ let n = toString(x.caller)
107+ let G = valueOrErrorMessage(getInteger(j(f, g)), A("This asset pair does not exist."))
108+ let S = Q.amount
109+ let E = valueOrErrorMessage(getInteger(h(f, g)), A("The deposit fee for this pair of assets is not set."))
110+ let T = ((S / 1000) * E)
111+ let U = valueOrElse(getInteger(m(f, g, n)), 0)
112+ let V = valueOrElse(getInteger(o(f, g)), 0)
113+ let I = valueOrErrorMessage(getInteger(k(f, g)), A("The asset pair status for this pair of assets is not set."))
114+ let W = if ((I == 0))
124115 then true
125- else B("The couple's deposit is blocked.")
126- if ((V == V))
116+ else C("The couple's deposit is blocked.")
117+ if ((W == W))
127118 then {
128- let W = if ((R >= F))
119+ let X = if ((S >= G))
129120 then true
130- else B("The deposit amount is less than the minimum.")
131- if ((W == W))
121+ else C("The deposit amount is less than the minimum.")
122+ if ((X == X))
132123 then {
133- let X = ((T + R) - S)
134- let Y = if ((X > 0))
124+ let Y = ((U + S) - T)
125+ let Z = if ((Y > 0))
135126 then true
136- else B("The final balance is less than or equal to 0.")
137- if ((Y == Y))
138- then [IntegerEntry(l(e, f, m), X), IntegerEntry(n(e, f), (U + S)), ScriptTransfer(w.caller, (R - S), Q)]
127+ else C("The final balance is less than or equal to 0.")
128+ if ((Z == Z))
129+ then [IntegerEntry(m(f, g, n), Y), IntegerEntry(o(f, g), (V + T)), ScriptTransfer(x.caller, (S - T), R)]
139130 else throw("Strict value is not equal to itself.")
140131 }
141132 else throw("Strict value is not equal to itself.")
145136
146137
147138
148-@Callable(w)
149-func initializationSwapAssetsBToA (e) = {
150- let P = value(w.payments[0])
151- let Z = P.amount
152- let f = toBase58String(value(P.assetId))
153- let m = toString(w.caller)
154- let G = valueOrErrorMessage(getInteger(k(e, f)), z("The minimum withdrawal amount for this pair of assets is not set."))
155- let aa = (height + valueOrErrorMessage(getInteger(d(e, f)), z("Withdrawal delay is not set for the specified pair.")))
156- let T = valueOrErrorMessage(getInteger(l(e, f, m)), z("This user balance does not exist."))
157- let U = valueOrElse(getInteger(n(e, f)), 0)
158- let L = h(e, f)
159- let E = valueOrErrorMessage(getInteger(L), z("The withdrawal fee for this pair of assets is not set."))
160- let S = ((Z / 1000) * E)
161- let X = (T - Z)
162- let Y = if ((X >= 0))
139+@Callable(x)
140+func initializationSwapAssetsBToA (f) = {
141+ let Q = value(x.payments[0])
142+ let aa = Q.amount
143+ let g = toBase58String(value(Q.assetId))
144+ let n = toString(x.caller)
145+ let H = valueOrErrorMessage(getInteger(l(f, g)), A("The minimum withdrawal amount for this pair of assets is not set."))
146+ let ab = (height + valueOrErrorMessage(getInteger(e(f, g)), A("Withdrawal delay is not set for the specified pair.")))
147+ let U = valueOrErrorMessage(getInteger(m(f, g, n)), A("This user balance does not exist."))
148+ let V = valueOrElse(getInteger(o(f, g)), 0)
149+ let M = i(f, g)
150+ let F = valueOrErrorMessage(getInteger(M), A("The withdrawal fee for this pair of assets is not set."))
151+ let T = ((aa / 1000) * F)
152+ let Y = (U - aa)
153+ let Z = if ((Y >= 0))
163154 then true
164- else B("Swap amount fail, amount is to small.")
165- if ((Y == Y))
155+ else C("Swap amount fail, amount is to small.")
156+ if ((Z == Z))
166157 then {
167- let W = if ((Z >= G))
158+ let X = if ((aa >= H))
168159 then true
169- else B("The withdraw amount is less than the minimum.")
170- if ((W == W))
160+ else C("The withdraw amount is less than the minimum.")
161+ if ((X == X))
171162 then {
172- let ab = if ((getInteger(o(m, e, f, aa)) == unit))
163+ let ac = if ((getInteger(p(n, f, g, ab)) == unit))
173164 then true
174- else B("At this height, there is already an exchange of this pair.")
175- if ((ab == ab))
176- then [IntegerEntry(l(e, f, m), X), IntegerEntry(o(m, e, f, aa), (Z - S)), IntegerEntry(n(e, f), (U + S))]
165+ else C("At this height, there is already an exchange of this pair.")
166+ if ((ac == ac))
167+ then [IntegerEntry(m(f, g, n), Y), IntegerEntry(p(n, f, g, ab), (aa - T)), IntegerEntry(o(f, g), (V + T))]
177168 else throw("Strict value is not equal to itself.")
178169 }
179170 else throw("Strict value is not equal to itself.")
183174
184175
185176
186-@Callable(w)
187-func withdrawAsset (e,f,p) = {
188- let m = toString(w.caller)
189- let Z = valueOrErrorMessage(getInteger(o(m, e, f, p)), z("At this height, withdraw was not initialized with this pair of assets."))
190- let Q = fromBase58String(value(e))
191- let ac = if ((height >= p))
177+@Callable(x)
178+func withdrawAsset (f,g,q) = {
179+ let n = toString(x.caller)
180+ let aa = valueOrErrorMessage(getInteger(p(n, f, g, q)), A("At this height, withdraw was not initialized with this pair of assets."))
181+ let R = fromBase58String(value(f))
182+ let ad = if ((height >= q))
192183 then true
193- else B((("Withdrawal is possible after " + toString(p)) + " height or you have already withdrawn."))
194- if ((ac == ac))
195- then [DeleteEntry(o(m, e, f, p)), IntegerEntry(q(m, e, f, p), Z), ScriptTransfer(w.caller, Z, Q)]
184+ else C((("Withdrawal is possible after " + toString(q)) + " height or you have already withdrawn."))
185+ if ((ad == ad))
186+ then [DeleteEntry(p(n, f, g, q)), IntegerEntry(r(n, f, g, q), aa), ScriptTransfer(x.caller, aa, R)]
196187 else throw("Strict value is not equal to itself.")
197188 }
198189
199190
200191
201-@Callable(w)
202-func withdrawFee (e,f) = {
203- let I = v(w)
204- if ((I == I))
192+@Callable(x)
193+func withdrawFee (f,g) = {
194+ let J = w(x)
195+ if ((J == J))
205196 then {
206- let ad = valueOrElse(getInteger(n(e, f)), 0)
207- let ae = fromBase58String(value(e))
208-[IntegerEntry(n(e, f), 0), ScriptTransfer(w.caller, ad, ae)]
197+ let ae = valueOrElse(getInteger(o(f, g)), 0)
198+ let af = fromBase58String(value(f))
199+[IntegerEntry(o(f, g), 0), ScriptTransfer(x.caller, ae, af)]
209200 }
210201 else throw("Strict value is not equal to itself.")
211202 }
212203
213204
214-
215-@Callable(w)
216-func setManager (af) = {
217- let I = v(w)
218- if ((I == I))
219- then {
220- let ag = fromBase58String(af)
221- if ((ag == ag))
222- then [StringEntry(c(), af)]
223- else throw("Strict value is not equal to itself.")
224- }
225- else throw("Strict value is not equal to itself.")
226- }
227-
228-
229-
230-@Callable(w)
231-func confirmManager () = {
232- let ah = u()
233- let ai = if (isDefined(ah))
234- then true
235- else B("No pending manager.")
236- if ((ai == ai))
237- then {
238- let aj = if ((w.callerPublicKey == value(ah)))
239- then true
240- else B("You are not pending manager.")
241- if ((aj == aj))
242- then [StringEntry(b(), toBase58String(value(ah))), DeleteEntry(c())]
243- else throw("Strict value is not equal to itself.")
244- }
245- else throw("Strict value is not equal to itself.")
246- }
247-
248-
249-@Verifier(ak)
250-func al () = {
251- let am = {
252- let s = r()
253- if ($isInstanceOf(s, "ByteVector"))
205+@Verifier(ag)
206+func ah () = {
207+ let ai = {
208+ let u = s()
209+ if ($isInstanceOf(u, "ByteVector"))
254210 then {
255- let y = s
256- y
211+ let z = u
212+ z
257213 }
258- else if ($isInstanceOf(s, "Unit"))
259- then ak.senderPublicKey
214+ else if ($isInstanceOf(u, "Unit"))
215+ then ag.senderPublicKey
260216 else throw("Match error")
261217 }
262- sigVerify(ak.bodyBytes, ak.proofs[0], am)
218+ sigVerify(ag.bodyBytes, ag.proofs[0], ai)
263219 }
264220
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 func b () = "%s__managerPublicKey"
77
88
9-func c () = "%s__pendingManagerPublicKey"
9+func c () = "%s__managerVaultAddress"
1010
1111
12-func d (e,f) = makeString(["%s%s%s", "withdrawDelay", e, f], a)
12+func d () = addressFromStringValue(getStringValue(c()))
1313
1414
15-func g (e,f) = makeString(["%s%s%s", "depositFeePermille", e, f], a)
15+func e (f,g) = makeString(["%s%s%s", "withdrawDelay", f, g], a)
1616
1717
18-func h (e,f) = makeString(["%s%s%s", "withdrawFeePermille", e, f], a)
18+func h (f,g) = makeString(["%s%s%s", "depositFeePermille", f, g], a)
1919
2020
21-func i (e,f) = makeString(["%s%s%s", "minAmountDeposit", e, f], a)
21+func i (f,g) = makeString(["%s%s%s", "withdrawFeePermille", f, g], a)
2222
2323
24-func j (e,f) = makeString(["%s%s%s", "assetsPairStatus", e, f], a)
24+func j (f,g) = makeString(["%s%s%s", "minAmountDeposit", f, g], a)
2525
2626
27-func k (e,f) = makeString(["%s%s%s", "minAmountWithdraw", e, f], a)
27+func k (f,g) = makeString(["%s%s%s", "assetsPairStatus", f, g], a)
2828
2929
30-func l (e,f,m) = makeString(["%s%s%s%s", "balance", e, f, m], a)
30+func l (f,g) = makeString(["%s%s%s", "minAmountWithdraw", f, g], a)
3131
3232
33-func n (e,f) = makeString(["%s%s%s%s", "totalFeeCollected", "deposit", e, f], a)
33+func m (f,g,n) = makeString(["%s%s%s%s", "balance", f, g, n], a)
3434
3535
36-func o (m,e,f,p) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "inProgress", m, e, f, toString(p)], a)
36+func o (f,g) = makeString(["%s%s%s%s", "totalFeeCollected", "deposit", f, g], a)
3737
3838
39-func q (m,e,f,p) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "done", m, e, f, toString(p)], a)
39+func p (n,f,g,q) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "inProgress", n, f, g, toString(q)], a)
4040
4141
42-func r () = {
43- let s = getString(b())
44- if ($isInstanceOf(s, "String"))
42+func r (n,f,g,q) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "done", n, f, g, toString(q)], a)
43+
44+
45+func s () = {
46+ let t = d()
47+ let u = getString(t, b())
48+ if ($isInstanceOf(u, "String"))
4549 then {
46- let t = s
47- fromBase58String(t)
50+ let v = u
51+ fromBase58String(v)
4852 }
49- else if ($isInstanceOf(s, "Unit"))
53+ else if ($isInstanceOf(u, "Unit"))
5054 then unit
5155 else throw("Match error")
5256 }
5357
5458
55-func u () = {
56- let s = getString(c())
57- if ($isInstanceOf(s, "String"))
59+func w (x) = {
60+ let y = throw("Permission denied.")
61+ let u = s()
62+ if ($isInstanceOf(u, "ByteVector"))
5863 then {
59- let t = s
60- fromBase58String(t)
64+ let z = u
65+ if ((x.callerPublicKey == z))
66+ then true
67+ else y
6168 }
62- else if ($isInstanceOf(s, "Unit"))
63- then unit
69+ else if ($isInstanceOf(u, "Unit"))
70+ then if ((x.caller == this))
71+ then true
72+ else y
6473 else throw("Match error")
6574 }
6675
6776
68-func v (w) = {
69- let x = throw("Permission denied.")
70- let s = r()
71- if ($isInstanceOf(s, "ByteVector"))
72- then {
73- let y = s
74- if ((w.callerPublicKey == y))
75- then true
76- else x
77- }
78- else if ($isInstanceOf(s, "Unit"))
79- then if ((w.caller == this))
80- then true
81- else x
82- else throw("Match error")
83- }
77+func A (B) = makeString(["otc_multiasset.ride:", B], " ")
8478
8579
86-func z (A) = makeString(["otc_multiasset.ride:", A], " ")
80+func C (B) = throw(A(B))
8781
8882
89-func B (A) = throw(z(A))
90-
91-
92-@Callable(w)
93-func registerAsset (e,f,C,D,E,F,G,H) = {
94- let I = v(w)
95- if ((I == I))
83+@Callable(x)
84+func registerAsset (f,g,D,E,F,G,H,I) = {
85+ let J = w(x)
86+ if ((J == J))
9687 then {
97- let J = d(e, f)
98- let K = g(e, f)
99- let L = h(e, f)
100- let M = i(e, f)
101- let N = k(e, f)
102- let O = j(e, f)
103-[IntegerEntry(J, C), IntegerEntry(K, D), IntegerEntry(L, E), IntegerEntry(M, F), IntegerEntry(N, G), IntegerEntry(O, H)]
88+ let K = e(f, g)
89+ let L = h(f, g)
90+ let M = i(f, g)
91+ let N = j(f, g)
92+ let O = l(f, g)
93+ let P = k(f, g)
94+[IntegerEntry(K, D), IntegerEntry(L, E), IntegerEntry(M, F), IntegerEntry(N, G), IntegerEntry(O, H), IntegerEntry(P, I)]
10495 }
10596 else throw("Strict value is not equal to itself.")
10697 }
10798
10899
109100
110-@Callable(w)
111-func swapAssetsAToB (f) = {
112- let P = value(w.payments[0])
113- let e = toBase58String(value(P.assetId))
114- let Q = fromBase58String(value(f))
115- let m = toString(w.caller)
116- let F = valueOrErrorMessage(getInteger(i(e, f)), z("This asset pair does not exist."))
117- let R = P.amount
118- let D = valueOrErrorMessage(getInteger(g(e, f)), z("The deposit fee for this pair of assets is not set."))
119- let S = ((R / 1000) * D)
120- let T = valueOrElse(getInteger(l(e, f, m)), 0)
121- let U = valueOrElse(getInteger(n(e, f)), 0)
122- let H = valueOrErrorMessage(getInteger(j(e, f)), z("The asset pair status for this pair of assets is not set."))
123- let V = if ((H == 0))
101+@Callable(x)
102+func swapAssetsAToB (g) = {
103+ let Q = value(x.payments[0])
104+ let f = toBase58String(value(Q.assetId))
105+ let R = fromBase58String(value(g))
106+ let n = toString(x.caller)
107+ let G = valueOrErrorMessage(getInteger(j(f, g)), A("This asset pair does not exist."))
108+ let S = Q.amount
109+ let E = valueOrErrorMessage(getInteger(h(f, g)), A("The deposit fee for this pair of assets is not set."))
110+ let T = ((S / 1000) * E)
111+ let U = valueOrElse(getInteger(m(f, g, n)), 0)
112+ let V = valueOrElse(getInteger(o(f, g)), 0)
113+ let I = valueOrErrorMessage(getInteger(k(f, g)), A("The asset pair status for this pair of assets is not set."))
114+ let W = if ((I == 0))
124115 then true
125- else B("The couple's deposit is blocked.")
126- if ((V == V))
116+ else C("The couple's deposit is blocked.")
117+ if ((W == W))
127118 then {
128- let W = if ((R >= F))
119+ let X = if ((S >= G))
129120 then true
130- else B("The deposit amount is less than the minimum.")
131- if ((W == W))
121+ else C("The deposit amount is less than the minimum.")
122+ if ((X == X))
132123 then {
133- let X = ((T + R) - S)
134- let Y = if ((X > 0))
124+ let Y = ((U + S) - T)
125+ let Z = if ((Y > 0))
135126 then true
136- else B("The final balance is less than or equal to 0.")
137- if ((Y == Y))
138- then [IntegerEntry(l(e, f, m), X), IntegerEntry(n(e, f), (U + S)), ScriptTransfer(w.caller, (R - S), Q)]
127+ else C("The final balance is less than or equal to 0.")
128+ if ((Z == Z))
129+ then [IntegerEntry(m(f, g, n), Y), IntegerEntry(o(f, g), (V + T)), ScriptTransfer(x.caller, (S - T), R)]
139130 else throw("Strict value is not equal to itself.")
140131 }
141132 else throw("Strict value is not equal to itself.")
142133 }
143134 else throw("Strict value is not equal to itself.")
144135 }
145136
146137
147138
148-@Callable(w)
149-func initializationSwapAssetsBToA (e) = {
150- let P = value(w.payments[0])
151- let Z = P.amount
152- let f = toBase58String(value(P.assetId))
153- let m = toString(w.caller)
154- let G = valueOrErrorMessage(getInteger(k(e, f)), z("The minimum withdrawal amount for this pair of assets is not set."))
155- let aa = (height + valueOrErrorMessage(getInteger(d(e, f)), z("Withdrawal delay is not set for the specified pair.")))
156- let T = valueOrErrorMessage(getInteger(l(e, f, m)), z("This user balance does not exist."))
157- let U = valueOrElse(getInteger(n(e, f)), 0)
158- let L = h(e, f)
159- let E = valueOrErrorMessage(getInteger(L), z("The withdrawal fee for this pair of assets is not set."))
160- let S = ((Z / 1000) * E)
161- let X = (T - Z)
162- let Y = if ((X >= 0))
139+@Callable(x)
140+func initializationSwapAssetsBToA (f) = {
141+ let Q = value(x.payments[0])
142+ let aa = Q.amount
143+ let g = toBase58String(value(Q.assetId))
144+ let n = toString(x.caller)
145+ let H = valueOrErrorMessage(getInteger(l(f, g)), A("The minimum withdrawal amount for this pair of assets is not set."))
146+ let ab = (height + valueOrErrorMessage(getInteger(e(f, g)), A("Withdrawal delay is not set for the specified pair.")))
147+ let U = valueOrErrorMessage(getInteger(m(f, g, n)), A("This user balance does not exist."))
148+ let V = valueOrElse(getInteger(o(f, g)), 0)
149+ let M = i(f, g)
150+ let F = valueOrErrorMessage(getInteger(M), A("The withdrawal fee for this pair of assets is not set."))
151+ let T = ((aa / 1000) * F)
152+ let Y = (U - aa)
153+ let Z = if ((Y >= 0))
163154 then true
164- else B("Swap amount fail, amount is to small.")
165- if ((Y == Y))
155+ else C("Swap amount fail, amount is to small.")
156+ if ((Z == Z))
166157 then {
167- let W = if ((Z >= G))
158+ let X = if ((aa >= H))
168159 then true
169- else B("The withdraw amount is less than the minimum.")
170- if ((W == W))
160+ else C("The withdraw amount is less than the minimum.")
161+ if ((X == X))
171162 then {
172- let ab = if ((getInteger(o(m, e, f, aa)) == unit))
163+ let ac = if ((getInteger(p(n, f, g, ab)) == unit))
173164 then true
174- else B("At this height, there is already an exchange of this pair.")
175- if ((ab == ab))
176- then [IntegerEntry(l(e, f, m), X), IntegerEntry(o(m, e, f, aa), (Z - S)), IntegerEntry(n(e, f), (U + S))]
165+ else C("At this height, there is already an exchange of this pair.")
166+ if ((ac == ac))
167+ then [IntegerEntry(m(f, g, n), Y), IntegerEntry(p(n, f, g, ab), (aa - T)), IntegerEntry(o(f, g), (V + T))]
177168 else throw("Strict value is not equal to itself.")
178169 }
179170 else throw("Strict value is not equal to itself.")
180171 }
181172 else throw("Strict value is not equal to itself.")
182173 }
183174
184175
185176
186-@Callable(w)
187-func withdrawAsset (e,f,p) = {
188- let m = toString(w.caller)
189- let Z = valueOrErrorMessage(getInteger(o(m, e, f, p)), z("At this height, withdraw was not initialized with this pair of assets."))
190- let Q = fromBase58String(value(e))
191- let ac = if ((height >= p))
177+@Callable(x)
178+func withdrawAsset (f,g,q) = {
179+ let n = toString(x.caller)
180+ let aa = valueOrErrorMessage(getInteger(p(n, f, g, q)), A("At this height, withdraw was not initialized with this pair of assets."))
181+ let R = fromBase58String(value(f))
182+ let ad = if ((height >= q))
192183 then true
193- else B((("Withdrawal is possible after " + toString(p)) + " height or you have already withdrawn."))
194- if ((ac == ac))
195- then [DeleteEntry(o(m, e, f, p)), IntegerEntry(q(m, e, f, p), Z), ScriptTransfer(w.caller, Z, Q)]
184+ else C((("Withdrawal is possible after " + toString(q)) + " height or you have already withdrawn."))
185+ if ((ad == ad))
186+ then [DeleteEntry(p(n, f, g, q)), IntegerEntry(r(n, f, g, q), aa), ScriptTransfer(x.caller, aa, R)]
196187 else throw("Strict value is not equal to itself.")
197188 }
198189
199190
200191
201-@Callable(w)
202-func withdrawFee (e,f) = {
203- let I = v(w)
204- if ((I == I))
192+@Callable(x)
193+func withdrawFee (f,g) = {
194+ let J = w(x)
195+ if ((J == J))
205196 then {
206- let ad = valueOrElse(getInteger(n(e, f)), 0)
207- let ae = fromBase58String(value(e))
208-[IntegerEntry(n(e, f), 0), ScriptTransfer(w.caller, ad, ae)]
197+ let ae = valueOrElse(getInteger(o(f, g)), 0)
198+ let af = fromBase58String(value(f))
199+[IntegerEntry(o(f, g), 0), ScriptTransfer(x.caller, ae, af)]
209200 }
210201 else throw("Strict value is not equal to itself.")
211202 }
212203
213204
214-
215-@Callable(w)
216-func setManager (af) = {
217- let I = v(w)
218- if ((I == I))
219- then {
220- let ag = fromBase58String(af)
221- if ((ag == ag))
222- then [StringEntry(c(), af)]
223- else throw("Strict value is not equal to itself.")
224- }
225- else throw("Strict value is not equal to itself.")
226- }
227-
228-
229-
230-@Callable(w)
231-func confirmManager () = {
232- let ah = u()
233- let ai = if (isDefined(ah))
234- then true
235- else B("No pending manager.")
236- if ((ai == ai))
237- then {
238- let aj = if ((w.callerPublicKey == value(ah)))
239- then true
240- else B("You are not pending manager.")
241- if ((aj == aj))
242- then [StringEntry(b(), toBase58String(value(ah))), DeleteEntry(c())]
243- else throw("Strict value is not equal to itself.")
244- }
245- else throw("Strict value is not equal to itself.")
246- }
247-
248-
249-@Verifier(ak)
250-func al () = {
251- let am = {
252- let s = r()
253- if ($isInstanceOf(s, "ByteVector"))
205+@Verifier(ag)
206+func ah () = {
207+ let ai = {
208+ let u = s()
209+ if ($isInstanceOf(u, "ByteVector"))
254210 then {
255- let y = s
256- y
211+ let z = u
212+ z
257213 }
258- else if ($isInstanceOf(s, "Unit"))
259- then ak.senderPublicKey
214+ else if ($isInstanceOf(u, "Unit"))
215+ then ag.senderPublicKey
260216 else throw("Match error")
261217 }
262- sigVerify(ak.bodyBytes, ak.proofs[0], am)
218+ sigVerify(ag.bodyBytes, ag.proofs[0], ai)
263219 }
264220

github/deemru/w8io/169f3d6 
79.58 ms