tx · J78Pt3YfBwHAVf6ptMvBLvzAyznFXL4h1rHqAdNS74Dh

3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu:  -0.01700000 Waves

2022.06.08 19:55 [2087661] smart account 3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu > SELF 0.00000000 Waves

{ "type": 13, "id": "J78Pt3YfBwHAVf6ptMvBLvzAyznFXL4h1rHqAdNS74Dh", "fee": 1700000, "feeAssetId": null, "timestamp": 1654707397541, "version": 1, "sender": "3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu", "senderPublicKey": "668WwQVaWxezbvLEK3FccCSTbjst4zYAJDPrfLFRj9b9", "proofs": [ "5qqRnmhSA2vocNqRBHMo1w8cb5tZe32UvQzt6mhjGcLGFxTwGjdSQ9uATYsbTHjvZPYdsX1jmWv47cXH4rFFWof7" ], "script": "base64:AAIFAAAAAAAAACwIAhIDCgEIEgASABIFCgMICAgSCQoHCAgICAEIARIAEgQKAggBEgMKAQgSAAAAABYAAAAAA1NFUAIAAAACX18AAAAABUVNUFRZAgAAAAAAAAAACGNvbnRyYWN0AgAAAA9scF9zdGFraW5nX3YyOiABAAAAE2tleU1hbmFnZXJQdWJsaWNLZXkAAAAACQAEuQAAAAIJAARMAAAAAgIAAAACJXMJAARMAAAAAgIAAAAQbWFuYWdlclB1YmxpY0tleQUAAAADbmlsBQAAAANTRVABAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAkABLkAAAACCQAETAAAAAICAAAAAiVzCQAETAAAAAICAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQAAAANuaWwFAAAAA1NFUAEAAAAGa2V5VFZMAAAAAQAAAAdhc3NldElkCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAAAN0dmwJAARMAAAAAgUAAAAHYXNzZXRJZAUAAAADbmlsBQAAAANTRVABAAAADWtleVRWTEhpc3RvcnkAAAACAAAAB2Fzc2V0SWQAAAAGaGVpZ2h0CQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVkCQAETAAAAAICAAAACnR2bEhpc3RvcnkJAARMAAAAAgUAAAAHYXNzZXRJZAkABEwAAAACCQABpAAAAAEFAAAABmhlaWdodAUAAAADbmlsBQAAAANTRVABAAAAFWtleVBlbmRpbmdXaXRoZHJhd2FscwAAAAEAAAAHYXNzZXRJZAkABLkAAAACCQAETAAAAAICAAAABCVzJXMJAARMAAAAAgIAAAAScGVuZGluZ1dpdGhkcmF3YWxzCQAETAAAAAIFAAAAB2Fzc2V0SWQFAAAAA25pbAUAAAADU0VQAQAAABBrZXlEZWxheUluQmxvY2tzAAAAAQAAAAdhc3NldElkCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAAA1kZWxheUluQmxvY2tzCQAETAAAAAIFAAAAB2Fzc2V0SWQFAAAAA25pbAUAAAADU0VQAQAAAAprZXlDcmVhdGVkAAAAAQAAAAdhc3NldElkCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAAAdjcmVhdGVkCQAETAAAAAIFAAAAB2Fzc2V0SWQFAAAAA25pbAUAAAADU0VQAQAAABBrZXlBc3NldElkVG9MUElkAAAAAQAAAAdhc3NldElkCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAAA1hc3NldElkVG9MUElkCQAETAAAAAIFAAAAB2Fzc2V0SWQFAAAAA25pbAUAAAADU0VQAQAAABBrZXlMUElkVG9Bc3NldElkAAAAAQAAAARscElkCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAAA1scElkVG9Bc3NldElkCQAETAAAAAIFAAAABGxwSWQFAAAAA25pbAUAAAADU0VQAQAAAA9rZXlQcm94eUFkZHJlc3MAAAABAAAAB2Fzc2V0SWQJAAS5AAAAAgkABEwAAAACAgAAAAQlcyVzCQAETAAAAAICAAAADHByb3h5QWRkcmVzcwkABEwAAAACBQAAAAdhc3NldElkBQAAAANuaWwFAAAAA1NFUAEAAAAba2V5TWFwcGluZ3NVc2VyVG9XaXRoZHJhd2FsAAAAAwAAAAdhc3NldElkAAAAC3VzZXJBZGRyZXNzAAAABHR4SWQJAAS5AAAAAgkABEwAAAACAgAAAAglcyVzJXMlcwkABEwAAAACAgAAABR1c2VyV2l0aGRyYXdhbEFtb3VudAkABEwAAAACBQAAAAdhc3NldElkCQAETAAAAAIFAAAAC3VzZXJBZGRyZXNzCQAETAAAAAIFAAAABHR4SWQFAAAAA25pbAUAAAADU0VQAQAAABprZXlPdGhlckNoYWluQXNzZXREZWNpbWFscwAAAAEAAAAHYXNzZXRJZAkABLkAAAACCQAETAAAAAICAAAABCVzJXMJAARMAAAAAgIAAAAXb3RoZXJDaGFpbkFzc2V0RGVjaW1hbHMJAARMAAAAAgUAAAAHYXNzZXRJZAUAAAADbmlsBQAAAANTRVABAAAAFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAAAACQAEuQAAAAIJAARMAAAAAgIAAAACJXMJAARMAAAAAgIAAAATYXNzZXRzU3RvcmVDb250cmFjdAUAAAADbmlsBQAAAANTRVABAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAckbWF0Y2gwCQAEIgAAAAEJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQACWQAAAAEFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQFAAAABHVuaXQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAHJG1hdGNoMAkABCIAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAAJZAAAAAQUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAUAAAAEdW5pdAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAAIdGhyb3dFcnIAAAABAAAAA21zZwkAAAIAAAABCQABLAAAAAIFAAAACGNvbnRyYWN0BQAAAANtc2cBAAAAC211c3RNYW5hZ2VyAAAAAQAAAAFpBAAAAAJwZAkBAAAACHRocm93RXJyAAAAAQIAAAARcGVybWlzc2lvbiBkZW5pZWQEAAAAByRtYXRjaDAJAQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACcGsFAAAAByRtYXRjaDADCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAACcGsGBQAAAAJwZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBgUAAAACcGQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAE2Fzc2V0c1N0b3JlQ29udHJhY3QAAAAACQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAFdmFsdWUAAAABCQAEIgAAAAEJAQAAABZrZXlBc3NldHNTdG9yZUNvbnRyYWN0AAAAAAEAAAAQbXVzdFByb3h5QWRkcmVzcwAAAAIAAAABaQAAAAdhc3NldElkBAAAAAdpc1Byb3h5CQAAAAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEIgAAAAEJAQAAAA9rZXlQcm94eUFkZHJlc3MAAAABBQAAAAdhc3NldElkBQAAAAVFTVBUWQMFAAAAB2lzUHJveHkGBAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyBgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAAJAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAAAQAAABNhc3NldHNTdG9yZUNvbnRyYWN0BAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABZrZXlBc3NldHNTdG9yZUNvbnRyYWN0AAAAAAUAAAATYXNzZXRzU3RvcmVDb250cmFjdAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAANwdXQAAAAABAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAABWFzc2V0CQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAAB2Fzc2V0SWQJAAJYAAAAAQUAAAAFYXNzZXQEAAAABmNoZWNrcwkABEwAAAACAwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABBgkBAAAACHRocm93RXJyAAAAAQIAAAAhb25seSBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkCQAETAAAAAIDCQEAAAALdmFsdWVPckVsc2UAAAACCQAEIAAAAAEJAQAAAAprZXlDcmVhdGVkAAAAAQUAAAAHYXNzZXRJZAcGCQEAAAAIdGhyb3dFcnIAAAABAgAAADlhdHRhY2hlZCBwYXltZW50IGFzc2V0IG11c3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgY29udHJhY3QJAARMAAAAAgMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAAAAGCQEAAAAIdGhyb3dFcnIAAAABAgAAABhwb3NpdGl2ZSBhbW91bnQgcmVxdWlyZWQFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MEAAAAA3R2bAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQEAAAAGa2V5VFZMAAAAAQUAAAAHYXNzZXRJZAAAAAAAAAAAAAQAAAAEbHBJZAkBAAAABXZhbHVlAAAAAQkABCIAAAABCQEAAAAQa2V5QXNzZXRJZFRvTFBJZAAAAAEFAAAAB2Fzc2V0SWQEAAAABmxwSW5mbwkBAAAABXZhbHVlAAAAAQkAA+wAAAABCQACWQAAAAEFAAAAB2Fzc2V0SWQEAAAADHNoYXJlc0Ftb3VudAMJAABmAAAAAgUAAAADdHZsAAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAggFAAAAA3BtdAAAAAZhbW91bnQIBQAAAAZscEluZm8AAAAIcXVhbnRpdHkFAAAAA3R2bAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADCAUAAAAGbHBJbmZvAAAAAmlkBQAAAAxzaGFyZXNBbW91bnQGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAMc2hhcmVzQW1vdW50CAUAAAAGbHBJbmZvAAAAAmlkBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAEHN1Ym1pdEdldFJlcXVlc3QAAAAABAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAAmxwCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAABGxwSWQJAAJYAAAAAQUAAAACbHAEAAAAC3VzZXJBZGRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAALYmFzZUFzc2V0SWQJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAAEGtleUxQSWRUb0Fzc2V0SWQAAAABBQAAAARscElkBAAAAAZzaGFyZXMIBQAAAANwbXQAAAAGYW1vdW50BAAAAAZjaGVja3MJAARMAAAAAgMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQYJAQAAAAh0aHJvd0VycgAAAAECAAAAIW9ubHkgb25lIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAkABEwAAAACAwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABCAAAAABCQEAAAAKa2V5Q3JlYXRlZAAAAAEFAAAAC2Jhc2VBc3NldElkBwYJAQAAAAh0aHJvd0VycgAAAAECAAAAOWF0dGFjaGVkIHBheW1lbnQgYXNzZXQgbXVzdCBiZSByZWdpc3RlcmVkIGluIHRoZSBjb250cmFjdAkABEwAAAACAwkAAGYAAAACBQAAAAZzaGFyZXMAAAAAAAAAAAAGCQEAAAAIdGhyb3dFcnIAAAABAgAAACZwb3NpdGl2ZSBhbW91bnQgdG8gd2l0aGRyYXdhbCByZXF1aXJlZAUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwQAAAAScGVuZGluZ1dpdGhkcmF3YWxzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABVrZXlQZW5kaW5nV2l0aGRyYXdhbHMAAAABBQAAAAtiYXNlQXNzZXRJZAAAAAAAAAAAAAQAAAADdHZsCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAAAZrZXlUVkwAAAABBQAAAAtiYXNlQXNzZXRJZAAAAAAAAAAAAAQAAAAGbHBJbmZvCQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAAAmxwBAAAAAhkZWNpbWFscwgFAAAABmxwSW5mbwAAAAhkZWNpbWFscwQAAAAQd2l0aGRyYXdhbEFtb3VudAkAAGkAAAACCQAAaAAAAAIFAAAABnNoYXJlcwUAAAADdHZsCAUAAAAGbHBJbmZvAAAACHF1YW50aXR5CQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAACbHAFAAAABnNoYXJlcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFWtleVBlbmRpbmdXaXRoZHJhd2FscwAAAAEFAAAAC2Jhc2VBc3NldElkCQAAZAAAAAIFAAAAEnBlbmRpbmdXaXRoZHJhd2FscwUAAAAQd2l0aGRyYXdhbEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAG2tleU1hcHBpbmdzVXNlclRvV2l0aGRyYXdhbAAAAAMFAAAAC2Jhc2VBc3NldElkBQAAAAt1c2VyQWRkcmVzcwkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAABB3aXRoZHJhd2FsQW1vdW50BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAEWV4ZWN1dGVHZXRSZXF1ZXN0AAAAAwAAAAdhc3NldElkAAAAC3VzZXJBZGRyZXNzAAAACnN1Ym1pdFR4SWQEAAAAEHdpdGhkcmF3YWxBbW91bnQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkBAAAAG2tleU1hcHBpbmdzVXNlclRvV2l0aGRyYXdhbAAAAAMFAAAAB2Fzc2V0SWQFAAAAC3VzZXJBZGRyZXNzBQAAAApzdWJtaXRUeElkAAAAAAAAAAAABAAAAAZjaGVja3MJAARMAAAAAgMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQgAAAAAQkBAAAACmtleUNyZWF0ZWQAAAABBQAAAAdhc3NldElkBwYJAQAAAAh0aHJvd0VycgAAAAECAAAAKGFzc2V0IG11c3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgY29udHJhY3QJAARMAAAAAgMJAABmAAAAAgUAAAAQd2l0aGRyYXdhbEFtb3VudAAAAAAAAAAAAAYJAQAAAAh0aHJvd0VycgAAAAECAAAAI25vIGNvcnJlc3BvbmRpbmcgd2l0aGRyYXdhbCByZXF1ZXN0BQAAAANuaWwDCQAAAAAAAAIFAAAABmNoZWNrcwUAAAAGY2hlY2tzBAAAABJwZW5kaW5nV2l0aGRyYXdhbHMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkBAAAAFWtleVBlbmRpbmdXaXRoZHJhd2FscwAAAAEFAAAAB2Fzc2V0SWQAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALdXNlckFkZHJlc3MFAAAAEHdpdGhkcmF3YWxBbW91bnQJAAJZAAAAAQUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAba2V5TWFwcGluZ3NVc2VyVG9XaXRoZHJhd2FsAAAAAwUAAAAHYXNzZXRJZAUAAAALdXNlckFkZHJlc3MFAAAACnN1Ym1pdFR4SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABVrZXlQZW5kaW5nV2l0aGRyYXdhbHMAAAABBQAAAAdhc3NldElkCQAAZQAAAAIFAAAAEnBlbmRpbmdXaXRoZHJhd2FscwUAAAAQd2l0aGRyYXdhbEFtb3VudAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA1yZWdpc3RlckFzc2V0AAAABwAAAAdhc3NldElkAAAABmxwTmFtZQAAAA1scERlc2NyaXB0aW9uAAAABmxwTG9nbwAAAA1kZWxheUluQmxvY2tzAAAADHByb3h5QWRkcmVzcwAAABdvdGhlckNoYWluQXNzZXREZWNpbWFscwQAAAAGY2hlY2tzCQAETAAAAAIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkJAARMAAAAAgMJAABnAAAAAgUAAAANZGVsYXlJbkJsb2NrcwAAAAAAAAAAAAYJAQAAAAh0aHJvd0VycgAAAAECAAAAFWludmFsaWQgZGVsYXlJbkJsb2NrcwkABEwAAAACAwkBAAAAAiE9AAAAAgkABCYAAAABBQAAAAxwcm94eUFkZHJlc3MFAAAABHVuaXQGCQEAAAAIdGhyb3dFcnIAAAABAgAAABRpbnZhbGlkIHByb3h5QWRkcmVzcwkABEwAAAACAwkAAAAAAAACCQEAAAAL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SW50ZWdlckVudHJ5AAAAAgkBAAAADWtleVRWTEhpc3RvcnkAAAACBQAAAAdhc3NldElkBQAAAAZoZWlnaHQFAAAABm5ld1RWTAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAApzZXRNYW5hZ2VyAAAAAQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQQAAAALY2hlY2tDYWxsZXIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkDCQAAAAAAAAIFAAAAC2NoZWNrQ2FsbGVyBQAAAAtjaGVja0NhbGxlcgQAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQACWQAAAAEFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAAAAAACBQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAABQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAOY29uZmlybU1hbmFnZXIAAAAABAAAAAJwbQkBAAAAHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAFaGFzUE0DCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAACcG0GCQEAAAAIdGhyb3dFcnIAAAABAgAAABJubyBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAABWhhc1BNBQAAAAVoYXNQTQQAAAAHY2hlY2tQTQMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQEAAAAFdmFsdWUAAAABBQAAAAJwbQYJAQAAAAh0aHJvd0VycgAAAAECAAAAG3lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAHY2hlY2tQTQUAAAAHY2hlY2tQTQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAACcG0JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAA90YXJnZXRQdWJsaWNLZXkEAAAAByRtYXRjaDAJAQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACcGsFAAAAByRtYXRjaDAFAAAAAnBrAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0CAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5CQAAAgAAAAECAAAAC01hdGNoIGVycm9yCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAPdGFyZ2V0UHVibGljS2V5KHPJRw==", "chainId": 84, "height": 2087661, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9LA7qr8ZwkVPtVgErL9XCej1ZuCqeWCi6btZbdQZHBVY Next: 6sPeaTDqUhQpwXGNvnYT6n6xbuAnYxreRmSWLoseSPUw Diff:
OldNewDifferences
4040 func q (g,r,s) = makeString(["%s%s%s%s", "userWithdrawalAmount", g, r, s], a)
4141
4242
43-func t () = makeString(["%s", "assetsStoreContract"], a)
43+func t (g) = makeString(["%s%s", "otherChainAssetDecimals", g], a)
4444
4545
46-func u () = {
47- let v = getString(d())
48- if ($isInstanceOf(v, "String"))
46+func u () = makeString(["%s", "assetsStoreContract"], a)
47+
48+
49+func v () = {
50+ let w = getString(d())
51+ if ($isInstanceOf(w, "String"))
4952 then {
50- let w = v
51- fromBase58String(w)
53+ let x = w
54+ fromBase58String(x)
5255 }
53- else if ($isInstanceOf(v, "Unit"))
56+ else if ($isInstanceOf(w, "Unit"))
5457 then unit
5558 else throw("Match error")
5659 }
5760
5861
59-func x () = {
60- let v = getString(e())
61- if ($isInstanceOf(v, "String"))
62+func y () = {
63+ let w = getString(e())
64+ if ($isInstanceOf(w, "String"))
6265 then {
63- let w = v
64- fromBase58String(w)
66+ let x = w
67+ fromBase58String(x)
6568 }
66- else if ($isInstanceOf(v, "Unit"))
69+ else if ($isInstanceOf(w, "Unit"))
6770 then unit
6871 else throw("Match error")
6972 }
7073
7174
72-func y (z) = throw((c + z))
75+func z (A) = throw((c + A))
7376
7477
75-func A (B) = {
76- let C = y("permission denied")
77- let v = u()
78- if ($isInstanceOf(v, "ByteVector"))
78+func B (C) = {
79+ let D = z("permission denied")
80+ let w = v()
81+ if ($isInstanceOf(w, "ByteVector"))
7982 then {
80- let D = v
81- if ((B.callerPublicKey == D))
83+ let E = w
84+ if ((C.callerPublicKey == E))
8285 then true
83- else C
86+ else D
8487 }
85- else if ($isInstanceOf(v, "Unit"))
86- then if ((B.caller == this))
88+ else if ($isInstanceOf(w, "Unit"))
89+ then if ((C.caller == this))
8790 then true
88- else C
91+ else D
8992 else throw("Match error")
9093 }
9194
9295
93-func E () = addressFromStringValue(value(getString(t())))
96+func F () = addressFromStringValue(value(getString(u())))
9497
9598
96-func F (B,g) = {
97- let G = (toString(B.caller) == valueOrElse(getString(p(g)), b))
98- if (G)
99+func G (C,g) = {
100+ let H = (toString(C.caller) == valueOrElse(getString(p(g)), b))
101+ if (H)
99102 then true
100103 else {
101- let H = A(B)
102- if ((H == H))
104+ let I = B(C)
105+ if ((I == I))
103106 then true
104107 else throw("Strict value is not equal to itself.")
105108 }
106109 }
107110
108111
109-@Callable(B)
110-func constructor (E) = {
111- let H = A(B)
112- if ((H == H))
113- then [StringEntry(t(), E)]
112+@Callable(C)
113+func constructor (F) = {
114+ let I = B(C)
115+ if ((I == I))
116+ then [StringEntry(u(), F)]
114117 else throw("Strict value is not equal to itself.")
115118 }
116119
117120
118121
119-@Callable(B)
122+@Callable(C)
120123 func put () = {
121- let I = value(B.payments[0])
122- let J = value(I.assetId)
123- let g = toBase58String(J)
124- let K = [if ((size(B.payments) == 1))
124+ let J = value(C.payments[0])
125+ let K = value(J.assetId)
126+ let g = toBase58String(K)
127+ let L = [if ((size(C.payments) == 1))
125128 then true
126- else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
129+ else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
127130 then true
128- else y("attached payment asset must be registered in the contract"), if ((I.amount > 0))
131+ else z("attached payment asset must be registered in the contract"), if ((J.amount > 0))
129132 then true
130- else y("positive amount required")]
131- if ((K == K))
133+ else z("positive amount required")]
134+ if ((L == L))
132135 then {
133- let L = valueOrElse(getInteger(f(g)), 0)
136+ let M = valueOrElse(getInteger(f(g)), 0)
134137 let o = value(getString(m(g)))
135- let M = value(assetInfo(fromBase58String(g)))
136- let N = if ((L > 0))
137- then ((I.amount * M.quantity) / L)
138- else I.amount
139-[Reissue(M.id, N, true), ScriptTransfer(B.caller, N, M.id)]
138+ let N = value(assetInfo(fromBase58String(g)))
139+ let O = if ((M > 0))
140+ then ((J.amount * N.quantity) / M)
141+ else J.amount
142+[Reissue(N.id, O, true), ScriptTransfer(C.caller, O, N.id)]
140143 }
141144 else throw("Strict value is not equal to itself.")
142145 }
143146
144147
145148
146-@Callable(B)
149+@Callable(C)
147150 func submitGetRequest () = {
148- let I = value(B.payments[0])
149- let O = value(I.assetId)
150- let o = toBase58String(O)
151- let r = toString(B.caller)
152- let P = value(getString(n(o)))
153- let Q = I.amount
154- let K = [if ((size(B.payments) == 1))
151+ let J = value(C.payments[0])
152+ let P = value(J.assetId)
153+ let o = toBase58String(P)
154+ let r = toString(C.caller)
155+ let Q = value(getString(n(o)))
156+ let R = J.amount
157+ let L = [if ((size(C.payments) == 1))
155158 then true
156- else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(P)), false))
159+ else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(Q)), false))
157160 then true
158- else y("attached payment asset must be registered in the contract"), if ((Q > 0))
161+ else z("attached payment asset must be registered in the contract"), if ((R > 0))
159162 then true
160- else y("positive amount to withdrawal required")]
161- if ((K == K))
163+ else z("positive amount to withdrawal required")]
164+ if ((L == L))
162165 then {
163- let R = valueOrElse(getInteger(j(P)), 0)
164- let L = valueOrElse(getInteger(f(P)), 0)
165- let M = value(assetInfo(O))
166- let S = M.decimals
167- let T = ((Q * L) / M.quantity)
168-[Burn(O, Q), IntegerEntry(j(P), (R + T)), IntegerEntry(q(P, r, toBase58String(B.transactionId)), T)]
166+ let S = valueOrElse(getInteger(j(Q)), 0)
167+ let M = valueOrElse(getInteger(f(Q)), 0)
168+ let N = value(assetInfo(P))
169+ let T = N.decimals
170+ let U = ((R * M) / N.quantity)
171+[Burn(P, R), IntegerEntry(j(Q), (S + U)), IntegerEntry(q(Q, r, toBase58String(C.transactionId)), U)]
169172 }
170173 else throw("Strict value is not equal to itself.")
171174 }
172175
173176
174177
175-@Callable(B)
176-func executeGetRequest (g,r,U) = {
177- let T = valueOrElse(getInteger(q(g, r, U)), 0)
178- let K = [if (valueOrElse(getBoolean(l(g)), false))
178+@Callable(C)
179+func executeGetRequest (g,r,V) = {
180+ let U = valueOrElse(getInteger(q(g, r, V)), 0)
181+ let L = [if (valueOrElse(getBoolean(l(g)), false))
179182 then true
180- else y("asset must be registered in the contract"), if ((T > 0))
183+ else z("asset must be registered in the contract"), if ((U > 0))
181184 then true
182- else y("no corresponding withdrawal request")]
183- if ((K == K))
185+ else z("no corresponding withdrawal request")]
186+ if ((L == L))
184187 then {
185- let R = valueOrElse(getInteger(j(g)), 0)
186-[ScriptTransfer(addressFromStringValue(r), T, fromBase58String(g)), DeleteEntry(q(g, r, U)), IntegerEntry(j(g), (R - T))]
188+ let S = valueOrElse(getInteger(j(g)), 0)
189+[ScriptTransfer(addressFromStringValue(r), U, fromBase58String(g)), DeleteEntry(q(g, r, V)), IntegerEntry(j(g), (S - U))]
187190 }
188191 else throw("Strict value is not equal to itself.")
189192 }
190193
191194
192195
193-@Callable(B)
194-func registerAsset (g,V,W,X,Y,Z) = {
195- let K = [A(B), if ((Y >= 0))
196+@Callable(C)
197+func registerAsset (g,W,X,Y,Z,aa,ab) = {
198+ let L = [B(C), if ((Z >= 0))
196199 then true
197- else y("invalid delayInBlocks"), if ((addressFromString(Z) != unit))
200+ else z("invalid delayInBlocks"), if ((addressFromString(aa) != unit))
198201 then true
199- else y("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
202+ else z("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
200203 then true
201- else y("asset already registered")]
202- if ((K == K))
204+ else z("asset already registered")]
205+ if ((L == L))
203206 then {
204- let S = value(assetInfo(fromBase58String(g))).decimals
205- let aa = Issue(V, W, 1, S, true)
206- let O = calculateAssetId(aa)
207- let o = toBase58String(O)
208- let ab = invoke(E(), "createOrUpdate", [o, X, false], nil)
209- if ((ab == ab))
207+ let T = value(assetInfo(fromBase58String(g))).decimals
208+ let ac = Issue(W, X, 1, T, true)
209+ let P = calculateAssetId(ac)
210+ let o = toBase58String(P)
211+ let ad = invoke(F(), "createOrUpdate", [o, Y, false], nil)
212+ if ((ad == ad))
210213 then {
211- let ac = invoke(E(), "addLabel", [o, "DEFI"], nil)
212- if ((ac == ac))
213- then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), Y), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), Z), aa, Burn(O, 1)]
214+ let ae = invoke(F(), "addLabel", [o, "DEFI"], nil)
215+ if ((ae == ae))
216+ then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), Z), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), aa), IntegerEntry(t(g), ab), ac, Burn(P, 1)]
214217 else throw("Strict value is not equal to itself.")
215218 }
216219 else throw("Strict value is not equal to itself.")
220223
221224
222225
223-@Callable(B)
226+@Callable(C)
224227 func topUpBalance () = {
225- let I = valueOrErrorMessage(B.payments[0], (c + "payment must be attached"))
226- let g = toBase58String(value(I.assetId))
227- let ad = I.amount
228- let R = valueOrElse(getInteger(j(g)), 0)
229- let K = [F(B, g), if ((size(B.payments) == 1))
228+ let J = valueOrErrorMessage(C.payments[0], (c + "payment must be attached"))
229+ let g = toBase58String(value(J.assetId))
230+ let af = J.amount
231+ let S = valueOrElse(getInteger(j(g)), 0)
232+ let L = [G(C, g), if ((size(C.payments) == 1))
230233 then true
231- else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
234+ else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
232235 then true
233- else y("attached payment asset must be registered in the contract"), if ((R != 0))
236+ else z("attached payment asset must be registered in the contract"), if ((S != 0))
234237 then true
235- else y("zero pendingWithdrawals, nothing to top up"), if ((R >= ad))
238+ else z("zero pendingWithdrawals, nothing to top up"), if ((S >= af))
236239 then true
237240 else "amount to top up must be less or equal than pendingWithdrawals"]
238- if ((K == K))
239- then [IntegerEntry(j(g), (R - ad))]
241+ if ((L == L))
242+ then [IntegerEntry(j(g), (S - af))]
240243 else throw("Strict value is not equal to itself.")
241244 }
242245
243246
244247
245-@Callable(B)
246-func setTVL (g,ae) = {
247- let H = F(B, g)
248- if ((H == H))
249- then [IntegerEntry(f(g), ae), IntegerEntry(h(g, height), ae)]
248+@Callable(C)
249+func setTVL (g,ag) = {
250+ let L = [G(C, g), if (valueOrElse(getBoolean(l(g)), false))
251+ then true
252+ else z("asset must be registered in the contract")]
253+ if ((L == L))
254+ then {
255+ let ah = value(assetInfo(fromBase58String(g))).decimals
256+ let ab = value(getInteger(t(g)))
257+ let ai = if ((ab > ah))
258+ then {
259+ let aj = (ab - ah)
260+ (ag / pow(10, 0, aj, 0, 0, DOWN))
261+ }
262+ else if ((ah > ab))
263+ then {
264+ let aj = (ah - ab)
265+ (ag * pow(10, 0, aj, 0, 0, DOWN))
266+ }
267+ else ag
268+[IntegerEntry(f(g), ai), IntegerEntry(h(g, height), ai)]
269+ }
250270 else throw("Strict value is not equal to itself.")
251271 }
252272
253273
254274
255-@Callable(B)
256-func setManager (af) = {
257- let H = A(B)
258- if ((H == H))
275+@Callable(C)
276+func setManager (ak) = {
277+ let I = B(C)
278+ if ((I == I))
259279 then {
260- let ag = fromBase58String(af)
261- if ((ag == ag))
262- then [StringEntry(e(), af)]
280+ let al = fromBase58String(ak)
281+ if ((al == al))
282+ then [StringEntry(e(), ak)]
263283 else throw("Strict value is not equal to itself.")
264284 }
265285 else throw("Strict value is not equal to itself.")
267287
268288
269289
270-@Callable(B)
290+@Callable(C)
271291 func confirmManager () = {
272- let ah = x()
273- let ai = if (isDefined(ah))
292+ let am = y()
293+ let an = if (isDefined(am))
274294 then true
275- else y("no pending manager")
276- if ((ai == ai))
295+ else z("no pending manager")
296+ if ((an == an))
277297 then {
278- let aj = if ((B.callerPublicKey == value(ah)))
298+ let ao = if ((C.callerPublicKey == value(am)))
279299 then true
280- else y("you are not pending manager")
281- if ((aj == aj))
282- then [StringEntry(d(), toBase58String(value(ah))), DeleteEntry(e())]
300+ else z("you are not pending manager")
301+ if ((ao == ao))
302+ then [StringEntry(d(), toBase58String(value(am))), DeleteEntry(e())]
283303 else throw("Strict value is not equal to itself.")
284304 }
285305 else throw("Strict value is not equal to itself.")
286306 }
287307
288308
289-@Verifier(ak)
290-func al () = {
291- let am = {
292- let v = u()
293- if ($isInstanceOf(v, "ByteVector"))
309+@Verifier(ap)
310+func aq () = {
311+ let ar = {
312+ let w = v()
313+ if ($isInstanceOf(w, "ByteVector"))
294314 then {
295- let D = v
296- D
315+ let E = w
316+ E
297317 }
298- else if ($isInstanceOf(v, "Unit"))
299- then ak.senderPublicKey
318+ else if ($isInstanceOf(w, "Unit"))
319+ then ap.senderPublicKey
300320 else throw("Match error")
301321 }
302- sigVerify(ak.bodyBytes, ak.proofs[0], am)
322+ sigVerify(ap.bodyBytes, ap.proofs[0], ar)
303323 }
304324
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = ""
77
88 let c = "lp_staking_v2: "
99
1010 func d () = makeString(["%s", "managerPublicKey"], a)
1111
1212
1313 func e () = makeString(["%s", "pendingManagerPublicKey"], a)
1414
1515
1616 func f (g) = makeString(["%s%s", "tvl", g], a)
1717
1818
1919 func h (g,i) = makeString(["%s%s%d", "tvlHistory", g, toString(i)], a)
2020
2121
2222 func j (g) = makeString(["%s%s", "pendingWithdrawals", g], a)
2323
2424
2525 func k (g) = makeString(["%s%s", "delayInBlocks", g], a)
2626
2727
2828 func l (g) = makeString(["%s%s", "created", g], a)
2929
3030
3131 func m (g) = makeString(["%s%s", "assetIdToLPId", g], a)
3232
3333
3434 func n (o) = makeString(["%s%s", "lpIdToAssetId", o], a)
3535
3636
3737 func p (g) = makeString(["%s%s", "proxyAddress", g], a)
3838
3939
4040 func q (g,r,s) = makeString(["%s%s%s%s", "userWithdrawalAmount", g, r, s], a)
4141
4242
43-func t () = makeString(["%s", "assetsStoreContract"], a)
43+func t (g) = makeString(["%s%s", "otherChainAssetDecimals", g], a)
4444
4545
46-func u () = {
47- let v = getString(d())
48- if ($isInstanceOf(v, "String"))
46+func u () = makeString(["%s", "assetsStoreContract"], a)
47+
48+
49+func v () = {
50+ let w = getString(d())
51+ if ($isInstanceOf(w, "String"))
4952 then {
50- let w = v
51- fromBase58String(w)
53+ let x = w
54+ fromBase58String(x)
5255 }
53- else if ($isInstanceOf(v, "Unit"))
56+ else if ($isInstanceOf(w, "Unit"))
5457 then unit
5558 else throw("Match error")
5659 }
5760
5861
59-func x () = {
60- let v = getString(e())
61- if ($isInstanceOf(v, "String"))
62+func y () = {
63+ let w = getString(e())
64+ if ($isInstanceOf(w, "String"))
6265 then {
63- let w = v
64- fromBase58String(w)
66+ let x = w
67+ fromBase58String(x)
6568 }
66- else if ($isInstanceOf(v, "Unit"))
69+ else if ($isInstanceOf(w, "Unit"))
6770 then unit
6871 else throw("Match error")
6972 }
7073
7174
72-func y (z) = throw((c + z))
75+func z (A) = throw((c + A))
7376
7477
75-func A (B) = {
76- let C = y("permission denied")
77- let v = u()
78- if ($isInstanceOf(v, "ByteVector"))
78+func B (C) = {
79+ let D = z("permission denied")
80+ let w = v()
81+ if ($isInstanceOf(w, "ByteVector"))
7982 then {
80- let D = v
81- if ((B.callerPublicKey == D))
83+ let E = w
84+ if ((C.callerPublicKey == E))
8285 then true
83- else C
86+ else D
8487 }
85- else if ($isInstanceOf(v, "Unit"))
86- then if ((B.caller == this))
88+ else if ($isInstanceOf(w, "Unit"))
89+ then if ((C.caller == this))
8790 then true
88- else C
91+ else D
8992 else throw("Match error")
9093 }
9194
9295
93-func E () = addressFromStringValue(value(getString(t())))
96+func F () = addressFromStringValue(value(getString(u())))
9497
9598
96-func F (B,g) = {
97- let G = (toString(B.caller) == valueOrElse(getString(p(g)), b))
98- if (G)
99+func G (C,g) = {
100+ let H = (toString(C.caller) == valueOrElse(getString(p(g)), b))
101+ if (H)
99102 then true
100103 else {
101- let H = A(B)
102- if ((H == H))
104+ let I = B(C)
105+ if ((I == I))
103106 then true
104107 else throw("Strict value is not equal to itself.")
105108 }
106109 }
107110
108111
109-@Callable(B)
110-func constructor (E) = {
111- let H = A(B)
112- if ((H == H))
113- then [StringEntry(t(), E)]
112+@Callable(C)
113+func constructor (F) = {
114+ let I = B(C)
115+ if ((I == I))
116+ then [StringEntry(u(), F)]
114117 else throw("Strict value is not equal to itself.")
115118 }
116119
117120
118121
119-@Callable(B)
122+@Callable(C)
120123 func put () = {
121- let I = value(B.payments[0])
122- let J = value(I.assetId)
123- let g = toBase58String(J)
124- let K = [if ((size(B.payments) == 1))
124+ let J = value(C.payments[0])
125+ let K = value(J.assetId)
126+ let g = toBase58String(K)
127+ let L = [if ((size(C.payments) == 1))
125128 then true
126- else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
129+ else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
127130 then true
128- else y("attached payment asset must be registered in the contract"), if ((I.amount > 0))
131+ else z("attached payment asset must be registered in the contract"), if ((J.amount > 0))
129132 then true
130- else y("positive amount required")]
131- if ((K == K))
133+ else z("positive amount required")]
134+ if ((L == L))
132135 then {
133- let L = valueOrElse(getInteger(f(g)), 0)
136+ let M = valueOrElse(getInteger(f(g)), 0)
134137 let o = value(getString(m(g)))
135- let M = value(assetInfo(fromBase58String(g)))
136- let N = if ((L > 0))
137- then ((I.amount * M.quantity) / L)
138- else I.amount
139-[Reissue(M.id, N, true), ScriptTransfer(B.caller, N, M.id)]
138+ let N = value(assetInfo(fromBase58String(g)))
139+ let O = if ((M > 0))
140+ then ((J.amount * N.quantity) / M)
141+ else J.amount
142+[Reissue(N.id, O, true), ScriptTransfer(C.caller, O, N.id)]
140143 }
141144 else throw("Strict value is not equal to itself.")
142145 }
143146
144147
145148
146-@Callable(B)
149+@Callable(C)
147150 func submitGetRequest () = {
148- let I = value(B.payments[0])
149- let O = value(I.assetId)
150- let o = toBase58String(O)
151- let r = toString(B.caller)
152- let P = value(getString(n(o)))
153- let Q = I.amount
154- let K = [if ((size(B.payments) == 1))
151+ let J = value(C.payments[0])
152+ let P = value(J.assetId)
153+ let o = toBase58String(P)
154+ let r = toString(C.caller)
155+ let Q = value(getString(n(o)))
156+ let R = J.amount
157+ let L = [if ((size(C.payments) == 1))
155158 then true
156- else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(P)), false))
159+ else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(Q)), false))
157160 then true
158- else y("attached payment asset must be registered in the contract"), if ((Q > 0))
161+ else z("attached payment asset must be registered in the contract"), if ((R > 0))
159162 then true
160- else y("positive amount to withdrawal required")]
161- if ((K == K))
163+ else z("positive amount to withdrawal required")]
164+ if ((L == L))
162165 then {
163- let R = valueOrElse(getInteger(j(P)), 0)
164- let L = valueOrElse(getInteger(f(P)), 0)
165- let M = value(assetInfo(O))
166- let S = M.decimals
167- let T = ((Q * L) / M.quantity)
168-[Burn(O, Q), IntegerEntry(j(P), (R + T)), IntegerEntry(q(P, r, toBase58String(B.transactionId)), T)]
166+ let S = valueOrElse(getInteger(j(Q)), 0)
167+ let M = valueOrElse(getInteger(f(Q)), 0)
168+ let N = value(assetInfo(P))
169+ let T = N.decimals
170+ let U = ((R * M) / N.quantity)
171+[Burn(P, R), IntegerEntry(j(Q), (S + U)), IntegerEntry(q(Q, r, toBase58String(C.transactionId)), U)]
169172 }
170173 else throw("Strict value is not equal to itself.")
171174 }
172175
173176
174177
175-@Callable(B)
176-func executeGetRequest (g,r,U) = {
177- let T = valueOrElse(getInteger(q(g, r, U)), 0)
178- let K = [if (valueOrElse(getBoolean(l(g)), false))
178+@Callable(C)
179+func executeGetRequest (g,r,V) = {
180+ let U = valueOrElse(getInteger(q(g, r, V)), 0)
181+ let L = [if (valueOrElse(getBoolean(l(g)), false))
179182 then true
180- else y("asset must be registered in the contract"), if ((T > 0))
183+ else z("asset must be registered in the contract"), if ((U > 0))
181184 then true
182- else y("no corresponding withdrawal request")]
183- if ((K == K))
185+ else z("no corresponding withdrawal request")]
186+ if ((L == L))
184187 then {
185- let R = valueOrElse(getInteger(j(g)), 0)
186-[ScriptTransfer(addressFromStringValue(r), T, fromBase58String(g)), DeleteEntry(q(g, r, U)), IntegerEntry(j(g), (R - T))]
188+ let S = valueOrElse(getInteger(j(g)), 0)
189+[ScriptTransfer(addressFromStringValue(r), U, fromBase58String(g)), DeleteEntry(q(g, r, V)), IntegerEntry(j(g), (S - U))]
187190 }
188191 else throw("Strict value is not equal to itself.")
189192 }
190193
191194
192195
193-@Callable(B)
194-func registerAsset (g,V,W,X,Y,Z) = {
195- let K = [A(B), if ((Y >= 0))
196+@Callable(C)
197+func registerAsset (g,W,X,Y,Z,aa,ab) = {
198+ let L = [B(C), if ((Z >= 0))
196199 then true
197- else y("invalid delayInBlocks"), if ((addressFromString(Z) != unit))
200+ else z("invalid delayInBlocks"), if ((addressFromString(aa) != unit))
198201 then true
199- else y("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
202+ else z("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
200203 then true
201- else y("asset already registered")]
202- if ((K == K))
204+ else z("asset already registered")]
205+ if ((L == L))
203206 then {
204- let S = value(assetInfo(fromBase58String(g))).decimals
205- let aa = Issue(V, W, 1, S, true)
206- let O = calculateAssetId(aa)
207- let o = toBase58String(O)
208- let ab = invoke(E(), "createOrUpdate", [o, X, false], nil)
209- if ((ab == ab))
207+ let T = value(assetInfo(fromBase58String(g))).decimals
208+ let ac = Issue(W, X, 1, T, true)
209+ let P = calculateAssetId(ac)
210+ let o = toBase58String(P)
211+ let ad = invoke(F(), "createOrUpdate", [o, Y, false], nil)
212+ if ((ad == ad))
210213 then {
211- let ac = invoke(E(), "addLabel", [o, "DEFI"], nil)
212- if ((ac == ac))
213- then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), Y), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), Z), aa, Burn(O, 1)]
214+ let ae = invoke(F(), "addLabel", [o, "DEFI"], nil)
215+ if ((ae == ae))
216+ then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), Z), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), aa), IntegerEntry(t(g), ab), ac, Burn(P, 1)]
214217 else throw("Strict value is not equal to itself.")
215218 }
216219 else throw("Strict value is not equal to itself.")
217220 }
218221 else throw("Strict value is not equal to itself.")
219222 }
220223
221224
222225
223-@Callable(B)
226+@Callable(C)
224227 func topUpBalance () = {
225- let I = valueOrErrorMessage(B.payments[0], (c + "payment must be attached"))
226- let g = toBase58String(value(I.assetId))
227- let ad = I.amount
228- let R = valueOrElse(getInteger(j(g)), 0)
229- let K = [F(B, g), if ((size(B.payments) == 1))
228+ let J = valueOrErrorMessage(C.payments[0], (c + "payment must be attached"))
229+ let g = toBase58String(value(J.assetId))
230+ let af = J.amount
231+ let S = valueOrElse(getInteger(j(g)), 0)
232+ let L = [G(C, g), if ((size(C.payments) == 1))
230233 then true
231- else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
234+ else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
232235 then true
233- else y("attached payment asset must be registered in the contract"), if ((R != 0))
236+ else z("attached payment asset must be registered in the contract"), if ((S != 0))
234237 then true
235- else y("zero pendingWithdrawals, nothing to top up"), if ((R >= ad))
238+ else z("zero pendingWithdrawals, nothing to top up"), if ((S >= af))
236239 then true
237240 else "amount to top up must be less or equal than pendingWithdrawals"]
238- if ((K == K))
239- then [IntegerEntry(j(g), (R - ad))]
241+ if ((L == L))
242+ then [IntegerEntry(j(g), (S - af))]
240243 else throw("Strict value is not equal to itself.")
241244 }
242245
243246
244247
245-@Callable(B)
246-func setTVL (g,ae) = {
247- let H = F(B, g)
248- if ((H == H))
249- then [IntegerEntry(f(g), ae), IntegerEntry(h(g, height), ae)]
248+@Callable(C)
249+func setTVL (g,ag) = {
250+ let L = [G(C, g), if (valueOrElse(getBoolean(l(g)), false))
251+ then true
252+ else z("asset must be registered in the contract")]
253+ if ((L == L))
254+ then {
255+ let ah = value(assetInfo(fromBase58String(g))).decimals
256+ let ab = value(getInteger(t(g)))
257+ let ai = if ((ab > ah))
258+ then {
259+ let aj = (ab - ah)
260+ (ag / pow(10, 0, aj, 0, 0, DOWN))
261+ }
262+ else if ((ah > ab))
263+ then {
264+ let aj = (ah - ab)
265+ (ag * pow(10, 0, aj, 0, 0, DOWN))
266+ }
267+ else ag
268+[IntegerEntry(f(g), ai), IntegerEntry(h(g, height), ai)]
269+ }
250270 else throw("Strict value is not equal to itself.")
251271 }
252272
253273
254274
255-@Callable(B)
256-func setManager (af) = {
257- let H = A(B)
258- if ((H == H))
275+@Callable(C)
276+func setManager (ak) = {
277+ let I = B(C)
278+ if ((I == I))
259279 then {
260- let ag = fromBase58String(af)
261- if ((ag == ag))
262- then [StringEntry(e(), af)]
280+ let al = fromBase58String(ak)
281+ if ((al == al))
282+ then [StringEntry(e(), ak)]
263283 else throw("Strict value is not equal to itself.")
264284 }
265285 else throw("Strict value is not equal to itself.")
266286 }
267287
268288
269289
270-@Callable(B)
290+@Callable(C)
271291 func confirmManager () = {
272- let ah = x()
273- let ai = if (isDefined(ah))
292+ let am = y()
293+ let an = if (isDefined(am))
274294 then true
275- else y("no pending manager")
276- if ((ai == ai))
295+ else z("no pending manager")
296+ if ((an == an))
277297 then {
278- let aj = if ((B.callerPublicKey == value(ah)))
298+ let ao = if ((C.callerPublicKey == value(am)))
279299 then true
280- else y("you are not pending manager")
281- if ((aj == aj))
282- then [StringEntry(d(), toBase58String(value(ah))), DeleteEntry(e())]
300+ else z("you are not pending manager")
301+ if ((ao == ao))
302+ then [StringEntry(d(), toBase58String(value(am))), DeleteEntry(e())]
283303 else throw("Strict value is not equal to itself.")
284304 }
285305 else throw("Strict value is not equal to itself.")
286306 }
287307
288308
289-@Verifier(ak)
290-func al () = {
291- let am = {
292- let v = u()
293- if ($isInstanceOf(v, "ByteVector"))
309+@Verifier(ap)
310+func aq () = {
311+ let ar = {
312+ let w = v()
313+ if ($isInstanceOf(w, "ByteVector"))
294314 then {
295- let D = v
296- D
315+ let E = w
316+ E
297317 }
298- else if ($isInstanceOf(v, "Unit"))
299- then ak.senderPublicKey
318+ else if ($isInstanceOf(w, "Unit"))
319+ then ap.senderPublicKey
300320 else throw("Match error")
301321 }
302- sigVerify(ak.bodyBytes, ak.proofs[0], am)
322+ sigVerify(ap.bodyBytes, ap.proofs[0], ar)
303323 }
304324

github/deemru/w8io/169f3d6 
110.75 ms