tx · CeLkMxuye6awbXGY3rKZRzJezvTgYFD52AvKLXw7L4Y9

3PDUqa5qmnhPJfKPnBzUd5PisA42iawV6W7:  -0.01400000 Waves

2020.09.13 01:25 [2238335] smart account 3PDUqa5qmnhPJfKPnBzUd5PisA42iawV6W7 > SELF 0.00000000 Waves

{ "type": 13, "id": "CeLkMxuye6awbXGY3rKZRzJezvTgYFD52AvKLXw7L4Y9", "fee": 1400000, "feeAssetId": null, "timestamp": 1599949533705, "version": 2, "chainId": 87, "sender": "3PDUqa5qmnhPJfKPnBzUd5PisA42iawV6W7", "senderPublicKey": "7S371VYZXa9KW7x4AJBpEjaBU2BcrhPYVgAs5nCvbbtj", "proofs": [ "MRGCv7bWhs7hBRPexNgLxw9BsRzZhb6X2puykH8QxnhhVQm4SrZSSaKzpeHVZMTQYwcB2iiy3JqgGDFDWcPH4xf", "2i9XiS9GaedzCEyiMQ7MuRd8ZTUBbtkHKdcm9zm1n3seu1MruzSZYiGq5uBZ1VsMNYacbhAfS6GAsDvGD4p1M1DE" ], "script": "base64:AAIEAAAAAAAAAAgIAhIAEgASAAAAABkAAAAADXNjcmlwdFZlcnNpb24CAAAADnYzLjA0XzIwMjAwOTEyAAAAAAdwZXJjZW50AAAAAAAAAABkAAAAAAtyaXNrUGVyY2VudAAAAAAAAAAAFAAAAAALdGVhbVBlcmNlbnQAAAAAAAAAAAoAAAAADmFkbWluUHVibGljS2V5AQAAACD/zQv9xtp+IwicmSq/7YB3qzF8dYREKcB8rX1b2hNXAwAAAAAOZnRlYW1QdWJsaWNLZXkBAAAAIIN6TMTYLvwQfnpKcKqqAAZ8882v9yZAFQ900E5yClNCAAAAAA5tbWJvdFB1YmxpY0tleQEAAAAgSqCTD7MZSfeiXlZ7r112NWe+YGAAI7co5SLZqPgB7C8AAAAACWVtcHR5TGlzdAkABEwAAAACAQAAAAAJAARMAAAAAgEAAAAACQAETAAAAAIBAAAAAAkABEwAAAACAQAAAAAJAARMAAAAAgEAAAAACQAETAAAAAIBAAAAAAkABEwAAAACAQAAAAAFAAAAA25pbAAAAAATZ3VhcmFudG9yUHVibGljS2V5cwkABE4AAAACCQAETAAAAAIBAAAAIP/NC/3G2n4jCJyZKr/tgHerMXx1hEQpwHytfVvaE1cDBQAAAANuaWwFAAAACWVtcHR5TGlzdAAAAAANZ3VhcmFudG9yU2l6ZQkAAGUAAAACCQABkAAAAAEFAAAAE2d1YXJhbnRvclB1YmxpY0tleXMJAAGQAAAAAQUAAAAJZW1wdHlMaXN0AAAAAA1taW5TaWduYXR1cmVzCQAAZAAAAAIJAABpAAAAAgUAAAANZ3VhcmFudG9yU2l6ZQAAAAAAAAAAAgkAAGoAAAACBQAAAA1ndWFyYW50b3JTaXplAAAAAAAAAAACAAAAAAlmbW10QXNzZXQBAAAAIGYr8dw8TDanuTqo+vs1Q9xNuAeFp1N2ZT91Xozrfzj0AAAAAAl4ZmVlQXNzZXQBAAAAID7aqaNufgAR8AeMAT3F3i6NRzE7nRhBON4sOuYerrY3AAAAAA5yZXNlcnZlZEFzc2V0cwkABE0AAAACCQAETQAAAAIJAARMAAAAAgEAAAAgHpQHE1J2oSWV/chhqIJfEH/fOk8pu/yaRj9a/TZPn5EJAARMAAAAAgEAAAAgbPpq/8XtqowLf7Uqk9KiDC+Cgtt0egSMU/v9Ex9zoP8JAARMAAAAAgUAAAAEdW5pdAkABEwAAAACAQAAACAuIMP26oqfiVG7v+iIERM27H7YwkIDcmUNWM1zJkJlggkABEwAAAACAQAAACAOsQJqDD6fR/fkRpTnTra3vEN8fmVp0OkYmyLmCfLozgkABEwAAAACAQAAACD2HjZC05fd8lpYFSDuLA/aLUYGioA2kq5ViVmesMUsoQkABEwAAAACAQAAACCVUyAXMsf3+DFtUqiNtVnTz+vyc+2UcVflnSbnzodq4AkABEwAAAACAQAAACBDGPQbdVIwj7v6ImS/BChOt6ShyZxuGIKd0Qa/y8AkAgkABEwAAAACAQAAACChUlrVSdZxusOvH4bJkn/qD4paHB+YpCtzBo7Mmv7VZwUAAAADbmlsBQAAAAl4ZmVlQXNzZXQFAAAACWZtbXRBc3NldAAAAAAMYWRtaW5BZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXyvBTGJ3PniBi4dPVWqjby+gPf9AH2sQ1AAAAAAxmdGVhbUFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVcQuxlHOiTpd3q4b4Qfpy/dkXxJLp2SbpcAAAAADGZkYXBwQWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBV5QYziqBhmxDF5C2Lz6gXMApQ2dkobIGDQAAAAAKaGVkZ2VGdW5kcwkAAGUAAAACCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAlmbW10QXNzZXQAAAAIcXVhbnRpdHkJAABkAAAAAgkAAGQAAAACCQAD8AAAAAIFAAAABHRoaXMFAAAACWZtbXRBc3NldAkAA/AAAAACBQAAAAxmdGVhbUFkZHJlc3MFAAAACWZtbXRBc3NldAkAA/AAAAACBQAAAAxmZGFwcEFkZHJlc3MFAAAACWZtbXRBc3NldAAAAAASdGVhbVBheW91dHNEYXRhS2V5AgAAAAt0ZWFtUGF5b3V0cwAAAAAUc2NyaXB0VmVyc2lvbkRhdGFLZXkCAAAADXNjcmlwdFZlcnNpb24AAAAAEHRpbWVzdGFtcERhdGFLZXkCAAAACXRpbWVzdGFtcAAAAAARbGFzdEFjdGlvbkRhdGFLZXkCAAAACmxhc3RBY3Rpb24AAAAAC2RhcHBEYXRhS2V5CQACWAAAAAEIBQAAAAR0aGlzAAAABWJ5dGVzAAAAABNpc0NvbnRyYWN0U3VzcGVuZGVkCQEAAAABIQAAAAEJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAMYWRtaW5BZGRyZXNzBQAAAAtkYXBwRGF0YUtleQcBAAAAEWdldFNjcmlwdFRyYW5zZmVyAAAAAQAAAAdhc3NldElkCgEAAAAPaXNBc3NldERpc2FibGVkAAAAAQAAAAxhc3NldERhdGFLZXkJAQAAAAEhAAAAAQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAxhZG1pbkFkZHJlc3MFAAAADGFzc2V0RGF0YUtleQcKAQAAAApkaWZmZXJlbmNlAAAAAgAAAAxmY29sZEJhbGFuY2UAAAAMZmRhcHBCYWxhbmNlCQAAZQAAAAIJAABrAAAAAwkAAGQAAAACBQAAAAxmY29sZEJhbGFuY2UFAAAADGZkYXBwQmFsYW5jZQUAAAALcmlza1BlcmNlbnQFAAAAB3BlcmNlbnQFAAAADGZkYXBwQmFsYW5jZQQAAAAGYW1vdW50BAAAAAckbWF0Y2gwBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAVhc3NldAUAAAAHJG1hdGNoMAMJAQAAAA9pc0Fzc2V0RGlzYWJsZWQAAAABCQACWAAAAAEFAAAABWFzc2V0AAAAAAAAAAAACQEAAAAKZGlmZmVyZW5jZQAAAAIJAAPwAAAAAgUAAAAEdGhpcwUAAAAFYXNzZXQJAAPwAAAAAgUAAAAMZmRhcHBBZGRyZXNzBQAAAAVhc3NldAMJAQAAAA9pc0Fzc2V0RGlzYWJsZWQAAAABAgAAAAVXQVZFUwAAAAAAAAAAAAkBAAAACmRpZmZlcmVuY2UAAAACCAkAA+8AAAABBQAAAAR0aGlzAAAAB3JlZ3VsYXIICQAD7wAAAAEFAAAADGZkYXBwQWRkcmVzcwAAAAdyZWd1bGFyAwkAAGYAAAACBQAAAAZhbW91bnQAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAMZmRhcHBBZGRyZXNzBQAAAAZhbW91bnQFAAAAB2Fzc2V0SWQFAAAAA25pbAUAAAADbmlsAAAAAwAAAAFpAQAAAA1hdXRvUmViYWxhbmNlAAAAAAQAAAATbGFzdEFjdGlvbkRhdGFWYWx1ZQIAAAANYXV0b1JlYmFsYW5jZQMFAAAAE2lzQ29udHJhY3RTdXNwZW5kZWQJAAACAAAAAQIAAAAtVGhlIGFkbWluaXN0cmF0b3IgaGFzIHN1c3BlbmRlZCB0aGUgY29udHJhY3QhAwMJAQAAAAIhPQAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAAOYWRtaW5QdWJsaWNLZXkJAQAAAAIhPQAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAAObW1ib3RQdWJsaWNLZXkHCQAAAgAAAAECAAAAMU9ubHkgdGhlIGFkbWluaXN0cmF0b3IgY2FuIHBlcmZvcm0gdGhpcyBmdW5jdGlvbiEDCQAAZgAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAAAyRG9uJ3QgYXR0YWNoIHBheW1lbnQgd2hlbiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uLi4EAAAAD3NjcmlwdFRyYW5zZmVycwkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABE4AAAACCQAETgAAAAIJAQAAABFnZXRTY3JpcHRUcmFuc2ZlcgAAAAEJAAGRAAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMAAAAAAAAAAAAJAQAAABFnZXRTY3JpcHRUcmFuc2ZlcgAAAAEJAAGRAAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMAAAAAAAAAAAEJAQAAABFnZXRTY3JpcHRUcmFuc2ZlcgAAAAEJAAGRAAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMAAAAAAAAAAAIJAQAAABFnZXRTY3JpcHRUcmFuc2ZlcgAAAAEJAAGRAAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMAAAAAAAAAAAMJAQAAABFnZXRTY3JpcHRUcmFuc2ZlcgAAAAEJAAGRAAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMAAAAAAAAAAAQJAQAAABFnZXRTY3JpcHRUcmFuc2ZlcgAAAAEJAAGRAAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMAAAAAAAAAAAUJAQAAABFnZXRTY3JpcHRUcmFuc2ZlcgAAAAEJAAGRAAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMAAAAAAAAAAAYJAQAAABFnZXRTY3JpcHRUcmFuc2ZlcgAAAAEJAAGRAAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMAAAAAAAAAAAcJAQAAABFnZXRTY3JpcHRUcmFuc2ZlcgAAAAEJAAGRAAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMAAAAAAAAAAAgDCQAAZgAAAAIJAAGQAAAAAQUAAAAPc2NyaXB0VHJhbnNmZXJzAAAAAAAAAAAACQAETQAAAAIJAARNAAAAAgUAAAAPc2NyaXB0VHJhbnNmZXJzCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAQdGltZXN0YW1wRGF0YUtleQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEWxhc3RBY3Rpb25EYXRhS2V5BQAAABNsYXN0QWN0aW9uRGF0YVZhbHVlCQAAAgAAAAECAAAANU5vIHRyYW5zZmVycyBhdmFpbGFibGUuIFdhaXQgdW50aWwgaW1iYWxhbmNlIGFwcGVhcnMuAAAAAWkBAAAADmdldFRlYW1QYXlvdXRzAAAAAAQAAAATbGFzdEFjdGlvbkRhdGFWYWx1ZQIAAAAOZ2V0VGVhbVBheW91dHMDBQAAABNpc0NvbnRyYWN0U3VzcGVuZGVkCQAAAgAAAAECAAAALVRoZSBhZG1pbmlzdHJhdG9yIGhhcyBzdXNwZW5kZWQgdGhlIGNvbnRyYWN0IQMDCQEAAAACIT0AAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAADmFkbWluUHVibGljS2V5CQEAAAACIT0AAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAADmZ0ZWFtUHVibGljS2V5BwkAAAIAAAABAgAAADFPbmx5IHRoZSBhZG1pbmlzdHJhdG9yIGNhbiBwZXJmb3JtIHRoaXMgZnVuY3Rpb24hAwkAAGYAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAMkRvbid0IGF0dGFjaCBwYXltZW50IHdoZW4gY2FsbGluZyB0aGlzIGZ1bmN0aW9uLi4uBAAAAApvbGRQYXlvdXRzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEnRlYW1QYXlvdXRzRGF0YUtleQAAAAAAAAAAAAQAAAAGYW1vdW50CQAAZQAAAAIJAABrAAAAAwUAAAAKaGVkZ2VGdW5kcwUAAAALdGVhbVBlcmNlbnQFAAAAB3BlcmNlbnQFAAAACm9sZFBheW91dHMDCQAAZgAAAAIFAAAABmFtb3VudAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASdGVhbVBheW91dHNEYXRhS2V5CQAAZAAAAAIFAAAACm9sZFBheW91dHMFAAAABmFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAxmdGVhbUFkZHJlc3MFAAAABmFtb3VudAUAAAAJZm1tdEFzc2V0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABB0aW1lc3RhbXBEYXRhS2V5CAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABFsYXN0QWN0aW9uRGF0YUtleQUAAAATbGFzdEFjdGlvbkRhdGFWYWx1ZQUAAAADbmlsCQAAAgAAAAECAAAAOE5vIHBheW1lbnRzIGF2YWlsYWJsZS4gV2FpdCBmb3IgbmV3IGludmVzdG1lbnRzIHRvIGNvbWUuAAAAAWkBAAAAEHNldFNjcmlwdFZlcnNpb24AAAAABAAAABNsYXN0QWN0aW9uRGF0YVZhbHVlAgAAABBzZXRTY3JpcHRWZXJzaW9uAwUAAAATaXNDb250cmFjdFN1c3BlbmRlZAkAAAIAAAABAgAAAC1UaGUgYWRtaW5pc3RyYXRvciBoYXMgc3VzcGVuZGVkIHRoZSBjb250cmFjdCEDCQEAAAACIT0AAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAADmFkbWluUHVibGljS2V5CQAAAgAAAAECAAAAMU9ubHkgdGhlIGFkbWluaXN0cmF0b3IgY2FuIHBlcmZvcm0gdGhpcyBmdW5jdGlvbiED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AgUAAAAHJG1hdGNoMAIAAAAFT3JkZXIEAAAAAW8FAAAAByRtYXRjaDADBQAAAAxpc1ZhbGlkT3duZXIDAwkAAAAAAAACCAUAAAABbwAAAAlvcmRlclR5cGUFAAAAA0J1eQkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMICAUAAAABbwAAAAlhc3NldFBhaXIAAAAKcHJpY2VBc3NldAcGAwkAAAAAAAACCAUAAAABbwAAAAlvcmRlclR5cGUFAAAABFNlbGwJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAADnJlc2VydmVkQXNzZXRzCAgFAAAAAW8AAAAJYXNzZXRQYWlyAAAAC2Ftb3VudEFzc2V0BwcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDADCQEAAAABIQAAAAEFAAAAE2lzQ29udHJhY3RTdXNwZW5kZWQDAwMDBQAAAAxpc1ZhbGlkT3duZXIJAAAAAAAAAggFAAAAAXQAAAAKZmVlQXNzZXRJZAUAAAAJeGZlZUFzc2V0BwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAOcmVzZXJ2ZWRBc3NldHMIBQAAAAF0AAAAB2Fzc2V0SWQHBgMDAwUAAAAMaXNWYWxpZEFkbWluCQAAAAAAAAIIBQAAAAF0AAAAB2Fzc2V0SWQFAAAACWZtbXRBc3NldAcJAAAAAAAAAggFAAAAAXQAAAAKZmVlQXNzZXRJZAUAAAAJeGZlZUFzc2V0BwkAAAAAAAACCQAEJAAAAAEIBQAAAAF0AAAACXJlY2lwaWVudAUAAAAMZmRhcHBBZGRyZXNzBwYDAwMDBQAAABFpc1ZhbGlkR3VhcmFudG9ycwkBAAAAAiE9AAAAAggFAAAAAXQAAAAHYXNzZXRJZAUAAAAJZm1tdEFzc2V0BwkBAAAAAiE9AAAAAggFAAAAAXQAAAAHYXNzZXRJZAUAAAAJeGZlZUFzc2V0BwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAADnJlc2VydmVkQXNzZXRzCAUAAAABdAAAAAdhc3NldElkBwkAAAAAAAACCQAEJAAAAAEIBQAAAAF0AAAACXJlY2lwaWVudAUAAAAMZmRhcHBBZGRyZXNzBwcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAEExlYXNlVHJhbnNhY3Rpb24FAAAADGlzVmFsaWRNTUJvdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAWTGVhc2VDYW5jZWxUcmFuc2FjdGlvbgMFAAAADGlzVmFsaWRNTUJvdAYFAAAAEWlzVmFsaWRHdWFyYW50b3JzAwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uAwUAAAAMaXNWYWxpZEFkbWluBQAAABFpc1ZhbGlkR3VhcmFudG9ycwcHuVG6+w==", "height": 2238335, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: G7DTwWMvU5sfGsRpW2BjkvZHgJJ9KpZ2457MFygtt1Kg Next: 3w8vF8jUXtjBhGQEzeNsLmTBbpBefaKCF3Fx7JG1kaEk Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let scriptVersion = "v3.03_20200912"
4+let scriptVersion = "v3.04_20200912"
55
66 let percent = 100
77
8-let riskPercent = 2000
8+let riskPercent = 20
99
10-let teamPercent = 1000
10+let teamPercent = 10
1111
1212 let adminPublicKey = base58'JDYJq5RKnSXKLYUQfL89zWPdM3QH5hW8JUTpjnTYV95k'
1313
5252 func getScriptTransfer (assetId) = {
5353 func isAssetDisabled (assetDataKey) = !(valueOrElse(getBoolean(adminAddress, assetDataKey), false))
5454
55- func difference (fcoldBalance,fdappBalance) = (fraction((fcoldBalance + fdappBalance), riskPercent, (100 * percent)) - fdappBalance)
55+ func difference (fcoldBalance,fdappBalance) = (fraction((fcoldBalance + fdappBalance), riskPercent, percent) - fdappBalance)
5656
5757 let amount = match assetId {
5858 case asset: ByteVector =>
104104 then throw("Don't attach payment when calling this function...")
105105 else {
106106 let oldPayouts = valueOrElse(getInteger(this, teamPayoutsDataKey), 0)
107- let amount = (fraction(hedgeFunds, teamPercent, (100 * percent)) - oldPayouts)
107+ let amount = (fraction(hedgeFunds, teamPercent, percent) - oldPayouts)
108108 if ((amount > 0))
109109 then [IntegerEntry(teamPayoutsDataKey, (oldPayouts + amount)), ScriptTransfer(fteamAddress, amount, fmmtAsset), IntegerEntry(timestampDataKey, lastBlock.timestamp), StringEntry(lastActionDataKey, lastActionDataValue)]
110110 else throw("No payments available. Wait for new investments to come.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let scriptVersion = "v3.03_20200912"
4+let scriptVersion = "v3.04_20200912"
55
66 let percent = 100
77
8-let riskPercent = 2000
8+let riskPercent = 20
99
10-let teamPercent = 1000
10+let teamPercent = 10
1111
1212 let adminPublicKey = base58'JDYJq5RKnSXKLYUQfL89zWPdM3QH5hW8JUTpjnTYV95k'
1313
1414 let fteamPublicKey = base58'9rEa7ydWcSWkHfn9wmoHZAKd1LsRNxhcLmdpAJP7Toyj'
1515
1616 let mmbotPublicKey = base58'62KBavoHK4TtCYmURFVeNC8j3gL8Jo7WwcrweoBLWofc'
1717
1818 let emptyList = [base58'', base58'', base58'', base58'', base58'', base58'', base58'']
1919
2020 let guarantorPublicKeys = ([base58'JDYJq5RKnSXKLYUQfL89zWPdM3QH5hW8JUTpjnTYV95k'] ++ emptyList)
2121
2222 let guarantorSize = (size(guarantorPublicKeys) - size(emptyList))
2323
2424 let minSignatures = ((guarantorSize / 2) + (guarantorSize % 2))
2525
2626 let fmmtAsset = base58'7sqT7HvCVtcrCTQV72FM5so65wjzM164rzoqDZRsRXg7'
2727
2828 let xfeeAsset = base58'5EMfVQiB8NF4HuhaXrZzDM637whWuVBsduq59ZaCSNqk'
2929
3030 let reservedAssets = (([base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ', base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS', unit, base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu', base58'zMFqXuoyrn5w17PFurTqxB7GsS71fp9dfk6XFwxbPCy', base58'HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk', base58'B3uGHFRpSUuGEDWjqB9LWWxafQj8VTvpMucEyoxzws5H', base58'5WvPKSJXzVE2orvbkJ8wsQmmQKqTv9sGBPksV4adViw3', base58'BrjUWjndUanm5VsJkbUip8VRYy6LWJePtxya3FNv4TQa'] :+ xfeeAsset) :+ fmmtAsset)
3131
3232 let adminAddress = Address(base58'3PLRw83NCgHKKFfeJi8XWZ4fypqJJxm2x2x')
3333
3434 let fteamAddress = Address(base58'3P3TMgAUVtJKWHxQMdt8Ao6A1qnRyVmCSr2')
3535
3636 let fdappAddress = Address(base58'3PFRxT9CXG81Evr8MeVJGnQSjFP6cq1SHWL')
3737
3838 let hedgeFunds = (value(assetInfo(fmmtAsset)).quantity - ((assetBalance(this, fmmtAsset) + assetBalance(fteamAddress, fmmtAsset)) + assetBalance(fdappAddress, fmmtAsset)))
3939
4040 let teamPayoutsDataKey = "teamPayouts"
4141
4242 let scriptVersionDataKey = "scriptVersion"
4343
4444 let timestampDataKey = "timestamp"
4545
4646 let lastActionDataKey = "lastAction"
4747
4848 let dappDataKey = toBase58String(this.bytes)
4949
5050 let isContractSuspended = !(valueOrElse(getBoolean(adminAddress, dappDataKey), false))
5151
5252 func getScriptTransfer (assetId) = {
5353 func isAssetDisabled (assetDataKey) = !(valueOrElse(getBoolean(adminAddress, assetDataKey), false))
5454
55- func difference (fcoldBalance,fdappBalance) = (fraction((fcoldBalance + fdappBalance), riskPercent, (100 * percent)) - fdappBalance)
55+ func difference (fcoldBalance,fdappBalance) = (fraction((fcoldBalance + fdappBalance), riskPercent, percent) - fdappBalance)
5656
5757 let amount = match assetId {
5858 case asset: ByteVector =>
5959 if (isAssetDisabled(toBase58String(asset)))
6060 then 0
6161 else difference(assetBalance(this, asset), assetBalance(fdappAddress, asset))
6262 case _ =>
6363 if (isAssetDisabled("WAVES"))
6464 then 0
6565 else difference(wavesBalance(this).regular, wavesBalance(fdappAddress).regular)
6666 }
6767 if ((amount > 0))
6868 then [ScriptTransfer(fdappAddress, amount, assetId)]
6969 else nil
7070 }
7171
7272
7373 @Callable(i)
7474 func autoRebalance () = {
7575 let lastActionDataValue = "autoRebalance"
7676 if (isContractSuspended)
7777 then throw("The administrator has suspended the contract!")
7878 else if (if ((i.callerPublicKey != adminPublicKey))
7979 then (i.callerPublicKey != mmbotPublicKey)
8080 else false)
8181 then throw("Only the administrator can perform this function!")
8282 else if ((size(i.payments) > 0))
8383 then throw("Don't attach payment when calling this function...")
8484 else {
8585 let scriptTransfers = ((((((((getScriptTransfer(reservedAssets[0]) ++ getScriptTransfer(reservedAssets[1])) ++ getScriptTransfer(reservedAssets[2])) ++ getScriptTransfer(reservedAssets[3])) ++ getScriptTransfer(reservedAssets[4])) ++ getScriptTransfer(reservedAssets[5])) ++ getScriptTransfer(reservedAssets[6])) ++ getScriptTransfer(reservedAssets[7])) ++ getScriptTransfer(reservedAssets[8]))
8686 if ((size(scriptTransfers) > 0))
8787 then ((scriptTransfers :+ IntegerEntry(timestampDataKey, lastBlock.timestamp)) :+ StringEntry(lastActionDataKey, lastActionDataValue))
8888 else throw("No transfers available. Wait until imbalance appears.")
8989 }
9090 }
9191
9292
9393
9494 @Callable(i)
9595 func getTeamPayouts () = {
9696 let lastActionDataValue = "getTeamPayouts"
9797 if (isContractSuspended)
9898 then throw("The administrator has suspended the contract!")
9999 else if (if ((i.callerPublicKey != adminPublicKey))
100100 then (i.callerPublicKey != fteamPublicKey)
101101 else false)
102102 then throw("Only the administrator can perform this function!")
103103 else if ((size(i.payments) > 0))
104104 then throw("Don't attach payment when calling this function...")
105105 else {
106106 let oldPayouts = valueOrElse(getInteger(this, teamPayoutsDataKey), 0)
107- let amount = (fraction(hedgeFunds, teamPercent, (100 * percent)) - oldPayouts)
107+ let amount = (fraction(hedgeFunds, teamPercent, percent) - oldPayouts)
108108 if ((amount > 0))
109109 then [IntegerEntry(teamPayoutsDataKey, (oldPayouts + amount)), ScriptTransfer(fteamAddress, amount, fmmtAsset), IntegerEntry(timestampDataKey, lastBlock.timestamp), StringEntry(lastActionDataKey, lastActionDataValue)]
110110 else throw("No payments available. Wait for new investments to come.")
111111 }
112112 }
113113
114114
115115
116116 @Callable(i)
117117 func setScriptVersion () = {
118118 let lastActionDataValue = "setScriptVersion"
119119 if (isContractSuspended)
120120 then throw("The administrator has suspended the contract!")
121121 else if ((i.callerPublicKey != adminPublicKey))
122122 then throw("Only the administrator can perform this function!")
123123 else if ((size(i.payments) > 0))
124124 then throw("Don't attach payment when calling this function...")
125125 else {
126126 let oldVersion = valueOrElse(getString(this, scriptVersionDataKey), "")
127127 if ((oldVersion != scriptVersion))
128128 then [StringEntry(scriptVersionDataKey, scriptVersion), IntegerEntry(timestampDataKey, lastBlock.timestamp), StringEntry(lastActionDataKey, lastActionDataValue)]
129129 else throw(("The script version has already been updated: " + oldVersion))
130130 }
131131 }
132132
133133
134134 @Verifier(tx)
135135 func verify () = {
136136 let isValidOwner = sigVerify_16Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
137137 let isValidAdmin = if (isValidOwner)
138138 then true
139139 else sigVerify_16Kb(tx.bodyBytes, tx.proofs[1], adminPublicKey)
140140 let isValidMMBot = if (isValidOwner)
141141 then true
142142 else sigVerify_16Kb(tx.bodyBytes, tx.proofs[1], mmbotPublicKey)
143143 let isValidGuarantors = ((((((if (sigVerify_16Kb(tx.bodyBytes, tx.proofs[1], guarantorPublicKeys[0]))
144144 then 1
145145 else 0) + (if (sigVerify_16Kb(tx.bodyBytes, tx.proofs[2], guarantorPublicKeys[1]))
146146 then 1
147147 else 0)) + (if (sigVerify_16Kb(tx.bodyBytes, tx.proofs[3], guarantorPublicKeys[2]))
148148 then 1
149149 else 0)) + (if (sigVerify_16Kb(tx.bodyBytes, tx.proofs[4], guarantorPublicKeys[3]))
150150 then 1
151151 else 0)) + (if (sigVerify_16Kb(tx.bodyBytes, tx.proofs[5], guarantorPublicKeys[4]))
152152 then 1
153153 else 0)) >= minSignatures)
154154 match tx {
155155 case b: BurnTransaction =>
156156 if (isValidOwner)
157157 then !(containsElement(reservedAssets, b.assetId))
158158 else false
159159 case o: Order =>
160160 if (isValidOwner)
161161 then if (if ((o.orderType == Buy))
162162 then !(containsElement(reservedAssets, o.assetPair.priceAsset))
163163 else false)
164164 then true
165165 else if ((o.orderType == Sell))
166166 then !(containsElement(reservedAssets, o.assetPair.amountAsset))
167167 else false
168168 else false
169169 case t: TransferTransaction =>
170170 if (!(isContractSuspended))
171171 then if (if (if (if (isValidOwner)
172172 then (t.feeAssetId == xfeeAsset)
173173 else false)
174174 then !(containsElement(reservedAssets, t.assetId))
175175 else false)
176176 then true
177177 else if (if (if (isValidAdmin)
178178 then (t.assetId == fmmtAsset)
179179 else false)
180180 then (t.feeAssetId == xfeeAsset)
181181 else false)
182182 then (addressFromRecipient(t.recipient) == fdappAddress)
183183 else false)
184184 then true
185185 else if (if (if (if (isValidGuarantors)
186186 then (t.assetId != fmmtAsset)
187187 else false)
188188 then (t.assetId != xfeeAsset)
189189 else false)
190190 then containsElement(reservedAssets, t.assetId)
191191 else false)
192192 then (addressFromRecipient(t.recipient) == fdappAddress)
193193 else false
194194 else false
195195 case _: LeaseTransaction =>
196196 isValidMMBot
197197 case _: LeaseCancelTransaction =>
198198 if (isValidMMBot)
199199 then true
200200 else isValidGuarantors
201201 case _: InvokeScriptTransaction|SetScriptTransaction|DataTransaction =>
202202 if (isValidAdmin)
203203 then isValidGuarantors
204204 else false
205205 case _ =>
206206 false
207207 }
208208 }
209209

github/deemru/w8io/3ef1775 
70.45 ms