tx · Cj9mX8GNYrRL37t4dM8L5FN2aREt1jUrkZNcH175r91A

3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3:  -0.01000000 Waves

2024.01.29 00:14 [4017673] smart account 3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3 > SELF 0.00000000 Waves

{ "type": 13, "id": "Cj9mX8GNYrRL37t4dM8L5FN2aREt1jUrkZNcH175r91A", "fee": 1000000, "feeAssetId": null, "timestamp": 1706476485286, "version": 2, "chainId": 87, "sender": "3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3", "senderPublicKey": "4XuPpm7Pz97L5yDuLYiKbCSuXvtGjxCPsUBUUzmgokhP", "proofs": [ "2NtwuNDg1L9nFTCzwiDtu5ZLLukNwVZgnBEkDJmL68oXiLyP5HFsE8qkGvNJCzkBLngBW2BKqUcRu6ebrexBiePo" ], "script": "base64:BgIuCAISBwoFCAgICAESCAoGCAgICAEIEgQKAggIEgQKAggIEgQKAggBEgUKAwQICAwAB1ZFUlNJT04CC1BMTGlxLTEuMC4yAAZTY2FsZTgAgMLXLwAHU2NhbGUxNgCAgIT+pt7hEQENZ2V0QXNzZXRCeXRlcwEKYXNzZXRJZFN0cgMJAAACBQphc3NldElkU3RyAgVXQVZFUwUEdW5pdAkA2QQBBQphc3NldElkU3RyARZ2ZXJpZnlMaXF1aWRhdG9yQWNjZXNzAQdhZGRyZXNzCQECIT0CCQCzCQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwIRc2V0dXBfbGlxdWlkYXRvcnMCAAkApQgBBQdhZGRyZXNzBQR1bml0ABNNYXhTaGFyZVRvTGlxdWlkYXRlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCGXNldHVwX21heFNoYXJlVG9MaXF1aWRhdGUAZAAQTGlxdWlkYXRpb25EZWxheQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAhZzZXR1cF9saXF1aWRhdGlvbkRlbGF5AAoAEExpcXVpZGF0b3JSZXdhcmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwIWc2V0dXBfbGlxdWlkYXRvclJld2FyZAAKABFCYWREZWJ0TGlxQWxsb3dlZAkAZgIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwIXc2V0dXBfYmFkRGVidExpcUFsbG93ZWQAAAAAAA1PcmFjbGVBZGRyZXNzCQELdmFsdWVPckVsc2UCCQCmCAEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwIUc2V0dXBfYWRkcmVzc19vcmFjbGUCAAkBB0FkZHJlc3MBARoBV0lm0MvzivVXeq38IW9xxVuJiCvQgbOxfwAHbWFya2V0cwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzAg1zZXR1cF9tYXJrZXRzCQC5CQIJAMwIAgIjM1BIcHVRVVBWVW9SM0FZekZlSnplV0pmWUxzTFRtV3NzVkgFA25pbAIBLAEWZ2V0VXNlckJhbGFuY2VJTlRFUk5BTAMGbWFya2V0B2FkZHJlc3MNbWludXNCb3Jyb3dlZAoBDHRyeUdldFN0cmluZwEDa2V5BAckbWF0Y2gwCQCdCAIFBm1hcmtldAUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIACgENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBm1hcmtldAUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAACgENZ2V0VG9rZW5QcmljZQEKYXNzZXRJZFN0cgMDCQAAAgUKYXNzZXRJZFN0cgIsOXdjM0xYTkE0VEVCc1h5S3RvTEU5bXJiREQ3V01IWHZYckNqWnZhYkxBc2kGCQAAAgUKYXNzZXRJZFN0cgIsSEdnYWJUcVVTOFd0VkZVSnpmbXJURE1nRWNjSnVaTEJQaEZnUUZ4dm5zb1cJAJQKAgDAhD0AwIQ9BAVwcmljZQkBEUBleHRyTmF0aXZlKDEwNTApAgUNT3JhY2xlQWRkcmVzcwkArAICBQphc3NldElkU3RyAgdfdHdhcDVCCQCUCgIFBXByaWNlBQVwcmljZQoBDmNhbGNBc3NldFNjYWxlAQphc3NldElkU3RyBAhkZWNpbWFscwMJAAACBQphc3NldElkU3RyAgVXQVZFUwAICAkBBXZhbHVlAQkA7AcBCQDZBAEFCmFzc2V0SWRTdHIIZGVjaW1hbHMJAGwGAAoAAAUIZGVjaW1hbHMAAAAABQRET1dOBAZhc3NldHMJALUJAgkBDHRyeUdldFN0cmluZwECDHNldHVwX3Rva2VucwIBLAQEbHR2cwkAtQkCCQEMdHJ5R2V0U3RyaW5nAQIKc2V0dXBfbHR2cwIBLAQDbHRzCQC1CQIJAQx0cnlHZXRTdHJpbmcBAglzZXR1cF9sdHMCASwKAQFmAgVhY2N1bQRuZXh0AwkAZwIFBG5leHQJAJADAQUGYXNzZXRzBQVhY2N1bQQMdXNlclN1cHBsaWVkCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICBQdhZGRyZXNzAgpfc3VwcGxpZWRfCQCRAwIFBmFzc2V0cwUEbmV4dAQMdXNlckJvcnJvd2VkCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICBQdhZGRyZXNzAgpfYm9ycm93ZWRfCQCRAwIFBmFzc2V0cwUEbmV4dAQTbmVlZFRva2VuQWNjb3VudGluZwMDCQECIT0CBQx1c2VyQm9ycm93ZWQAAAYJAQIhPQIFDHVzZXJTdXBwbGllZAAABgcDBRNuZWVkVG9rZW5BY2NvdW50aW5nBAphc3NldFNjYWxlCQEOY2FsY0Fzc2V0U2NhbGUBCQCRAwIFBmFzc2V0cwUEbmV4dAQKYXNzZXRQcmljZQkBDWdldFRva2VuUHJpY2UBCQCRAwIFBmFzc2V0cwUEbmV4dAkAZQIJAGQCBQVhY2N1bQkAawMJAGsDBQx1c2VyU3VwcGxpZWQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCRAwIFBmFzc2V0cwUEbmV4dAIGX3NSYXRlBQdTY2FsZTE2CAUKYXNzZXRQcmljZQJfMQUKYXNzZXRTY2FsZQMFDW1pbnVzQm9ycm93ZWQJAGsDCQBrAwUMdXNlckJvcnJvd2VkCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkAkQMCBQZhc3NldHMFBG5leHQCBl9iUmF0ZQUHU2NhbGUxNggFCmFzc2V0UHJpY2UCXzEFCmFzc2V0U2NhbGUAAAUFYWNjdW0EBnJlc3VsdAoAAiRsCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALBQNuaWwKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBAWYCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEyCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMBQZyZXN1bHQGAWkBEHByb3h5TGlxdWlkYXRlVjIFBm1hcmtldAt1c2VyQWRkcmVzcw5kZWJ0QXNzZXRJZFN0chJzdXBwbGllZEFzc2V0SWRTdHIGYW1vdW50AwkAAAIJALMJAgUHbWFya2V0cwUGbWFya2V0BQR1bml0CQACAQIgZ2l2ZW4gcG9vbCBhZGRyZXNzIGlzIG5vdCBhIHBvb2wDCQEBIQEJARZ2ZXJpZnlMaXF1aWRhdG9yQWNjZXNzAQgFAWkGY2FsbGVyCQACAQIkbm8gcGVybWlzc2lvbiB0byBwZXJmb3JtIGxpcXVpZGF0aW9uBANpbnYJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUGbWFya2V0AgtsaXF1aWRhdGVWMgkAzAgCBwkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBRJzdXBwbGllZEFzc2V0SWRTdHIFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEFzc2V0Qnl0ZXMBBQ5kZWJ0QXNzZXRJZFN0cgUGYW1vdW50BQNuaWwDCQAAAgUDaW52BQNpbnYEEnVzZXJCb3Jyb3dlZEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCCQERQGV4dHJOYXRpdmUoMTA2MikBBQZtYXJrZXQJAKwCAgkArAICBQt1c2VyQWRkcmVzcwIKX2JvcnJvd2VkXwUOZGVidEFzc2V0SWRTdHIAAAMJAGYCAAAFEnVzZXJCb3Jyb3dlZEFtb3VudAkAAgECL3RyYW5zYWN0aW9uIGxlYWRzIHRvIGEgbmVnYXRpdmUgYm9ycm93ZWQgYW1vdW50BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQcHJveHlMaXF1aWRhdGVWMwYGbWFya2V0C3VzZXJBZGRyZXNzDmRlYnRBc3NldElkU3RyEnN1cHBsaWVkQXNzZXRJZFN0cgZhbW91bnQIcm91dGVTdHIDCQAAAgkAswkCBQdtYXJrZXRzBQZtYXJrZXQFBHVuaXQJAAIBAiRnaXZlbiBtYXJrZXQgYWRkcmVzcyBpcyBub3QgYSBtYXJrZXQDCQEBIQEJARZ2ZXJpZnlMaXF1aWRhdG9yQWNjZXNzAQgFAWkGY2FsbGVyCQACAQIkbm8gcGVybWlzc2lvbiB0byBwZXJmb3JtIGxpcXVpZGF0aW9uBA1tYXJrZXRBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBQZtYXJrZXQEBXNSYXRlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQ1tYXJrZXRBZGRyZXNzCQCsAgIFEnN1cHBsaWVkQXNzZXRJZFN0cgIGX3NSYXRlBAdzQW1vdW50CQERQGV4dHJOYXRpdmUoMTA1MCkCBQ1tYXJrZXRBZGRyZXNzCQCsAgIJAKwCAgULdXNlckFkZHJlc3MCCl9zdXBwbGllZF8FEnN1cHBsaWVkQXNzZXRJZFN0cgQOc3VwcGxpZWRBbW91bnQJAGsDBQdzQW1vdW50BQVzUmF0ZQUHU2NhbGUxNgQWbGFzdExpcUZvck1hcmtldEtleVN0cgkArAICCQCsAgICD2hpc3RvcnlfbWFya2V0XwUGbWFya2V0AhBfbGFzdExpcXVpZGF0aW9uBBVsYXN0TGlxdWlkYXRpb25LZXlTdHIJAKwCAgkArAICAg1oaXN0b3J5X3VzZXJfBQt1c2VyQWRkcmVzcwIQX2xhc3RMaXF1aWRhdGlvbgQPbGFzdExpcXVpZGF0aW9uCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFFWxhc3RMaXF1aWRhdGlvbktleVN0cgAAAwkAZgIFBmFtb3VudAkAawMFE01heFNoYXJlVG9MaXF1aWRhdGUFDnN1cHBsaWVkQW1vdW50AJBOCQACAQImc2hvdWxkIGxpcXVpZGF0ZSBzbWFsbGVyIHBhcnQgcGVyIHRpbWUDCQBmAgkAZAIFD2xhc3RMaXF1aWRhdGlvbgUQTGlxdWlkYXRpb25EZWxheQUGaGVpZ2h0CQACAQIUY2Fubm90IGxpcXVpZGF0ZSB5ZXQEA2ludgkA/AcEBQ1tYXJrZXRBZGRyZXNzAglsaXF1aWRhdGUJAMwIAgcJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUGYW1vdW50CQDMCAIFEnN1cHBsaWVkQXNzZXRJZFN0cgkAzAgCBQ5kZWJ0QXNzZXRJZFN0cgkAzAgCBQhyb3V0ZVN0cgUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYEEnVzZXJCb3Jyb3dlZEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1tYXJrZXRBZGRyZXNzCQCsAgIJAKwCAgULdXNlckFkZHJlc3MCCl9ib3Jyb3dlZF8FDmRlYnRBc3NldElkU3RyAAAEDnVzZXJVc2RCYWxhbmNlCQEWZ2V0VXNlckJhbGFuY2VJTlRFUk5BTAMFDW1hcmtldEFkZHJlc3MFC3VzZXJBZGRyZXNzBgMJAGYCAAAFEnVzZXJCb3Jyb3dlZEFtb3VudAkAAgECL3RyYW5zYWN0aW9uIGxlYWRzIHRvIGEgbmVnYXRpdmUgYm9ycm93ZWQgYW1vdW50AwMJAQEhAQURQmFkRGVidExpcUFsbG93ZWQJAGcCAAAFDnVzZXJVc2RCYWxhbmNlBwkAAgECH3RyYW5zYWN0aW9uIGxlYWRzIHRvIGEgYmFkIGRlYnQEEGxpcXVpZGF0b3JSZXdhcmQJAGsDBQZhbW91bnQFEExpcXVpZGF0b3JSZXdhcmQAkE4EC3N0YXRzS2V5U3RyCQCsAgIJAKwCAgkArAICAgdyZXdhcmRfCQClCAEIBQFpBmNhbGxlcgIBXwUSc3VwcGxpZWRBc3NldElkU3RyCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQtzdGF0c0tleVN0cgkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwULc3RhdHNLZXlTdHIAAAUQbGlxdWlkYXRvclJld2FyZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUVbGFzdExpcXVpZGF0aW9uS2V5U3RyBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFFmxhc3RMaXFGb3JNYXJrZXRLZXlTdHIFBmhlaWdodAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDHBheW91dFJld2FyZAIKYWRkcmVzc1N0cgphc3NldElkU3RyAwkBAiE9AgkApQgBCAUBaQZjYWxsZXICIzNQTWNNaU1FczZ3NTZOUkdhY2tzWHRGRzV6Uzdkb0U5ZnBMCQACAQIYbm8gYWNjZXNzIHRvIHRoaXMgbWV0aG9kBAtzdGF0c0tleVN0cgkArAICCQCsAgIJAKwCAgIHcmV3YXJkXwUKYWRkcmVzc1N0cgIBXwUKYXNzZXRJZFN0cgQPcmV3YXJkQXZhaWxhYmxlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC3N0YXRzS2V5U3RyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUKYWRkcmVzc1N0cgUPcmV3YXJkQXZhaWxhYmxlCQENZ2V0QXNzZXRCeXRlcwEFCmFzc2V0SWRTdHIJAMwIAgkBDEludGVnZXJFbnRyeQIFC3N0YXRzS2V5U3RyAAAFA25pbAFpAQx1cGRhdGVTdHJpbmcCA2tleQN2YWwDAwkBAiE9AgkApQgBCAUBaQZjYWxsZXICIzNQTWNNaU1FczZ3NTZOUkdhY2tzWHRGRzV6Uzdkb0U5ZnBMCQECIT0CCQClCAEIBQFpBmNhbGxlcgIjM1BIYmRwYUt6ejhFaUFuZ0dIYUZ1MmhWdU5DZHNDNjdxaDMHCQACAQIYbm8gYWNjZXNzIHRvIHRoaXMgbWV0aG9kCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwBaQENdXBkYXRlSW50ZWdlcgIDa2V5A3ZhbAMDCQECIT0CCQClCAEIBQFpBmNhbGxlcgIjM1BNY01pTUVzNnc1Nk5SR2Fja3NYdEZHNXpTN2RvRTlmcEwJAQIhPQIJAKUIAQgFAWkGY2FsbGVyAiMzUEhiZHBhS3p6OEVpQW5nR0hhRnUyaFZ1TkNkc0M2N3FoMwcJAAIBAhhubyBhY2Nlc3MgdG8gdGhpcyBtZXRob2QJAMwIAgkBDEludGVnZXJFbnRyeQIFA2tleQUDdmFsBQNuaWwBaQEWZ2V0VXNlckJhbGFuY2VSRUFET05MWQMFZGVidWcJbWFya2V0U3RyB2FkZHJlc3MEA3JlcwkBFmdldFVzZXJCYWxhbmNlSU5URVJOQUwDCQERQGV4dHJOYXRpdmUoMTA2MikBBQltYXJrZXRTdHIFB2FkZHJlc3MGAwkAAAIFBWRlYnVnBgkAAgEJAKQDAQUDcmVzCQCUCgIFA25pbAUDcmVzAD/2Xns=", "height": 4017673, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ASKfjah4pEGv9MGWBx68zK7EqtcSbmjekuLmQWWU76ew Next: tJfYezoWRQHALRdTQT13jZTRZwirE2SgxdFSXsKPgoR Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 100000000
4+let a = "PLLiq-1.0.2"
55
6-let b = 10000000000000000
6+let b = 100000000
77
8-func c (d) = if ((d == "WAVES"))
8+let c = 10000000000000000
9+
10+func d (e) = if ((e == "WAVES"))
911 then unit
10- else fromBase58String(d)
12+ else fromBase58String(e)
1113
1214
13-func e (f) = (indexOf(valueOrElse(getString(this, "setup_liquidators"), ""), toString(f)) != unit)
15+func f (g) = (indexOf(valueOrElse(getString(this, "setup_liquidators"), ""), toString(g)) != unit)
1416
1517
16-let g = valueOrElse(getInteger(this, "setup_maxShareToLiquidate"), 100)
18+let h = valueOrElse(getInteger(this, "setup_maxShareToLiquidate"), 100)
1719
18-let h = valueOrElse(getInteger(this, "setup_liquidationDelay"), 10)
20+let i = valueOrElse(getInteger(this, "setup_liquidationDelay"), 10)
1921
20-let i = valueOrElse(getInteger(this, "setup_liquidatorReward"), 10)
22+let j = valueOrElse(getInteger(this, "setup_liquidatorReward"), 10)
2123
22-let j = (valueOrElse(getInteger(this, "setup_badDebtLiqAllowed"), 0) > 0)
24+let k = (valueOrElse(getInteger(this, "setup_badDebtLiqAllowed"), 0) > 0)
2325
24-let k = valueOrElse(addressFromString(valueOrElse(getString(this, "setup_address_oracle"), "")), Address(base58'3P8d1E1BLKoD52y3bQJ1bDTd2TD1gpaLn9t'))
26+let l = valueOrElse(addressFromString(valueOrElse(getString(this, "setup_address_oracle"), "")), Address(base58'3P8d1E1BLKoD52y3bQJ1bDTd2TD1gpaLn9t'))
2527
26-let l = valueOrElse(getString(this, "setup_markets"), makeString(["3PHpuQUPVUoR3AYzFeJzeWJfYLsLTmWssVH"], ","))
28+let m = valueOrElse(getString(this, "setup_markets"), makeString(["3PHpuQUPVUoR3AYzFeJzeWJfYLsLTmWssVH"], ","))
2729
28-func m (n,f,o) = {
29- func p (q) = {
30- let r = getString(n, q)
31- if ($isInstanceOf(r, "String"))
30+func n (o,g,p) = {
31+ func q (r) = {
32+ let s = getString(o, r)
33+ if ($isInstanceOf(s, "String"))
3234 then {
33- let s = r
34- s
35+ let t = s
36+ t
3537 }
3638 else ""
3739 }
3840
39- func t (q) = {
40- let r = getInteger(n, q)
41- if ($isInstanceOf(r, "Int"))
41+ func u (r) = {
42+ let s = getInteger(o, r)
43+ if ($isInstanceOf(s, "Int"))
4244 then {
43- let s = r
44- s
45+ let t = s
46+ t
4547 }
4648 else 0
4749 }
4850
49- func u (d) = if (if ((d == "9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi"))
51+ func v (e) = if (if ((e == "9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi"))
5052 then true
51- else (d == "HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW"))
53+ else (e == "HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW"))
5254 then $Tuple2(1000000, 1000000)
5355 else {
54- let v = getIntegerValue(k, (d + "_twap5B"))
55- $Tuple2(v, v)
56+ let w = getIntegerValue(l, (e + "_twap5B"))
57+ $Tuple2(w, w)
5658 }
5759
58- func w (d) = {
59- let x = if ((d == "WAVES"))
60+ func x (e) = {
61+ let y = if ((e == "WAVES"))
6062 then 8
61- else value(assetInfo(fromBase58String(d))).decimals
62- pow(10, 0, x, 0, 0, DOWN)
63+ else value(assetInfo(fromBase58String(e))).decimals
64+ pow(10, 0, y, 0, 0, DOWN)
6365 }
6466
65- let y = split(p("setup_tokens"), ",")
66- let z = split(p("setup_ltvs"), ",")
67- let A = split(p("setup_lts"), ",")
68- func B (C,D) = if ((D >= size(y)))
69- then C
67+ let z = split(q("setup_tokens"), ",")
68+ let A = split(q("setup_ltvs"), ",")
69+ let B = split(q("setup_lts"), ",")
70+ func C (D,E) = if ((E >= size(z)))
71+ then D
7072 else {
71- let E = t(((f + "_supplied_") + y[D]))
72- let F = t(((f + "_borrowed_") + y[D]))
73- let G = if (if ((F != 0))
73+ let F = u(((g + "_supplied_") + z[E]))
74+ let G = u(((g + "_borrowed_") + z[E]))
75+ let H = if (if ((G != 0))
7476 then true
75- else (E != 0))
77+ else (F != 0))
7678 then true
7779 else false
78- if (G)
80+ if (H)
7981 then {
80- let H = w(y[D])
81- let I = u(y[D])
82- ((C + fraction(fraction(E, t((y[D] + "_sRate")), b), I._1, H)) - (if (o)
83- then fraction(fraction(F, t((y[D] + "_bRate")), b), I._1, H)
82+ let I = x(z[E])
83+ let J = v(z[E])
84+ ((D + fraction(fraction(F, u((z[E] + "_sRate")), c), J._1, I)) - (if (p)
85+ then fraction(fraction(G, u((z[E] + "_bRate")), c), J._1, I)
8486 else 0))
8587 }
86- else C
88+ else D
8789 }
8890
89- let J = {
90- let K = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
91- let L = size(K)
92- let M = 0
93- func N (O,P) = if ((P >= L))
94- then O
95- else B(O, K[P])
91+ let K = {
92+ let L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
93+ let M = size(L)
94+ let N = 0
95+ func O (P,Q) = if ((Q >= M))
96+ then P
97+ else C(P, L[Q])
9698
97- func Q (O,P) = if ((P >= L))
98- then O
99+ func R (P,Q) = if ((Q >= M))
100+ then P
99101 else throw("List size exceeds 12")
100102
101- Q(N(N(N(N(N(N(N(N(N(N(N(N(M, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12)
103+ R(O(O(O(O(O(O(O(O(O(O(O(O(N, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12)
102104 }
103- J
105+ K
104106 }
105107
106108
107-@Callable(R)
108-func proxyLiquidateV2 (n,S,T,U,V) = if ((indexOf(l, n) == unit))
109+@Callable(S)
110+func proxyLiquidateV2 (o,T,U,V,W) = if ((indexOf(m, o) == unit))
109111 then throw("given pool address is not a pool")
110- else {
111- let W = invoke(addressFromStringValue(n), "liquidateV2", [false, S, U], [AttachedPayment(c(T), V)])
112- if ((W == W))
113- then nil
114- else throw("Strict value is not equal to itself.")
115- }
112+ else if (!(f(S.caller)))
113+ then throw("no permission to perform liquidation")
114+ else {
115+ let X = invoke(addressFromStringValue(o), "liquidateV2", [false, T, V], [AttachedPayment(d(U), W)])
116+ if ((X == X))
117+ then {
118+ let Y = valueOrElse(getInteger(addressFromStringValue(o), ((T + "_borrowed_") + U)), 0)
119+ if ((0 > Y))
120+ then throw("transaction leads to a negative borrowed amount")
121+ else nil
122+ }
123+ else throw("Strict value is not equal to itself.")
124+ }
116125
117126
118127
119-@Callable(R)
120-func proxyLiquidateV3 (n,S,T,U,V,X) = if ((indexOf(l, n) == unit))
128+@Callable(S)
129+func proxyLiquidateV3 (o,T,U,V,W,Z) = if ((indexOf(m, o) == unit))
121130 then throw("given market address is not a market")
122- else if (!(e(R.caller)))
131+ else if (!(f(S.caller)))
123132 then throw("no permission to perform liquidation")
124133 else {
125- let Y = addressFromStringValue(n)
126- let Z = getIntegerValue(Y, (U + "_sRate"))
127- let aa = getIntegerValue(Y, ((S + "_supplied_") + U))
128- let ab = fraction(aa, Z, b)
129- let ac = (("history_market_" + n) + "_lastLiquidation")
130- let ad = (("history_user_" + S) + "_lastLiquidation")
131- let ae = valueOrElse(getInteger(this, ad), 0)
132- if ((V > fraction(g, ab, 10000)))
134+ let aa = addressFromStringValue(o)
135+ let ab = getIntegerValue(aa, (V + "_sRate"))
136+ let ac = getIntegerValue(aa, ((T + "_supplied_") + V))
137+ let ad = fraction(ac, ab, c)
138+ let ae = (("history_market_" + o) + "_lastLiquidation")
139+ let af = (("history_user_" + T) + "_lastLiquidation")
140+ let ag = valueOrElse(getInteger(this, af), 0)
141+ if ((W > fraction(h, ad, 10000)))
133142 then throw("should liquidate smaller part per time")
134- else if (((ae + h) > height))
143+ else if (((ag + i) > height))
135144 then throw("cannot liquidate yet")
136145 else {
137- let W = invoke(Y, "liquidate", [false, S, V, U, T, X], nil)
138- if ((W == W))
146+ let X = invoke(aa, "liquidate", [false, T, W, V, U, Z], nil)
147+ if ((X == X))
139148 then {
140- let af = valueOrElse(getInteger(Y, ((S + "_borrowed_") + T)), 0)
141- let ag = m(Y, S, true)
142- if ((0 > af))
149+ let Y = valueOrElse(getInteger(aa, ((T + "_borrowed_") + U)), 0)
150+ let ah = n(aa, T, true)
151+ if ((0 > Y))
143152 then throw("transaction leads to a negative borrowed amount")
144- else if (if (!(j))
145- then (0 >= ag)
153+ else if (if (!(k))
154+ then (0 >= ah)
146155 else false)
147156 then throw("transaction leads to a bad debt")
148157 else {
149- let ah = fraction(V, i, 10000)
150- let ai = ((("reward_" + toString(R.caller)) + "_") + U)
151-[IntegerEntry(ai, (valueOrElse(getInteger(this, ai), 0) + ah)), IntegerEntry(ad, height), IntegerEntry(ac, height)]
158+ let ai = fraction(W, j, 10000)
159+ let aj = ((("reward_" + toString(S.caller)) + "_") + V)
160+[IntegerEntry(aj, (valueOrElse(getInteger(this, aj), 0) + ai)), IntegerEntry(af, height), IntegerEntry(ae, height)]
152161 }
153162 }
154163 else throw("Strict value is not equal to itself.")
157166
158167
159168
160-@Callable(R)
161-func payoutReward (aj,d) = if ((toString(R.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
169+@Callable(S)
170+func payoutReward (ak,e) = if ((toString(S.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
162171 then throw("no access to this method")
163172 else {
164- let ai = ((("reward_" + aj) + "_") + d)
165- let ak = valueOrElse(getInteger(this, ai), 0)
166-[ScriptTransfer(addressFromStringValue(aj), ak, c(d)), IntegerEntry(ai, 0)]
173+ let aj = ((("reward_" + ak) + "_") + e)
174+ let al = valueOrElse(getInteger(this, aj), 0)
175+[ScriptTransfer(addressFromStringValue(ak), al, d(e)), IntegerEntry(aj, 0)]
167176 }
168177
169178
170179
171-@Callable(R)
172-func updateString (q,al) = if (if ((toString(R.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
173- then (toString(R.caller) != "3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3")
180+@Callable(S)
181+func updateString (r,am) = if (if ((toString(S.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
182+ then (toString(S.caller) != "3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3")
174183 else false)
175184 then throw("no access to this method")
176- else [StringEntry(q, al)]
185+ else [StringEntry(r, am)]
177186
178187
179188
180-@Callable(R)
181-func updateInteger (q,al) = if (if ((toString(R.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
182- then (toString(R.caller) != "3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3")
189+@Callable(S)
190+func updateInteger (r,am) = if (if ((toString(S.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
191+ then (toString(S.caller) != "3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3")
183192 else false)
184193 then throw("no access to this method")
185- else [IntegerEntry(q, al)]
194+ else [IntegerEntry(r, am)]
186195
187196
188197
189-@Callable(R)
190-func getUserBalanceREADONLY (am,an,f) = {
191- let ao = m(addressFromStringValue(an), f, true)
192- if ((am == true))
193- then throw(toString(ao))
194- else $Tuple2(nil, ao)
198+@Callable(S)
199+func getUserBalanceREADONLY (an,ao,g) = {
200+ let ap = n(addressFromStringValue(ao), g, true)
201+ if ((an == true))
202+ then throw(toString(ap))
203+ else $Tuple2(nil, ap)
195204 }
196205
197206
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 100000000
4+let a = "PLLiq-1.0.2"
55
6-let b = 10000000000000000
6+let b = 100000000
77
8-func c (d) = if ((d == "WAVES"))
8+let c = 10000000000000000
9+
10+func d (e) = if ((e == "WAVES"))
911 then unit
10- else fromBase58String(d)
12+ else fromBase58String(e)
1113
1214
13-func e (f) = (indexOf(valueOrElse(getString(this, "setup_liquidators"), ""), toString(f)) != unit)
15+func f (g) = (indexOf(valueOrElse(getString(this, "setup_liquidators"), ""), toString(g)) != unit)
1416
1517
16-let g = valueOrElse(getInteger(this, "setup_maxShareToLiquidate"), 100)
18+let h = valueOrElse(getInteger(this, "setup_maxShareToLiquidate"), 100)
1719
18-let h = valueOrElse(getInteger(this, "setup_liquidationDelay"), 10)
20+let i = valueOrElse(getInteger(this, "setup_liquidationDelay"), 10)
1921
20-let i = valueOrElse(getInteger(this, "setup_liquidatorReward"), 10)
22+let j = valueOrElse(getInteger(this, "setup_liquidatorReward"), 10)
2123
22-let j = (valueOrElse(getInteger(this, "setup_badDebtLiqAllowed"), 0) > 0)
24+let k = (valueOrElse(getInteger(this, "setup_badDebtLiqAllowed"), 0) > 0)
2325
24-let k = valueOrElse(addressFromString(valueOrElse(getString(this, "setup_address_oracle"), "")), Address(base58'3P8d1E1BLKoD52y3bQJ1bDTd2TD1gpaLn9t'))
26+let l = valueOrElse(addressFromString(valueOrElse(getString(this, "setup_address_oracle"), "")), Address(base58'3P8d1E1BLKoD52y3bQJ1bDTd2TD1gpaLn9t'))
2527
26-let l = valueOrElse(getString(this, "setup_markets"), makeString(["3PHpuQUPVUoR3AYzFeJzeWJfYLsLTmWssVH"], ","))
28+let m = valueOrElse(getString(this, "setup_markets"), makeString(["3PHpuQUPVUoR3AYzFeJzeWJfYLsLTmWssVH"], ","))
2729
28-func m (n,f,o) = {
29- func p (q) = {
30- let r = getString(n, q)
31- if ($isInstanceOf(r, "String"))
30+func n (o,g,p) = {
31+ func q (r) = {
32+ let s = getString(o, r)
33+ if ($isInstanceOf(s, "String"))
3234 then {
33- let s = r
34- s
35+ let t = s
36+ t
3537 }
3638 else ""
3739 }
3840
39- func t (q) = {
40- let r = getInteger(n, q)
41- if ($isInstanceOf(r, "Int"))
41+ func u (r) = {
42+ let s = getInteger(o, r)
43+ if ($isInstanceOf(s, "Int"))
4244 then {
43- let s = r
44- s
45+ let t = s
46+ t
4547 }
4648 else 0
4749 }
4850
49- func u (d) = if (if ((d == "9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi"))
51+ func v (e) = if (if ((e == "9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi"))
5052 then true
51- else (d == "HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW"))
53+ else (e == "HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW"))
5254 then $Tuple2(1000000, 1000000)
5355 else {
54- let v = getIntegerValue(k, (d + "_twap5B"))
55- $Tuple2(v, v)
56+ let w = getIntegerValue(l, (e + "_twap5B"))
57+ $Tuple2(w, w)
5658 }
5759
58- func w (d) = {
59- let x = if ((d == "WAVES"))
60+ func x (e) = {
61+ let y = if ((e == "WAVES"))
6062 then 8
61- else value(assetInfo(fromBase58String(d))).decimals
62- pow(10, 0, x, 0, 0, DOWN)
63+ else value(assetInfo(fromBase58String(e))).decimals
64+ pow(10, 0, y, 0, 0, DOWN)
6365 }
6466
65- let y = split(p("setup_tokens"), ",")
66- let z = split(p("setup_ltvs"), ",")
67- let A = split(p("setup_lts"), ",")
68- func B (C,D) = if ((D >= size(y)))
69- then C
67+ let z = split(q("setup_tokens"), ",")
68+ let A = split(q("setup_ltvs"), ",")
69+ let B = split(q("setup_lts"), ",")
70+ func C (D,E) = if ((E >= size(z)))
71+ then D
7072 else {
71- let E = t(((f + "_supplied_") + y[D]))
72- let F = t(((f + "_borrowed_") + y[D]))
73- let G = if (if ((F != 0))
73+ let F = u(((g + "_supplied_") + z[E]))
74+ let G = u(((g + "_borrowed_") + z[E]))
75+ let H = if (if ((G != 0))
7476 then true
75- else (E != 0))
77+ else (F != 0))
7678 then true
7779 else false
78- if (G)
80+ if (H)
7981 then {
80- let H = w(y[D])
81- let I = u(y[D])
82- ((C + fraction(fraction(E, t((y[D] + "_sRate")), b), I._1, H)) - (if (o)
83- then fraction(fraction(F, t((y[D] + "_bRate")), b), I._1, H)
82+ let I = x(z[E])
83+ let J = v(z[E])
84+ ((D + fraction(fraction(F, u((z[E] + "_sRate")), c), J._1, I)) - (if (p)
85+ then fraction(fraction(G, u((z[E] + "_bRate")), c), J._1, I)
8486 else 0))
8587 }
86- else C
88+ else D
8789 }
8890
89- let J = {
90- let K = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
91- let L = size(K)
92- let M = 0
93- func N (O,P) = if ((P >= L))
94- then O
95- else B(O, K[P])
91+ let K = {
92+ let L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
93+ let M = size(L)
94+ let N = 0
95+ func O (P,Q) = if ((Q >= M))
96+ then P
97+ else C(P, L[Q])
9698
97- func Q (O,P) = if ((P >= L))
98- then O
99+ func R (P,Q) = if ((Q >= M))
100+ then P
99101 else throw("List size exceeds 12")
100102
101- Q(N(N(N(N(N(N(N(N(N(N(N(N(M, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12)
103+ R(O(O(O(O(O(O(O(O(O(O(O(O(N, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12)
102104 }
103- J
105+ K
104106 }
105107
106108
107-@Callable(R)
108-func proxyLiquidateV2 (n,S,T,U,V) = if ((indexOf(l, n) == unit))
109+@Callable(S)
110+func proxyLiquidateV2 (o,T,U,V,W) = if ((indexOf(m, o) == unit))
109111 then throw("given pool address is not a pool")
110- else {
111- let W = invoke(addressFromStringValue(n), "liquidateV2", [false, S, U], [AttachedPayment(c(T), V)])
112- if ((W == W))
113- then nil
114- else throw("Strict value is not equal to itself.")
115- }
112+ else if (!(f(S.caller)))
113+ then throw("no permission to perform liquidation")
114+ else {
115+ let X = invoke(addressFromStringValue(o), "liquidateV2", [false, T, V], [AttachedPayment(d(U), W)])
116+ if ((X == X))
117+ then {
118+ let Y = valueOrElse(getInteger(addressFromStringValue(o), ((T + "_borrowed_") + U)), 0)
119+ if ((0 > Y))
120+ then throw("transaction leads to a negative borrowed amount")
121+ else nil
122+ }
123+ else throw("Strict value is not equal to itself.")
124+ }
116125
117126
118127
119-@Callable(R)
120-func proxyLiquidateV3 (n,S,T,U,V,X) = if ((indexOf(l, n) == unit))
128+@Callable(S)
129+func proxyLiquidateV3 (o,T,U,V,W,Z) = if ((indexOf(m, o) == unit))
121130 then throw("given market address is not a market")
122- else if (!(e(R.caller)))
131+ else if (!(f(S.caller)))
123132 then throw("no permission to perform liquidation")
124133 else {
125- let Y = addressFromStringValue(n)
126- let Z = getIntegerValue(Y, (U + "_sRate"))
127- let aa = getIntegerValue(Y, ((S + "_supplied_") + U))
128- let ab = fraction(aa, Z, b)
129- let ac = (("history_market_" + n) + "_lastLiquidation")
130- let ad = (("history_user_" + S) + "_lastLiquidation")
131- let ae = valueOrElse(getInteger(this, ad), 0)
132- if ((V > fraction(g, ab, 10000)))
134+ let aa = addressFromStringValue(o)
135+ let ab = getIntegerValue(aa, (V + "_sRate"))
136+ let ac = getIntegerValue(aa, ((T + "_supplied_") + V))
137+ let ad = fraction(ac, ab, c)
138+ let ae = (("history_market_" + o) + "_lastLiquidation")
139+ let af = (("history_user_" + T) + "_lastLiquidation")
140+ let ag = valueOrElse(getInteger(this, af), 0)
141+ if ((W > fraction(h, ad, 10000)))
133142 then throw("should liquidate smaller part per time")
134- else if (((ae + h) > height))
143+ else if (((ag + i) > height))
135144 then throw("cannot liquidate yet")
136145 else {
137- let W = invoke(Y, "liquidate", [false, S, V, U, T, X], nil)
138- if ((W == W))
146+ let X = invoke(aa, "liquidate", [false, T, W, V, U, Z], nil)
147+ if ((X == X))
139148 then {
140- let af = valueOrElse(getInteger(Y, ((S + "_borrowed_") + T)), 0)
141- let ag = m(Y, S, true)
142- if ((0 > af))
149+ let Y = valueOrElse(getInteger(aa, ((T + "_borrowed_") + U)), 0)
150+ let ah = n(aa, T, true)
151+ if ((0 > Y))
143152 then throw("transaction leads to a negative borrowed amount")
144- else if (if (!(j))
145- then (0 >= ag)
153+ else if (if (!(k))
154+ then (0 >= ah)
146155 else false)
147156 then throw("transaction leads to a bad debt")
148157 else {
149- let ah = fraction(V, i, 10000)
150- let ai = ((("reward_" + toString(R.caller)) + "_") + U)
151-[IntegerEntry(ai, (valueOrElse(getInteger(this, ai), 0) + ah)), IntegerEntry(ad, height), IntegerEntry(ac, height)]
158+ let ai = fraction(W, j, 10000)
159+ let aj = ((("reward_" + toString(S.caller)) + "_") + V)
160+[IntegerEntry(aj, (valueOrElse(getInteger(this, aj), 0) + ai)), IntegerEntry(af, height), IntegerEntry(ae, height)]
152161 }
153162 }
154163 else throw("Strict value is not equal to itself.")
155164 }
156165 }
157166
158167
159168
160-@Callable(R)
161-func payoutReward (aj,d) = if ((toString(R.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
169+@Callable(S)
170+func payoutReward (ak,e) = if ((toString(S.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
162171 then throw("no access to this method")
163172 else {
164- let ai = ((("reward_" + aj) + "_") + d)
165- let ak = valueOrElse(getInteger(this, ai), 0)
166-[ScriptTransfer(addressFromStringValue(aj), ak, c(d)), IntegerEntry(ai, 0)]
173+ let aj = ((("reward_" + ak) + "_") + e)
174+ let al = valueOrElse(getInteger(this, aj), 0)
175+[ScriptTransfer(addressFromStringValue(ak), al, d(e)), IntegerEntry(aj, 0)]
167176 }
168177
169178
170179
171-@Callable(R)
172-func updateString (q,al) = if (if ((toString(R.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
173- then (toString(R.caller) != "3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3")
180+@Callable(S)
181+func updateString (r,am) = if (if ((toString(S.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
182+ then (toString(S.caller) != "3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3")
174183 else false)
175184 then throw("no access to this method")
176- else [StringEntry(q, al)]
185+ else [StringEntry(r, am)]
177186
178187
179188
180-@Callable(R)
181-func updateInteger (q,al) = if (if ((toString(R.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
182- then (toString(R.caller) != "3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3")
189+@Callable(S)
190+func updateInteger (r,am) = if (if ((toString(S.caller) != "3PMcMiMEs6w56NRGacksXtFG5zS7doE9fpL"))
191+ then (toString(S.caller) != "3PHbdpaKzz8EiAngGHaFu2hVuNCdsC67qh3")
183192 else false)
184193 then throw("no access to this method")
185- else [IntegerEntry(q, al)]
194+ else [IntegerEntry(r, am)]
186195
187196
188197
189-@Callable(R)
190-func getUserBalanceREADONLY (am,an,f) = {
191- let ao = m(addressFromStringValue(an), f, true)
192- if ((am == true))
193- then throw(toString(ao))
194- else $Tuple2(nil, ao)
198+@Callable(S)
199+func getUserBalanceREADONLY (an,ao,g) = {
200+ let ap = n(addressFromStringValue(ao), g, true)
201+ if ((an == true))
202+ then throw(toString(ap))
203+ else $Tuple2(nil, ap)
195204 }
196205
197206

github/deemru/w8io/873ac7e 
76.49 ms