tx · jfgpPEEwCUBLbdRbH6KsSP7qa5PT9BrVeugnF5xu6Lt

3PJUm112svcu4gPU9GKpsBGwYNEVQEPiQ1t:  -0.01000000 Waves

2022.11.30 16:14 [3405349] smart account 3PJUm112svcu4gPU9GKpsBGwYNEVQEPiQ1t > SELF 0.00000000 Waves

{ "type": 13, "id": "jfgpPEEwCUBLbdRbH6KsSP7qa5PT9BrVeugnF5xu6Lt", "fee": 1000000, "feeAssetId": null, "timestamp": 1669814130754, "version": 2, "chainId": 87, "sender": "3PJUm112svcu4gPU9GKpsBGwYNEVQEPiQ1t", "senderPublicKey": "6BTduxfT4CkTidY6P35nYzafiLpun4QLUZCQUU6pcJQM", "proofs": [ "25B9MwseH4NoEEyHNC5m5JLeuARM3vStdndyY1wb2ABX4dkfmTzybhEsDwzM6m3MguhDKQN1PwoYYvJJm1d9QqfF" ], "script": "base64:BgIeCAISABIDCgEBEgMKAQgSAwoBBBIECgIECBIDCgEEFQAGU2NhbGU2AMCEPQAGU2NhbGU4AIDC1y8AB1NjYWxlMTYJAGgCBQZTY2FsZTgFBlNjYWxlOAATcG9maXRBY2NvdW50QWRkcmVzcwkBB0FkZHJlc3MBARoBV6lAs/JQjYpYhnwlRsr973lVvk50FZ4aQwAHYXNzZXRJZAIsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAACnZhbGlkYXRvcnMJAMwIAgIjM1BFcUM5NTMzaDZBRG5KdlhiOGN2WGNhU2tlY2Q5WVROdnoFA25pbAALcHV6emxlUG9vbHMJAMwIAgIjM1A0REs1VnpEd0wzdmZjNWFoVUVodG9lNUJ5Wk55YWNKM1gJAMwIAgIjM1A0dUE1ZXRuWmk0QW1CYWJLaW5xMmJNaVdVOEtjbkhaZEgFA25pbAEKZ2V0QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgRVbml0BAF4BQckbWF0Y2gwCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQEFdmFsdWUBBQdhc3NldElkAQl0cnlHZXRJbnQCB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEJdHJ5R2V0U3RyAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgABDmdldEFzc2V0U3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgIFV0FWRVMBG2dldFB1enpsZVBvb2xTdXBwbGllZEFtb3VudAEOcG9vbEFkZHJlc3NTdHIEC3Bvb2xBZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUOcG9vbEFkZHJlc3NTdHIEBnRva2VucwQHJG1hdGNoMAkAnQgCBQtwb29sQWRkcmVzcwIMc2V0dXBfdG9rZW5zAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcgUHJG1hdGNoMAkAtQkCBQFyAgEsCQACAQkArAICAipDYW5ub3QgZmluZCBzZXR1cF90b2tlbnMgaW4gc3RhdGUgb2YgcG9vbCAFDnBvb2xBZGRyZXNzU3RyBAp0b2tlbkluZGV4BAckbWF0Y2gwCQDPCAIFBnRva2VucwUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgNJbnQEAXIFByRtYXRjaDAFAXIJAAIBCQCsAgIJAKwCAgkArAICAgxjYW5ub3QgZmluZCAFB2Fzc2V0SWQCCCBpbiBwb29sBQ5wb29sQWRkcmVzc1N0cgQSdG9rZW5SYXRlc1Jlc3BvbnNlCQD8BwQFC3Bvb2xBZGRyZXNzAhNjYWxjdWxhdGVUb2tlblJhdGVzCQDMCAIHBQNuaWwFA25pbAMJAAACBRJ0b2tlblJhdGVzUmVzcG9uc2UFEnRva2VuUmF0ZXNSZXNwb25zZQQRdG9rZW5zUmF0ZXNTdHJpbmcEByRtYXRjaDAFEnRva2VuUmF0ZXNSZXNwb25zZQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXIFByRtYXRjaDAFAXIJAAIBCQCsAgICO0Z1bmMgJ2NhbGN1bGF0ZVRva2VuUmF0ZXMnIHJldHVybnMgbm90IHN0cmluZyB2YWx1ZSBpbiBwb29sBQ5wb29sQWRkcmVzc1N0cgQNc3VwcGx5UmF0ZVN0cgkAkQMCCQC1CQIJAJEDAgkAtQkCBRF0b2tlbnNSYXRlc1N0cmluZwIBLAUKdG9rZW5JbmRleAIBfAABBApzdXBwbHlSYXRlBAckbWF0Y2gwCQC2CQEFDXN1cHBseVJhdGVTdHIDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQInQ2Fubm90IHBhcnNlIHN1cHBseSByYXRlIGZyb20gZGVmaSBwb29sBAZzdXBwbHkJAQl0cnlHZXRJbnQCBQtwb29sQWRkcmVzcwkArAICCQCsAgIJAKUIAQUEdGhpcwIKX3N1cHBsaWVkXwUHYXNzZXRJZAQGYW1vdW50CQBrAwUGc3VwcGx5BQpzdXBwbHlSYXRlBQdTY2FsZTE2BQZhbW91bnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BFmdldFRvdGFsU3VwcGxpZWRBbW91bnQABAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIFC2N1cnJlbnRQb29sAgAJAAIBCQCsAgICGUNhbm5vdCBmaW5kIHBvb2wgd2l0aCBpZCAFC2N1cnJlbnRQb29sCQEbZ2V0UHV6emxlUG9vbFN1cHBsaWVkQW1vdW50AQULY3VycmVudFBvb2wBFndpdGhkcmF3RnJvbVB1enpsZVBvb2wCBnBvb2xJZAZhbW91bnQEC3Bvb2xBZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUGcG9vbElkBAp3aXRoZHJhd1R4AwkAZgIFBmFtb3VudAAACQD8BwQFC3Bvb2xBZGRyZXNzAgh3aXRoZHJhdwkAzAgCBQdhc3NldElkCQDMCAIFBmFtb3VudAUDbmlsBQNuaWwCAAMJAAACBQp3aXRoZHJhd1R4BQp3aXRoZHJhd1R4BQp3aXRoZHJhd1R4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ53aXRoZHJhd1Jlc3VsdAAEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDCQAAAgULY3VycmVudFBvb2wCAAkAAgEJAKwCAgIZQ2Fubm90IGZpbmQgcG9vbCB3aXRoIGlkIAULY3VycmVudFBvb2wEBmFtb3VudAkBG2dldFB1enpsZVBvb2xTdXBwbGllZEFtb3VudAEFC2N1cnJlbnRQb29sBAJ0eAkBFndpdGhkcmF3RnJvbVB1enpsZVBvb2wCBQtjdXJyZW50UG9vbAUGYW1vdW50AwkAAAIFAnR4BQJ0eAUCdHgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDHN1cHBseVJlc3VsdAEGcG9vbElkAwkAAAIJAM8IAgULcHV6emxlUG9vbHMFBnBvb2xJZAUEdW5pdAkAAgEJAKwCAgIPVW5rbm93biBwb29sSWQgBQZwb29sSWQECmFzc2V0Qnl0ZXMJANkEAQUHYXNzZXRJZAQHYmFsYW5jZQkBCmdldEJhbGFuY2UBBQphc3NldEJ5dGVzBANpbnYJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBnBvb2xJZAIGc3VwcGx5BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCmFzc2V0Qnl0ZXMFB2JhbGFuY2UFA25pbAMJAAACBQNpbnYFA2ludgkAzAgCCQELU3RyaW5nRW50cnkCAgtjdXJyZW50UG9vbAUGcG9vbElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDmNhbGN1bGF0ZVNSYXRlAAQObGFzdENoZWNrU1JhdGUJAQl0cnlHZXRJbnQCBQR0aGlzAhVnbG9iYWxfbGFzdENoZWNrU1JhdGUEDHN0YWtlZEFtb3VudAkBCXRyeUdldEludAIFBHRoaXMCDWdsb2JhbF9zdGFrZWQED2xhc3RDaGVja0hlaWdodAkBCXRyeUdldEludAIFBHRoaXMCG2dsb2JhbF9sYXN0Q2hlY2tTUmF0ZUhlaWdodAQGYmxvY2tzCQBlAgUGaGVpZ2h0BQ9sYXN0Q2hlY2tIZWlnaHQECGVtaXNzaW9uCQBlAgkBFmdldFRvdGFsU3VwcGxpZWRBbW91bnQACQBrAwUMc3Rha2VkQW1vdW50BQ5sYXN0Q2hlY2tTUmF0ZQUGU2NhbGU4BA9zdGFraW5nRW1pc3Npb24JAGsDBQhlbWlzc2lvbgDAq6YtBQZTY2FsZTgDCQAAAgUMc3Rha2VkQW1vdW50AAAFBlNjYWxlOAQFc1JhdGUJAGQCBQ5sYXN0Q2hlY2tTUmF0ZQkAawMJAGgCBQZibG9ja3MFBlNjYWxlOAUPc3Rha2luZ0VtaXNzaW9uBQxzdGFrZWRBbW91bnQDCQBmAgUGU2NhbGU4BQVzUmF0ZQUGU2NhbGU4BQVzUmF0ZQEMcmVjYWxjUmVzdWx0AQxzdGFrZWRDaGFuZ2UEDHN0YWtlZEFtb3VudAkBCXRyeUdldEludAIFBHRoaXMCDWdsb2JhbF9zdGFrZWQEBXNSYXRlCQEOY2FsY3VsYXRlU1JhdGUABAZwcm9maXQJAGUCCQEWZ2V0VG90YWxTdXBwbGllZEFtb3VudAAJAGsDBQxzdGFrZWRBbW91bnQFBXNSYXRlBQZTY2FsZTgJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUTcG9maXRBY2NvdW50QWRkcmVzcwMJAGYCBQZwcm9maXQAAAUGcHJvZml0AAAJANkEAQUHYXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgINZ2xvYmFsX3N0YWtlZAkAZAIFDHN0YWtlZEFtb3VudAUMc3Rha2VkQ2hhbmdlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVnbG9iYWxfbGFzdENoZWNrU1JhdGUFBXNSYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhtnbG9iYWxfbGFzdENoZWNrU1JhdGVIZWlnaHQFBmhlaWdodAUDbmlsARVjYWxjdWxhdGVTdGFrZWRBbW91bnQBBHVzZXIEBmFtb3VudAkBCXRyeUdldEludAIFBHRoaXMJAKwCAgUEdXNlcgIHX3N0YWtlZAkAawMFBmFtb3VudAkBDmNhbGN1bGF0ZVNSYXRlAAUGU2NhbGU4AQtzdGFrZVJlc3VsdAIEdXNlcgZhbW91bnQEB3NBbW91bnQJAGsDBQZhbW91bnQFBlNjYWxlOAkBDmNhbGN1bGF0ZVNSYXRlAAkAzggCCQEMcmVjYWxjUmVzdWx0AQUHc0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyAgdfc3Rha2VkCQBkAgkBCXRyeUdldEludAIFBHRoaXMJAKwCAgUEdXNlcgIHX3N0YWtlZAUHc0Ftb3VudAUDbmlsAQ11bnN0YWtlUmVzdWx0AgR1c2VyBmFtb3VudAQFc1JhdGUJAQ5jYWxjdWxhdGVTUmF0ZQAEB3NBbW91bnQDCQAAAgUFc1JhdGUAAAUGYW1vdW50CQBrAwUGYW1vdW50BQZTY2FsZTgFBXNSYXRlBAp1c2VyU3Rha2VkCQEJdHJ5R2V0SW50AgUEdGhpcwkArAICBQR1c2VyAgdfc3Rha2VkBA5jdXJyZW50U0Ftb3VudAMJAAACBQVzUmF0ZQAABQp1c2VyU3Rha2VkCQBrAwUKdXNlclN0YWtlZAUGU2NhbGU4BQVzUmF0ZQQNdW5zdGFrZUFtb3VudAMJAGYCBQdzQW1vdW50BQ5jdXJyZW50U0Ftb3VudAUOY3VycmVudFNBbW91bnQFB3NBbW91bnQJAM4IAgkBDHJlY2FsY1Jlc3VsdAEJAQEtAQUHc0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyAgdfc3Rha2VkCQBlAgUOY3VycmVudFNBbW91bnQFDXVuc3Rha2VBbW91bnQFA25pbAYBaQEFc3Rha2UABAR1c2VyCQClCAEIBQFpBmNhbGxlcgQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMDCQBnAgAABQZhbW91bnQGCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJANkEAQUHYXNzZXRJZAkAAgECFmludmFsaWQgdG9rZW4gYXR0YWNoZWQEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wJAM4IAgkBC3N0YWtlUmVzdWx0AgUEdXNlcgUGYW1vdW50CQEMc3VwcGx5UmVzdWx0AQULY3VycmVudFBvb2wBaQEHdW5zdGFrZQEGYW1vdW50BAR1c2VyCQClCAEIBQFpBmNhbGxlcgQLY3VycmVudFBvb2wJAQl0cnlHZXRTdHICBQR0aGlzAgtjdXJyZW50UG9vbAQCdHgJARZ3aXRoZHJhd0Zyb21QdXp6bGVQb29sAgULY3VycmVudFBvb2wFBmFtb3VudAMJAAACBQJ0eAUCdHgJAM4IAgkBDXVuc3Rha2VSZXN1bHQCBQR1c2VyBQZhbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQZhbW91bnQJANkEAQUHYXNzZXRJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCXJlYmFsYW5jZQEGcG9vbElkBAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIJAM8IAgUKdmFsaWRhdG9ycwkApQgBCAUBaQZjYWxsZXIFBHVuaXQJAAIBAg1BY2Nlc3MgZGVuaWVkAwkAAAIFC2N1cnJlbnRQb29sBQZwb29sSWQJAAIBCQCsAgICE0FscmVhZHkgc3VwcGxpZWQgdG8FC2N1cnJlbnRQb29sBAp3aXRoZHJhd1R4CQEOd2l0aGRyYXdSZXN1bHQAAwkAAAIFCndpdGhkcmF3VHgFCndpdGhkcmF3VHgJAM4IAgkBDHN1cHBseVJlc3VsdAEFBnBvb2xJZAkBDHJlY2FsY1Jlc3VsdAEAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhnZXRTUmF0ZQEFZGVidWcECXBhcmFtZXRlcgkBDmNhbGN1bGF0ZVNSYXRlAAMFBWRlYnVnCQACAQkApAMBBQlwYXJhbWV0ZXIJAJQKAgUDbmlsBQlwYXJhbWV0ZXIBaQEPZ2V0U3Rha2VkQW1vdW50AgVkZWJ1Zwt1c2VyQWRkcmVzcwQJcGFyYW1ldGVyCQEVY2FsY3VsYXRlU3Rha2VkQW1vdW50AQULdXNlckFkZHJlc3MDBQVkZWJ1ZwkAAgEJAKQDAQUJcGFyYW1ldGVyCQCUCgIFA25pbAUJcGFyYW1ldGVyAWkBFGdldFRvdGFsU3Rha2VkQW1vdW50AQVkZWJ1ZwQGYW1vdW50CQEJdHJ5R2V0SW50AgUEdGhpcwINZ2xvYmFsX3N0YWtlZAQJcGFyYW1ldGVyCQBrAwUGYW1vdW50CQEOY2FsY3VsYXRlU1JhdGUABQZTY2FsZTgDBQVkZWJ1ZwkAAgEJAKQDAQUJcGFyYW1ldGVyCQCUCgIFA25pbAUJcGFyYW1ldGVyAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tlebXiQiI=", "height": 3405349, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7q4BHjpunpKDeB4rA25QLxWvwsd3n5wcvN7LMKgyC9qU Next: 7VKvLJ8DaojteokigZpo9gREVsfZwrmeALZuzCHR8eme Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000000
55
66 let b = 100000000
77
88 let c = (b * b)
99
1010 let d = Address(base58'3PHMpSJXoCTAJTmdVXgxXAFrkHBRyjNRuMU')
1111
1212 let e = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
1313
1414 let f = ["3PEqC9533h6ADnJvXb8cvXcaSkecd9YTNvz"]
1515
1616 let g = ["3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X", "3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH"]
1717
1818 func h (e) = {
1919 let i = e
2020 if ($isInstanceOf(i, "Unit"))
2121 then {
2222 let j = i
2323 wavesBalance(this).available
2424 }
2525 else assetBalance(this, value(e))
2626 }
2727
2828
2929 func k (l,m) = {
3030 let i = getInteger(l, m)
3131 if ($isInstanceOf(i, "Int"))
3232 then {
3333 let n = i
3434 n
3535 }
3636 else 0
3737 }
3838
3939
4040 func o (l,m) = {
4141 let i = getString(l, m)
4242 if ($isInstanceOf(i, "String"))
4343 then {
4444 let n = i
4545 n
4646 }
4747 else ""
4848 }
4949
5050
5151 func p (e) = {
5252 let i = e
5353 if ($isInstanceOf(i, "ByteVector"))
5454 then {
5555 let n = i
5656 toBase58String(n)
5757 }
5858 else "WAVES"
5959 }
6060
6161
6262 func q (r) = {
6363 let s = Address(fromBase58String(r))
6464 let t = {
6565 let i = getString(s, "setup_tokens")
6666 if ($isInstanceOf(i, "String"))
6767 then {
6868 let u = i
6969 split(u, ",")
7070 }
7171 else throw(("Cannot find setup_tokens in state of pool " + r))
7272 }
7373 let v = {
7474 let i = indexOf(t, e)
7575 if ($isInstanceOf(i, "Int"))
7676 then {
7777 let u = i
7878 u
7979 }
8080 else throw(((("cannot find " + e) + " in pool") + r))
8181 }
8282 let w = invoke(s, "calculateTokenRates", [false], nil)
8383 if ((w == w))
8484 then {
8585 let x = {
8686 let i = w
8787 if ($isInstanceOf(i, "String"))
8888 then {
8989 let u = i
9090 u
9191 }
9292 else throw(("Func 'calculateTokenRates' returns not string value in pool" + r))
9393 }
9494 let y = split(split(x, ",")[v], "|")[1]
9595 let z = {
9696 let i = parseInt(y)
9797 if ($isInstanceOf(i, "Int"))
9898 then {
9999 let A = i
100100 A
101101 }
102102 else throw("Cannot parse supply rate from defi pool")
103103 }
104104 let B = k(s, ((toString(this) + "_supplied_") + e))
105105 let C = fraction(B, z, c)
106106 C
107107 }
108108 else throw("Strict value is not equal to itself.")
109109 }
110110
111111
112112 func D () = {
113113 let E = o(this, "currentPool")
114114 if ((E == ""))
115115 then throw(("Cannot find pool with id " + E))
116116 else q(E)
117117 }
118118
119119
120120 func F (G,C) = {
121121 let s = Address(fromBase58String(G))
122122 let H = if ((C > 0))
123123 then invoke(s, "withdraw", [e, C], nil)
124124 else ""
125125 if ((H == H))
126126 then H
127127 else throw("Strict value is not equal to itself.")
128128 }
129129
130130
131131 func I () = {
132132 let E = o(this, "currentPool")
133133 if ((E == ""))
134134 then throw(("Cannot find pool with id " + E))
135135 else {
136136 let C = q(E)
137137 let J = F(E, C)
138138 if ((J == J))
139139 then J
140140 else throw("Strict value is not equal to itself.")
141141 }
142142 }
143143
144144
145145 func K (G) = if ((indexOf(g, G) == unit))
146146 then throw(("Unknown poolId " + G))
147147 else {
148148 let L = fromBase58String(e)
149149 let M = h(L)
150150 let N = invoke(Address(fromBase58String(G)), "supply", nil, [AttachedPayment(L, M)])
151151 if ((N == N))
152152 then [StringEntry("currentPool", G)]
153153 else throw("Strict value is not equal to itself.")
154154 }
155155
156156
157157 func O () = {
158158 let P = k(this, "global_lastCheckSRate")
159159 let Q = k(this, "global_staked")
160160 let R = k(this, "global_lastCheckSRateHeight")
161161 let S = (height - R)
162162 let T = (D() - fraction(Q, P, b))
163163 let U = fraction(T, 95000000, b)
164164 if ((Q == 0))
165165 then b
166166 else {
167167 let V = (P + fraction((S * b), U, Q))
168168 if ((b > V))
169169 then b
170170 else V
171171 }
172172 }
173173
174174
175175 func W (X) = {
176176 let Q = k(this, "global_staked")
177177 let V = O()
178178 let Y = (D() - fraction(Q, V, b))
179179 [ScriptTransfer(d, if ((Y > 0))
180180 then Y
181181 else 0, fromBase58String(e)), IntegerEntry("global_staked", (Q + X)), IntegerEntry("global_lastCheckSRate", V), IntegerEntry("global_lastCheckSRateHeight", height)]
182182 }
183183
184184
185185 func Z (aa) = {
186186 let C = k(this, (aa + "_staked"))
187187 fraction(C, O(), b)
188188 }
189189
190190
191191 func ab (aa,C) = {
192192 let ac = fraction(C, b, O())
193193 (W(ac) ++ [IntegerEntry((aa + "_staked"), (k(this, (aa + "_staked")) + ac))])
194194 }
195195
196196
197197 func ad (aa,C) = {
198198 let V = O()
199199 let ac = if ((V == 0))
200200 then C
201201 else fraction(C, b, V)
202202 let ae = k(this, (aa + "_staked"))
203203 let af = if ((V == 0))
204204 then ae
205205 else fraction(ae, b, V)
206206 let ag = if ((ac > af))
207207 then af
208208 else ac
209209 (W(-(ac)) ++ [IntegerEntry((aa + "_staked"), (af - ag))])
210210 }
211211
212212
213213 @Callable(ah)
214214 func stake () = {
215215 let aa = toString(ah.caller)
216216 let C = ah.payments[0].amount
217217 if (if ((0 >= C))
218218 then true
219219 else (ah.payments[0].assetId != fromBase58String(e)))
220220 then throw("invalid token attached")
221221 else {
222222 let E = o(this, "currentPool")
223223 (ab(aa, C) ++ K(E))
224224 }
225225 }
226226
227227
228228
229229 @Callable(ah)
230230 func unstake (C) = {
231231 let aa = toString(ah.caller)
232232 let E = o(this, "currentPool")
233233 let J = F(E, C)
234234 if ((J == J))
235235 then (ad(aa, C) ++ [ScriptTransfer(ah.caller, C, fromBase58String(e))])
236236 else throw("Strict value is not equal to itself.")
237237 }
238238
239239
240240
241241 @Callable(ah)
242242 func rebalance (G) = {
243243 let E = o(this, "currentPool")
244244 if ((indexOf(f, toString(ah.caller)) == unit))
245245 then throw("Access denied")
246246 else if ((E == G))
247247 then throw(("Already supplied to" + E))
248248 else {
249249 let H = I()
250250 if ((H == H))
251251 then (K(G) ++ W(0))
252252 else throw("Strict value is not equal to itself.")
253253 }
254254 }
255255
256256
257257
258258 @Callable(ah)
259259 func getSRate (ai) = {
260260 let aj = O()
261261 if (ai)
262262 then throw(toString(aj))
263263 else $Tuple2(nil, aj)
264264 }
265265
266266
267267
268268 @Callable(ah)
269269 func getStakedAmount (ai,ak) = {
270270 let aj = Z(ak)
271271 if (ai)
272272 then throw(toString(aj))
273273 else $Tuple2(nil, aj)
274274 }
275275
276276
277277
278278 @Callable(ah)
279279 func getTotalStakedAmount (ai) = {
280280 let C = k(this, "global_staked")
281281 let aj = fraction(C, O(), b)
282282 if (ai)
283283 then throw(toString(aj))
284284 else $Tuple2(nil, aj)
285285 }
286286
287287
288288 @Verifier(J)
289289 func al () = sigVerify(J.bodyBytes, J.proofs[0], J.senderPublicKey)
290290

github/deemru/w8io/3ef1775 
47.82 ms