tx · Hz9MYiqcFuztybEFVnU57Qofyye9bMhbdiuAerCkuSNA

3P9DaReo3xvAQ5wzEzkF3Qbxm4fmxkoB1ik:  -0.00500000 Waves

2024.03.27 10:18 [4102068] smart account 3P9DaReo3xvAQ5wzEzkF3Qbxm4fmxkoB1ik > SELF 0.00000000 Waves

{ "type": 13, "id": "Hz9MYiqcFuztybEFVnU57Qofyye9bMhbdiuAerCkuSNA", "fee": 500000, "feeAssetId": null, "timestamp": 1711523946819, "version": 2, "chainId": 87, "sender": "3P9DaReo3xvAQ5wzEzkF3Qbxm4fmxkoB1ik", "senderPublicKey": "5Zt1wYPgfh4zJWozYGoGxuudhP7Zh8H1HJTfVzqpJ8LF", "proofs": [ "4ud25WfZW2nAUDoQS2SydPjU1ARLG53R1BzeixyLg5D4YMTXksNrExT7A6iFqfGFMqCrjwZ1Mtu882JVEi4Vpzu4" ], "script": "base64:BgIECAISACMAA1NFUAICX18ADUNPTlRSQUNUX05BTUUCEnd4ZGFvX2Z1bmRpbmcucmlkZQAGU0NBTEU4AIDC1y8ABVdBVkVTAgVXQVZFUwEHd3JhcEVycgEBcwkArAICCQCsAgIFDUNPTlRSQUNUX05BTUUCAjogBQFzAQh0aHJvd0VycgEBcwkAAgEJAQd3cmFwRXJyAQUBcwEPYXNzZXRJZFRvU3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgMJAAECBQckbWF0Y2gwAgRVbml0BQVXQVZFUwkAAgECC01hdGNoIGVycm9yAQ9zdHJpbmdUb0Fzc2V0SWQBDWFzc2V0SWRTdHJpbmcDCQAAAgUNYXNzZXRJZFN0cmluZwUFV0FWRVMFBHVuaXQJANkEAQUNYXNzZXRJZFN0cmluZwEWa2V5TWFpblRyZWFzdXJ5QWRkcmVzcwAJALkJAgkAzAgCAgIlcwkAzAgCAhNtYWluVHJlYXN1cnlBZGRyZXNzBQNuaWwFA1NFUAEXa2V5V2F2ZXNVU0RUUG9vbEFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgIUV2F2ZXNVU0RUUG9vbEFkZHJlc3MFA25pbAUDU0VQAQ9rZXlXWERBT0FkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgIUV1hEQU9jb250cmFjdEFkZHJlc3MFA25pbAUDU0VQAQ9rZXlXWERBT2Fzc2V0SWQACQC5CQIJAMwIAgICJXMJAMwIAgIMV1hEQU9hc3NldElkBQNuaWwFA1NFUAEOa2V5VVNEVGFzc2V0SWQACQC5CQIJAMwIAgICJXMJAMwIAgILVVNEVGFzc2V0SWQFA25pbAUDU0VQARNrZXlQcm9jZXNzRmVlQW1vdW50AAkAuQkCCQDMCAICAiVzCQDMCAICEHByb2Nlc3NGZWVBbW91bnQFA25pbAUDU0VQAQprZXlIaXN0b3J5AgZhY3Rpb24EdHhJZAkAuQkCCQDMCAICBCVzJXMJAMwIAgUGYWN0aW9uCQDMCAIFBHR4SWQFA25pbAUDU0VQARRmb3JtYXRQcm9jZXNzSGlzdG9yeQMSY2xhaW1lZFdhdmVzQW1vdW50D3NlbmRXWERBT2Ftb3VudBBwcm9jZXNzRmVlQW1vdW50CQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIJAKQDAQUSY2xhaW1lZFdhdmVzQW1vdW50CQDMCAIJAKQDAQUPc2VuZFdYREFPYW1vdW50CQDMCAIJAKQDAQUQcHJvY2Vzc0ZlZUFtb3VudAUDbmlsBQNTRVAAGW1haW5UcmVhc3VyeUFkZHJlc3NTdHJpbmcJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJARZrZXlNYWluVHJlYXN1cnlBZGRyZXNzAAAZbWFpblRyZWFzdXJ5QWRkcmVzc09yRmFpbAkBEUBleHRyTmF0aXZlKDEwNjIpAQUZbWFpblRyZWFzdXJ5QWRkcmVzc1N0cmluZwAad2F2ZXNVU0RUcG9vbEFkZHJlc3NTdHJpbmcJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJARdrZXlXYXZlc1VTRFRQb29sQWRkcmVzcwAAGndhdmVzVVNEVHBvb2xBZGRyZXNzT3JGYWlsCQERQGV4dHJOYXRpdmUoMTA2MikBBRp3YXZlc1VTRFRwb29sQWRkcmVzc1N0cmluZwASd3hkYW9BZGRyZXNzU3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQEPa2V5V1hEQU9BZGRyZXNzAAASd3hkYW9BZGRyZXNzT3JGYWlsCQERQGV4dHJOYXRpdmUoMTA2MikBBRJ3eGRhb0FkZHJlc3NTdHJpbmcBDXN0cmluZ1RvQXNzZXQBDWFzc2V0SWRTdHJpbmcDCQAAAgUNYXNzZXRJZFN0cmluZwUFV0FWRVMFBHVuaXQJANkEAQUNYXNzZXRJZFN0cmluZwENYXNzZXRUb1N0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWIFBVdBVkVTAQpnZXRCYWxhbmNlAgdhZGRyZXNzDWFzc2V0SWRTdHJpbmcEB2Fzc2V0SWQJAQ1zdHJpbmdUb0Fzc2V0AQUNYXNzZXRJZFN0cmluZwQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDwBwIFB2FkZHJlc3MFAWIICQDvBwEFB2FkZHJlc3MJYXZhaWxhYmxlABBwcm9jZXNzRmVlQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARNrZXlQcm9jZXNzRmVlQW1vdW50AACgwh4AEXVzZHRBc3NldElkU3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQEOa2V5VVNEVGFzc2V0SWQAABJ3eGRhb0Fzc2V0SWRTdHJpbmcJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAQ9rZXlXWERBT2Fzc2V0SWQAAAx3eGRhb0Fzc2V0SWQJAQ1zdHJpbmdUb0Fzc2V0AQUSd3hkYW9Bc3NldElkU3RyaW5nARZjbGFpbVdhdmVzRnJvbVRyZWFzdXJ5AAQPb2xkV2F2ZXNCYWxhbmNlCQEKZ2V0QmFsYW5jZQIFBHRoaXMFBVdBVkVTAwkAAAIFD29sZFdhdmVzQmFsYW5jZQUPb2xkV2F2ZXNCYWxhbmNlBA5nZXRXYXZlc0ludm9rZQkA/AcEBRltYWluVHJlYXN1cnlBZGRyZXNzT3JGYWlsAgVDbGFpbQUDbmlsBQNuaWwDCQAAAgUOZ2V0V2F2ZXNJbnZva2UFDmdldFdhdmVzSW52b2tlBA9uZXdXYXZlc0JhbGFuY2UJAQpnZXRCYWxhbmNlAgUEdGhpcwUFV0FWRVMDCQAAAgUPbmV3V2F2ZXNCYWxhbmNlBQ9uZXdXYXZlc0JhbGFuY2UJAGUCBQ9uZXdXYXZlc0JhbGFuY2UFD29sZFdhdmVzQmFsYW5jZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEOZ2V0UG9vbEJhbGFuY2UCC3Bvb2xBZGRyZXNzDWFzc2V0SWRTdHJpbmcEDGludm9rZVJlc3VsdAkA/AcEBQtwb29sQWRkcmVzcwIcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQkAzAgCBQ1hc3NldElkU3RyaW5nBQNuaWwFA25pbAQHJG1hdGNoMAUMaW52b2tlUmVzdWx0AwkAAQIFByRtYXRjaDACA0ludAQHYmFsYW5jZQUHJG1hdGNoMAUHYmFsYW5jZQkBCHRocm93RXJyAQItZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWSB1bmV4cGVjdGVkIHZhbHVlARFnZXRXYXZlc1VTRFRQcmljZQAEEHBvb2xXYXZlc0JhbGFuY2UJAQ5nZXRQb29sQmFsYW5jZQIFGndhdmVzVVNEVHBvb2xBZGRyZXNzT3JGYWlsBQVXQVZFUwQPcG9vbFVzZHRCYWxhbmNlCQEOZ2V0UG9vbEJhbGFuY2UCBRp3YXZlc1VTRFRwb29sQWRkcmVzc09yRmFpbAURdXNkdEFzc2V0SWRTdHJpbmcEAmNoCQDMCAIDCQBmAgUQcG9vbFdhdmVzQmFsYW5jZQAABgkBCHRocm93RXJyAQI2V0FWRVMvVVNEVCBwb29sIFdhdmVzIGJhbGFuY2Ugc2hvdWxkIGJlIGdyZWF0ZXIgdGhhdCAwCQDMCAIDCQBmAgUPcG9vbFVzZHRCYWxhbmNlAAAGCQEIdGhyb3dFcnIBAjVXQVZFUy9VU0RUIHBvb2wgVVNEVCBiYWxhbmNlIHNob3VsZCBiZSBncmVhdGVyIHRoYXQgMAUDbmlsAwkAAAIFAmNoBQJjaAkAawMFD3Bvb2xVc2R0QmFsYW5jZQUGU0NBTEU4BRBwb29sV2F2ZXNCYWxhbmNlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARFnZXRXWERBT1VzZHRQcmljZQAEC3ByaWNlSW52b2tlCQD8BwQFEnd4ZGFvQWRkcmVzc09yRmFpbAIEY2FsbAkAzAgCAgVwcmljZQUDbmlsBQNuaWwEDGludm9rZVJlc3VsdAQHJG1hdGNoMAULcHJpY2VJbnZva2UDCQABAgUHJG1hdGNoMAIJTGlzdFtBbnldBAFyBQckbWF0Y2gwBAckbWF0Y2gxCQCRAwIFAXIAAAMJAAECBQckbWF0Y2gxAgNJbnQEAWkFByRtYXRjaDEFAWkFBHVuaXQFBHVuaXQECnd4REFPcHJpY2UJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUMaW52b2tlUmVzdWx0CQEHd3JhcEVycgECJFVuZXhwZWN0ZWQgV1hEQU8gUHJpY2UgaW52b2tlIHJlc3VsdAQCY2gJAMwIAgMJAGYCBQp3eERBT3ByaWNlAAAGCQEIdGhyb3dFcnIBAiRXWERBTyBwcmljZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAFA25pbAMJAAACBQJjaAUCY2gFCnd4REFPcHJpY2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDWdldFdYREFPUHJpY2UABQZTQ0FMRTgBD2NhbGNXWERBT2Ftb3VudAELd2F2ZXNBbW91bnQEBXByaWNlCQENZ2V0V1hEQU9QcmljZQAEC3d4REFPYW1vdW50AwkAZwIAAAUFcHJpY2UJAQh0aHJvd0VycgECHnByaWNlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAawMFC3dhdmVzQW1vdW50BQVwcmljZQUGU0NBTEU4BQt3eERBT2Ftb3VudAEBaQEHcHJvY2VzcwAEC3dhdmVzQW1vdW50CQEWY2xhaW1XYXZlc0Zyb21UcmVhc3VyeQADCQAAAgULd2F2ZXNBbW91bnQFC3dhdmVzQW1vdW50BA9zd2FwV2F2ZXNBbW91bnQJAGUCBQt3YXZlc0Ftb3VudAUQcHJvY2Vzc0ZlZUFtb3VudAMJAAACBQ9zd2FwV2F2ZXNBbW91bnQFD3N3YXBXYXZlc0Ftb3VudAQPd3hEQU9zZW5kQW1vdW50CQEPY2FsY1dYREFPYW1vdW50AQUPc3dhcFdhdmVzQW1vdW50AwkAAAIFD3d4REFPc2VuZEFtb3VudAUPd3hEQU9zZW5kQW1vdW50BAJjaAkAzAgCAwkAZgIFD3N3YXBXYXZlc0Ftb3VudAAABgkBCHRocm93RXJyAQI6Y2xhaW1lZCB3YXZlcyBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwcm9jZXNzaW5nIGZlZQkAzAgCAwkAZgIFD3d4REFPc2VuZEFtb3VudAAABgkBCHRocm93RXJyAQIqV1hEQU8gc2VuZCBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwBQNuaWwDCQAAAgUCY2gFAmNoBBBwcm9jZXNzaW5nQ2FsbGVyCAUBaQxvcmlnaW5DYWxsZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUQcHJvY2Vzc2luZ0NhbGxlcgUQcHJvY2Vzc0ZlZUFtb3VudAkBDXN0cmluZ1RvQXNzZXQBBQVXQVZFUwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBRltYWluVHJlYXN1cnlBZGRyZXNzT3JGYWlsBQ93eERBT3NlbmRBbW91bnQFDHd4ZGFvQXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQEKa2V5SGlzdG9yeQICB3Byb2Nlc3MJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkBFGZvcm1hdFByb2Nlc3NIaXN0b3J5AwULd2F2ZXNBbW91bnQFD3d4REFPc2VuZEFtb3VudAUQcHJvY2Vzc0ZlZUFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAMSGTbU=", "height": 4102068, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: G1iiPuB9A1qrE8HYnobAwH1JvoTw9w3kW3Fbp88bZc6q Next: BppQSjskGs7uykaWUFPUJeQyuraVAVMo2LWRku1C8uM4 Diff:
OldNewDifferences
116116 }
117117
118118
119+func getPoolBalance (poolAddress,assetIdString) = {
120+ let invokeResult = invoke(poolAddress, "getAccBalanceWrapperREADONLY", [assetIdString], nil)
121+ match invokeResult {
122+ case balance: Int =>
123+ balance
124+ case _ =>
125+ throwErr("getAccBalanceWrapperREADONLY unexpected value")
126+ }
127+ }
128+
129+
119130 func getWavesUSDTPrice () = {
120- let poolWavesBalance = getBalance(wavesUSDTpoolAddressOrFail, WAVES)
121- let poolUsdtBalance = getBalance(wavesUSDTpoolAddressOrFail, usdtAssetIdString)
131+ let poolWavesBalance = getPoolBalance(wavesUSDTpoolAddressOrFail, WAVES)
132+ let poolUsdtBalance = getPoolBalance(wavesUSDTpoolAddressOrFail, usdtAssetIdString)
122133 let ch = [if ((poolWavesBalance > 0))
123134 then true
124135 else throwErr("WAVES/USDT pool Waves balance should be greater that 0"), if ((poolUsdtBalance > 0))
131142
132143
133144 func getWXDAOUsdtPrice () = {
134- let priceInvoke = invoke(wxdaoAddressOrFail, "price", nil, nil)
145+ let priceInvoke = invoke(wxdaoAddressOrFail, "call", ["price"], nil)
135146 let invokeResult = match priceInvoke {
136147 case r: List[Any] =>
137148 match r[0] {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let SEP = "__"
55
66 let CONTRACT_NAME = "wxdao_funding.ride"
77
88 let SCALE8 = 100000000
99
1010 let WAVES = "WAVES"
1111
1212 func wrapErr (s) = ((CONTRACT_NAME + ": ") + s)
1313
1414
1515 func throwErr (s) = throw(wrapErr(s))
1616
1717
1818 func assetIdToString (assetId) = match assetId {
1919 case b: ByteVector =>
2020 toBase58String(b)
2121 case _: Unit =>
2222 WAVES
2323 case _ =>
2424 throw("Match error")
2525 }
2626
2727
2828 func stringToAssetId (assetIdString) = if ((assetIdString == WAVES))
2929 then unit
3030 else fromBase58String(assetIdString)
3131
3232
3333 func keyMainTreasuryAddress () = makeString(["%s", "mainTreasuryAddress"], SEP)
3434
3535
3636 func keyWavesUSDTPoolAddress () = makeString(["%s", "WavesUSDTPoolAddress"], SEP)
3737
3838
3939 func keyWXDAOAddress () = makeString(["%s", "WXDAOcontractAddress"], SEP)
4040
4141
4242 func keyWXDAOassetId () = makeString(["%s", "WXDAOassetId"], SEP)
4343
4444
4545 func keyUSDTassetId () = makeString(["%s", "USDTassetId"], SEP)
4646
4747
4848 func keyProcessFeeAmount () = makeString(["%s", "processFeeAmount"], SEP)
4949
5050
5151 func keyHistory (action,txId) = makeString(["%s%s", action, txId], SEP)
5252
5353
5454 func formatProcessHistory (claimedWavesAmount,sendWXDAOamount,processFeeAmount) = makeString(["%d%d%d", toString(claimedWavesAmount), toString(sendWXDAOamount), toString(processFeeAmount)], SEP)
5555
5656
5757 let mainTreasuryAddressString = getStringValue(this, keyMainTreasuryAddress())
5858
5959 let mainTreasuryAddressOrFail = addressFromStringValue(mainTreasuryAddressString)
6060
6161 let wavesUSDTpoolAddressString = getStringValue(this, keyWavesUSDTPoolAddress())
6262
6363 let wavesUSDTpoolAddressOrFail = addressFromStringValue(wavesUSDTpoolAddressString)
6464
6565 let wxdaoAddressString = getStringValue(this, keyWXDAOAddress())
6666
6767 let wxdaoAddressOrFail = addressFromStringValue(wxdaoAddressString)
6868
6969 func stringToAsset (assetIdString) = if ((assetIdString == WAVES))
7070 then unit
7171 else fromBase58String(assetIdString)
7272
7373
7474 func assetToString (assetId) = match assetId {
7575 case b: ByteVector =>
7676 toBase58String(b)
7777 case _ =>
7878 WAVES
7979 }
8080
8181
8282 func getBalance (address,assetIdString) = {
8383 let assetId = stringToAsset(assetIdString)
8484 match assetId {
8585 case b: ByteVector =>
8686 assetBalance(address, b)
8787 case _ =>
8888 wavesBalance(address).available
8989 }
9090 }
9191
9292
9393 let processFeeAmount = valueOrElse(getInteger(this, keyProcessFeeAmount()), 500000)
9494
9595 let usdtAssetIdString = getStringValue(this, keyUSDTassetId())
9696
9797 let wxdaoAssetIdString = getStringValue(this, keyWXDAOassetId())
9898
9999 let wxdaoAssetId = stringToAsset(wxdaoAssetIdString)
100100
101101 func claimWavesFromTreasury () = {
102102 let oldWavesBalance = getBalance(this, WAVES)
103103 if ((oldWavesBalance == oldWavesBalance))
104104 then {
105105 let getWavesInvoke = invoke(mainTreasuryAddressOrFail, "Claim", nil, nil)
106106 if ((getWavesInvoke == getWavesInvoke))
107107 then {
108108 let newWavesBalance = getBalance(this, WAVES)
109109 if ((newWavesBalance == newWavesBalance))
110110 then (newWavesBalance - oldWavesBalance)
111111 else throw("Strict value is not equal to itself.")
112112 }
113113 else throw("Strict value is not equal to itself.")
114114 }
115115 else throw("Strict value is not equal to itself.")
116116 }
117117
118118
119+func getPoolBalance (poolAddress,assetIdString) = {
120+ let invokeResult = invoke(poolAddress, "getAccBalanceWrapperREADONLY", [assetIdString], nil)
121+ match invokeResult {
122+ case balance: Int =>
123+ balance
124+ case _ =>
125+ throwErr("getAccBalanceWrapperREADONLY unexpected value")
126+ }
127+ }
128+
129+
119130 func getWavesUSDTPrice () = {
120- let poolWavesBalance = getBalance(wavesUSDTpoolAddressOrFail, WAVES)
121- let poolUsdtBalance = getBalance(wavesUSDTpoolAddressOrFail, usdtAssetIdString)
131+ let poolWavesBalance = getPoolBalance(wavesUSDTpoolAddressOrFail, WAVES)
132+ let poolUsdtBalance = getPoolBalance(wavesUSDTpoolAddressOrFail, usdtAssetIdString)
122133 let ch = [if ((poolWavesBalance > 0))
123134 then true
124135 else throwErr("WAVES/USDT pool Waves balance should be greater that 0"), if ((poolUsdtBalance > 0))
125136 then true
126137 else throwErr("WAVES/USDT pool USDT balance should be greater that 0")]
127138 if ((ch == ch))
128139 then fraction(poolUsdtBalance, SCALE8, poolWavesBalance)
129140 else throw("Strict value is not equal to itself.")
130141 }
131142
132143
133144 func getWXDAOUsdtPrice () = {
134- let priceInvoke = invoke(wxdaoAddressOrFail, "price", nil, nil)
145+ let priceInvoke = invoke(wxdaoAddressOrFail, "call", ["price"], nil)
135146 let invokeResult = match priceInvoke {
136147 case r: List[Any] =>
137148 match r[0] {
138149 case i: Int =>
139150 i
140151 case _ =>
141152 unit
142153 }
143154 case _ =>
144155 unit
145156 }
146157 let wxDAOprice = valueOrErrorMessage(invokeResult, wrapErr("Unexpected WXDAO Price invoke result"))
147158 let ch = [if ((wxDAOprice > 0))
148159 then true
149160 else throwErr("WXDAO price should be greater than 0")]
150161 if ((ch == ch))
151162 then wxDAOprice
152163 else throw("Strict value is not equal to itself.")
153164 }
154165
155166
156167 func getWXDAOPrice () = SCALE8
157168
158169
159170 func calcWXDAOamount (wavesAmount) = {
160171 let price = getWXDAOPrice()
161172 let wxDAOamount = if ((0 >= price))
162173 then throwErr("price should be greater than 0")
163174 else fraction(wavesAmount, price, SCALE8)
164175 wxDAOamount
165176 }
166177
167178
168179 @Callable(i)
169180 func process () = {
170181 let wavesAmount = claimWavesFromTreasury()
171182 if ((wavesAmount == wavesAmount))
172183 then {
173184 let swapWavesAmount = (wavesAmount - processFeeAmount)
174185 if ((swapWavesAmount == swapWavesAmount))
175186 then {
176187 let wxDAOsendAmount = calcWXDAOamount(swapWavesAmount)
177188 if ((wxDAOsendAmount == wxDAOsendAmount))
178189 then {
179190 let ch = [if ((swapWavesAmount > 0))
180191 then true
181192 else throwErr("claimed waves amount should be greater than processing fee"), if ((wxDAOsendAmount > 0))
182193 then true
183194 else throwErr("WXDAO send amount should be greater than 0")]
184195 if ((ch == ch))
185196 then {
186197 let processingCaller = i.originCaller
187198 [ScriptTransfer(processingCaller, processFeeAmount, stringToAsset(WAVES)), ScriptTransfer(mainTreasuryAddressOrFail, wxDAOsendAmount, wxdaoAssetId), StringEntry(keyHistory("process", toBase58String(i.transactionId)), formatProcessHistory(wavesAmount, wxDAOsendAmount, processFeeAmount))]
188199 }
189200 else throw("Strict value is not equal to itself.")
190201 }
191202 else throw("Strict value is not equal to itself.")
192203 }
193204 else throw("Strict value is not equal to itself.")
194205 }
195206 else throw("Strict value is not equal to itself.")
196207 }
197208
198209

github/deemru/w8io/6500d08 
27.84 ms