tx · AgWioc1hgPeYvWuumpRDLuDL5HskcwCGXVQ76tvVJsJA 3P9DaReo3xvAQ5wzEzkF3Qbxm4fmxkoB1ik: -0.00500000 Waves 2024.03.27 09:50 [4102041] smart account 3P9DaReo3xvAQ5wzEzkF3Qbxm4fmxkoB1ik > SELF 0.00000000 Waves
{ "type": 13, "id": "AgWioc1hgPeYvWuumpRDLuDL5HskcwCGXVQ76tvVJsJA", "fee": 500000, "feeAssetId": null, "timestamp": 1711522252531, "version": 2, "chainId": 87, "sender": "3P9DaReo3xvAQ5wzEzkF3Qbxm4fmxkoB1ik", "senderPublicKey": "5Zt1wYPgfh4zJWozYGoGxuudhP7Zh8H1HJTfVzqpJ8LF", "proofs": [ "2CLja4DhyVx6aCMCH9Nv3GFvepELnQA1PWYAXewnKdPL3uwTbVp3GYbXdbBST7S2kzcBp4zjX6fpdxbCk1pdxUv3" ], "script": "base64:BgIECAISACIAA1NFUAICX18ADUNPTlRSQUNUX05BTUUCEnd4ZGFvX2Z1bmRpbmcucmlkZQAGU0NBTEU4AIDC1y8ABVdBVkVTAgVXQVZFUwEHd3JhcEVycgEBcwkArAICCQCsAgIFDUNPTlRSQUNUX05BTUUCAjogBQFzAQh0aHJvd0VycgEBcwkAAgEJAQd3cmFwRXJyAQUBcwEPYXNzZXRJZFRvU3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgMJAAECBQckbWF0Y2gwAgRVbml0BQVXQVZFUwkAAgECC01hdGNoIGVycm9yAQ9zdHJpbmdUb0Fzc2V0SWQBDWFzc2V0SWRTdHJpbmcDCQAAAgUNYXNzZXRJZFN0cmluZwUFV0FWRVMFBHVuaXQJANkEAQUNYXNzZXRJZFN0cmluZwEWa2V5TWFpblRyZWFzdXJ5QWRkcmVzcwAJALkJAgkAzAgCAgIlcwkAzAgCAhNtYWluVHJlYXN1cnlBZGRyZXNzBQNuaWwFA1NFUAEXa2V5V2F2ZXNVU0RUUG9vbEFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgIUV2F2ZXNVU0RUUG9vbEFkZHJlc3MFA25pbAUDU0VQAQ9rZXlXWERBT0FkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgIUV1hEQU9jb250cmFjdEFkZHJlc3MFA25pbAUDU0VQAQ9rZXlXWERBT2Fzc2V0SWQACQC5CQIJAMwIAgICJXMJAMwIAgIMV1hEQU9hc3NldElkBQNuaWwFA1NFUAEOa2V5VVNEVGFzc2V0SWQACQC5CQIJAMwIAgICJXMJAMwIAgILVVNEVGFzc2V0SWQFA25pbAUDU0VQARNrZXlQcm9jZXNzRmVlQW1vdW50AAkAuQkCCQDMCAICAiVzCQDMCAICEHByb2Nlc3NGZWVBbW91bnQFA25pbAUDU0VQAQprZXlIaXN0b3J5AgZhY3Rpb24EdHhJZAkAuQkCCQDMCAICBCVzJXMJAMwIAgUGYWN0aW9uCQDMCAIFBHR4SWQFA25pbAUDU0VQARRmb3JtYXRQcm9jZXNzSGlzdG9yeQMSY2xhaW1lZFdhdmVzQW1vdW50D3NlbmRXWERBT2Ftb3VudBBwcm9jZXNzRmVlQW1vdW50CQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIJAKQDAQUSY2xhaW1lZFdhdmVzQW1vdW50CQDMCAIJAKQDAQUPc2VuZFdYREFPYW1vdW50CQDMCAIJAKQDAQUQcHJvY2Vzc0ZlZUFtb3VudAUDbmlsBQNTRVAAGW1haW5UcmVhc3VyeUFkZHJlc3NTdHJpbmcJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJARZrZXlNYWluVHJlYXN1cnlBZGRyZXNzAAAZbWFpblRyZWFzdXJ5QWRkcmVzc09yRmFpbAkBEUBleHRyTmF0aXZlKDEwNjIpAQUZbWFpblRyZWFzdXJ5QWRkcmVzc1N0cmluZwAad2F2ZXNVU0RUcG9vbEFkZHJlc3NTdHJpbmcJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJARdrZXlXYXZlc1VTRFRQb29sQWRkcmVzcwAAGndhdmVzVVNEVHBvb2xBZGRyZXNzT3JGYWlsCQERQGV4dHJOYXRpdmUoMTA2MikBBRp3YXZlc1VTRFRwb29sQWRkcmVzc1N0cmluZwASd3hkYW9BZGRyZXNzU3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQEPa2V5V1hEQU9BZGRyZXNzAAASd3hkYW9BZGRyZXNzT3JGYWlsCQERQGV4dHJOYXRpdmUoMTA2MikBBRJ3eGRhb0FkZHJlc3NTdHJpbmcBDXN0cmluZ1RvQXNzZXQBDWFzc2V0SWRTdHJpbmcDCQAAAgUNYXNzZXRJZFN0cmluZwUFV0FWRVMFBHVuaXQJAJsDAQUNYXNzZXRJZFN0cmluZwENYXNzZXRUb1N0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWIFBVdBVkVTAQpnZXRCYWxhbmNlAgdhZGRyZXNzDWFzc2V0SWRTdHJpbmcEB2Fzc2V0SWQJAQ1zdHJpbmdUb0Fzc2V0AQUNYXNzZXRJZFN0cmluZwQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDwBwIFB2FkZHJlc3MFAWIICQDvBwEFB2FkZHJlc3MJYXZhaWxhYmxlABBwcm9jZXNzRmVlQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARNrZXlQcm9jZXNzRmVlQW1vdW50AACgwh4AEXVzZHRBc3NldElkU3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQEOa2V5VVNEVGFzc2V0SWQAABJ3eGRhb0Fzc2V0SWRTdHJpbmcJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAQ9rZXlXWERBT2Fzc2V0SWQAAAx3eGRhb0Fzc2V0SWQJAQ1zdHJpbmdUb0Fzc2V0AQUSd3hkYW9Bc3NldElkU3RyaW5nARZjbGFpbVdhdmVzRnJvbVRyZWFzdXJ5AAQPb2xkV2F2ZXNCYWxhbmNlCQEKZ2V0QmFsYW5jZQIFBHRoaXMFBVdBVkVTAwkAAAIFD29sZFdhdmVzQmFsYW5jZQUPb2xkV2F2ZXNCYWxhbmNlBA5nZXRXYXZlc0ludm9rZQkA/AcEBRltYWluVHJlYXN1cnlBZGRyZXNzT3JGYWlsAgVDbGFpbQUDbmlsBQNuaWwDCQAAAgUOZ2V0V2F2ZXNJbnZva2UFDmdldFdhdmVzSW52b2tlBA9uZXdXYXZlc0JhbGFuY2UJAQpnZXRCYWxhbmNlAgUEdGhpcwUFV0FWRVMDCQAAAgUPbmV3V2F2ZXNCYWxhbmNlBQ9uZXdXYXZlc0JhbGFuY2UJAGUCBQ9uZXdXYXZlc0JhbGFuY2UFD29sZFdhdmVzQmFsYW5jZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgERZ2V0V2F2ZXNVU0RUUHJpY2UABBBwb29sV2F2ZXNCYWxhbmNlCQEKZ2V0QmFsYW5jZQIFGndhdmVzVVNEVHBvb2xBZGRyZXNzT3JGYWlsBQVXQVZFUwQPcG9vbFVzZHRCYWxhbmNlCQEKZ2V0QmFsYW5jZQIFGndhdmVzVVNEVHBvb2xBZGRyZXNzT3JGYWlsBRF1c2R0QXNzZXRJZFN0cmluZwQCY2gJAMwIAgMJAGYCBRBwb29sV2F2ZXNCYWxhbmNlAAAGCQEIdGhyb3dFcnIBAjZXQVZFUy9VU0RUIHBvb2wgV2F2ZXMgYmFsYW5jZSBzaG91bGQgYmUgZ3JlYXRlciB0aGF0IDAJAMwIAgMJAGYCBQ9wb29sVXNkdEJhbGFuY2UAAAYJAQh0aHJvd0VycgECNVdBVkVTL1VTRFQgcG9vbCBVU0RUIGJhbGFuY2Ugc2hvdWxkIGJlIGdyZWF0ZXIgdGhhdCAwBQNuaWwDCQAAAgUCY2gFAmNoCQBrAwUPcG9vbFVzZHRCYWxhbmNlBQZTQ0FMRTgFEHBvb2xXYXZlc0JhbGFuY2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEWdldFdYREFPVXNkdFByaWNlAAQLcHJpY2VJbnZva2UJAPwHBAUSd3hkYW9BZGRyZXNzT3JGYWlsAgVwcmljZQUDbmlsBQNuaWwEDGludm9rZVJlc3VsdAQHJG1hdGNoMAULcHJpY2VJbnZva2UDCQABAgUHJG1hdGNoMAIJTGlzdFtBbnldBAFyBQckbWF0Y2gwBAckbWF0Y2gxCQCRAwIFAXIAAAMJAAECBQckbWF0Y2gxAgNJbnQEAWkFByRtYXRjaDEFAWkFBHVuaXQFBHVuaXQECnd4REFPcHJpY2UJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUMaW52b2tlUmVzdWx0CQEHd3JhcEVycgECJFVuZXhwZWN0ZWQgV1hEQU8gUHJpY2UgaW52b2tlIHJlc3VsdAQCY2gJAMwIAgMJAGYCBQp3eERBT3ByaWNlAAAGCQEIdGhyb3dFcnIBAiRXWERBTyBwcmljZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDAFA25pbAMJAAACBQJjaAUCY2gFCnd4REFPcHJpY2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDWdldFdYREFPUHJpY2UABQZTQ0FMRTgBD2NhbGNXWERBT2Ftb3VudAELd2F2ZXNBbW91bnQEBXByaWNlCQENZ2V0V1hEQU9QcmljZQAEC3d4REFPYW1vdW50AwkAZwIAAAUFcHJpY2UJAQh0aHJvd0VycgECHnByaWNlIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMAkAawMFC3dhdmVzQW1vdW50BQVwcmljZQUGU0NBTEU4BQt3eERBT2Ftb3VudAEBaQEHcHJvY2VzcwAEC3dhdmVzQW1vdW50CQEWY2xhaW1XYXZlc0Zyb21UcmVhc3VyeQADCQAAAgULd2F2ZXNBbW91bnQFC3dhdmVzQW1vdW50BA9zd2FwV2F2ZXNBbW91bnQJAGUCBQt3YXZlc0Ftb3VudAUQcHJvY2Vzc0ZlZUFtb3VudAMJAAACBQ9zd2FwV2F2ZXNBbW91bnQFD3N3YXBXYXZlc0Ftb3VudAQPd3hEQU9zZW5kQW1vdW50CQEPY2FsY1dYREFPYW1vdW50AQUPc3dhcFdhdmVzQW1vdW50AwkAAAIFD3d4REFPc2VuZEFtb3VudAUPd3hEQU9zZW5kQW1vdW50BAJjaAkAzAgCAwkAZgIFD3N3YXBXYXZlc0Ftb3VudAAABgkBCHRocm93RXJyAQI6Y2xhaW1lZCB3YXZlcyBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwcm9jZXNzaW5nIGZlZQkAzAgCAwkAZgIFD3d4REFPc2VuZEFtb3VudAAABgkBCHRocm93RXJyAQIqV1hEQU8gc2VuZCBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwBQNuaWwDCQAAAgUCY2gFAmNoBBBwcm9jZXNzaW5nQ2FsbGVyCAUBaQxvcmlnaW5DYWxsZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUQcHJvY2Vzc2luZ0NhbGxlcgUQcHJvY2Vzc0ZlZUFtb3VudAkBDXN0cmluZ1RvQXNzZXQBBQVXQVZFUwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBRltYWluVHJlYXN1cnlBZGRyZXNzT3JGYWlsBQ93eERBT3NlbmRBbW91bnQFDHd4ZGFvQXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQEKa2V5SGlzdG9yeQICB3Byb2Nlc3MJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkBFGZvcm1hdFByb2Nlc3NIaXN0b3J5AwULd2F2ZXNBbW91bnQFD3d4REFPc2VuZEFtb3VudAUQcHJvY2Vzc0ZlZUFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuADxgdHk=", "height": 4102041, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7LVQCVBXahFthkryGRqXegLy5kkaPPNvWbkeNeGrPKn4 Next: G1iiPuB9A1qrE8HYnobAwH1JvoTw9w3kW3Fbp88bZc6q Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let SEP = "__" | |
5 | + | ||
6 | + | let CONTRACT_NAME = "wxdao_funding.ride" | |
7 | + | ||
8 | + | let SCALE8 = 100000000 | |
9 | + | ||
10 | + | let WAVES = "WAVES" | |
11 | + | ||
12 | + | func wrapErr (s) = ((CONTRACT_NAME + ": ") + s) | |
13 | + | ||
14 | + | ||
15 | + | func throwErr (s) = throw(wrapErr(s)) | |
16 | + | ||
17 | + | ||
18 | + | func assetIdToString (assetId) = match assetId { | |
19 | + | case b: ByteVector => | |
20 | + | toBase58String(b) | |
21 | + | case _: Unit => | |
22 | + | WAVES | |
23 | + | case _ => | |
24 | + | throw("Match error") | |
25 | + | } | |
26 | + | ||
27 | + | ||
28 | + | func stringToAssetId (assetIdString) = if ((assetIdString == WAVES)) | |
29 | + | then unit | |
30 | + | else fromBase58String(assetIdString) | |
31 | + | ||
32 | + | ||
33 | + | func keyMainTreasuryAddress () = makeString(["%s", "mainTreasuryAddress"], SEP) | |
34 | + | ||
35 | + | ||
36 | + | func keyWavesUSDTPoolAddress () = makeString(["%s", "WavesUSDTPoolAddress"], SEP) | |
37 | + | ||
38 | + | ||
39 | + | func keyWXDAOAddress () = makeString(["%s", "WXDAOcontractAddress"], SEP) | |
40 | + | ||
41 | + | ||
42 | + | func keyWXDAOassetId () = makeString(["%s", "WXDAOassetId"], SEP) | |
43 | + | ||
44 | + | ||
45 | + | func keyUSDTassetId () = makeString(["%s", "USDTassetId"], SEP) | |
46 | + | ||
47 | + | ||
48 | + | func keyProcessFeeAmount () = makeString(["%s", "processFeeAmount"], SEP) | |
49 | + | ||
50 | + | ||
51 | + | func keyHistory (action,txId) = makeString(["%s%s", action, txId], SEP) | |
52 | + | ||
53 | + | ||
54 | + | func formatProcessHistory (claimedWavesAmount,sendWXDAOamount,processFeeAmount) = makeString(["%d%d%d", toString(claimedWavesAmount), toString(sendWXDAOamount), toString(processFeeAmount)], SEP) | |
55 | + | ||
56 | + | ||
57 | + | let mainTreasuryAddressString = getStringValue(this, keyMainTreasuryAddress()) | |
58 | + | ||
59 | + | let mainTreasuryAddressOrFail = addressFromStringValue(mainTreasuryAddressString) | |
60 | + | ||
61 | + | let wavesUSDTpoolAddressString = getStringValue(this, keyWavesUSDTPoolAddress()) | |
62 | + | ||
63 | + | let wavesUSDTpoolAddressOrFail = addressFromStringValue(wavesUSDTpoolAddressString) | |
64 | + | ||
65 | + | let wxdaoAddressString = getStringValue(this, keyWXDAOAddress()) | |
66 | + | ||
67 | + | let wxdaoAddressOrFail = addressFromStringValue(wxdaoAddressString) | |
68 | + | ||
69 | + | func stringToAsset (assetIdString) = if ((assetIdString == WAVES)) | |
70 | + | then unit | |
71 | + | else toBytes(assetIdString) | |
72 | + | ||
73 | + | ||
74 | + | func assetToString (assetId) = match assetId { | |
75 | + | case b: ByteVector => | |
76 | + | toBase58String(b) | |
77 | + | case _ => | |
78 | + | WAVES | |
79 | + | } | |
80 | + | ||
81 | + | ||
82 | + | func getBalance (address,assetIdString) = { | |
83 | + | let assetId = stringToAsset(assetIdString) | |
84 | + | match assetId { | |
85 | + | case b: ByteVector => | |
86 | + | assetBalance(address, b) | |
87 | + | case _ => | |
88 | + | wavesBalance(address).available | |
89 | + | } | |
90 | + | } | |
91 | + | ||
92 | + | ||
93 | + | let processFeeAmount = valueOrElse(getInteger(this, keyProcessFeeAmount()), 500000) | |
94 | + | ||
95 | + | let usdtAssetIdString = getStringValue(this, keyUSDTassetId()) | |
96 | + | ||
97 | + | let wxdaoAssetIdString = getStringValue(this, keyWXDAOassetId()) | |
98 | + | ||
99 | + | let wxdaoAssetId = stringToAsset(wxdaoAssetIdString) | |
100 | + | ||
101 | + | func claimWavesFromTreasury () = { | |
102 | + | let oldWavesBalance = getBalance(this, WAVES) | |
103 | + | if ((oldWavesBalance == oldWavesBalance)) | |
104 | + | then { | |
105 | + | let getWavesInvoke = invoke(mainTreasuryAddressOrFail, "Claim", nil, nil) | |
106 | + | if ((getWavesInvoke == getWavesInvoke)) | |
107 | + | then { | |
108 | + | let newWavesBalance = getBalance(this, WAVES) | |
109 | + | if ((newWavesBalance == newWavesBalance)) | |
110 | + | then (newWavesBalance - oldWavesBalance) | |
111 | + | else throw("Strict value is not equal to itself.") | |
112 | + | } | |
113 | + | else throw("Strict value is not equal to itself.") | |
114 | + | } | |
115 | + | else throw("Strict value is not equal to itself.") | |
116 | + | } | |
117 | + | ||
118 | + | ||
119 | + | func getWavesUSDTPrice () = { | |
120 | + | let poolWavesBalance = getBalance(wavesUSDTpoolAddressOrFail, WAVES) | |
121 | + | let poolUsdtBalance = getBalance(wavesUSDTpoolAddressOrFail, usdtAssetIdString) | |
122 | + | let ch = [if ((poolWavesBalance > 0)) | |
123 | + | then true | |
124 | + | else throwErr("WAVES/USDT pool Waves balance should be greater that 0"), if ((poolUsdtBalance > 0)) | |
125 | + | then true | |
126 | + | else throwErr("WAVES/USDT pool USDT balance should be greater that 0")] | |
127 | + | if ((ch == ch)) | |
128 | + | then fraction(poolUsdtBalance, SCALE8, poolWavesBalance) | |
129 | + | else throw("Strict value is not equal to itself.") | |
130 | + | } | |
131 | + | ||
132 | + | ||
133 | + | func getWXDAOUsdtPrice () = { | |
134 | + | let priceInvoke = invoke(wxdaoAddressOrFail, "price", nil, nil) | |
135 | + | let invokeResult = match priceInvoke { | |
136 | + | case r: List[Any] => | |
137 | + | match r[0] { | |
138 | + | case i: Int => | |
139 | + | i | |
140 | + | case _ => | |
141 | + | unit | |
142 | + | } | |
143 | + | case _ => | |
144 | + | unit | |
145 | + | } | |
146 | + | let wxDAOprice = valueOrErrorMessage(invokeResult, wrapErr("Unexpected WXDAO Price invoke result")) | |
147 | + | let ch = [if ((wxDAOprice > 0)) | |
148 | + | then true | |
149 | + | else throwErr("WXDAO price should be greater than 0")] | |
150 | + | if ((ch == ch)) | |
151 | + | then wxDAOprice | |
152 | + | else throw("Strict value is not equal to itself.") | |
153 | + | } | |
154 | + | ||
155 | + | ||
156 | + | func getWXDAOPrice () = SCALE8 | |
157 | + | ||
158 | + | ||
159 | + | func calcWXDAOamount (wavesAmount) = { | |
160 | + | let price = getWXDAOPrice() | |
161 | + | let wxDAOamount = if ((0 >= price)) | |
162 | + | then throwErr("price should be greater than 0") | |
163 | + | else fraction(wavesAmount, price, SCALE8) | |
164 | + | wxDAOamount | |
165 | + | } | |
166 | + | ||
167 | + | ||
168 | + | @Callable(i) | |
169 | + | func process () = { | |
170 | + | let wavesAmount = claimWavesFromTreasury() | |
171 | + | if ((wavesAmount == wavesAmount)) | |
172 | + | then { | |
173 | + | let swapWavesAmount = (wavesAmount - processFeeAmount) | |
174 | + | if ((swapWavesAmount == swapWavesAmount)) | |
175 | + | then { | |
176 | + | let wxDAOsendAmount = calcWXDAOamount(swapWavesAmount) | |
177 | + | if ((wxDAOsendAmount == wxDAOsendAmount)) | |
178 | + | then { | |
179 | + | let ch = [if ((swapWavesAmount > 0)) | |
180 | + | then true | |
181 | + | else throwErr("claimed waves amount should be greater than processing fee"), if ((wxDAOsendAmount > 0)) | |
182 | + | then true | |
183 | + | else throwErr("WXDAO send amount should be greater than 0")] | |
184 | + | if ((ch == ch)) | |
185 | + | then { | |
186 | + | let processingCaller = i.originCaller | |
187 | + | [ScriptTransfer(processingCaller, processFeeAmount, stringToAsset(WAVES)), ScriptTransfer(mainTreasuryAddressOrFail, wxDAOsendAmount, wxdaoAssetId), StringEntry(keyHistory("process", toBase58String(i.transactionId)), formatProcessHistory(wavesAmount, wxDAOsendAmount, processFeeAmount))] | |
188 | + | } | |
189 | + | else throw("Strict value is not equal to itself.") | |
190 | + | } | |
191 | + | else throw("Strict value is not equal to itself.") | |
192 | + | } | |
193 | + | else throw("Strict value is not equal to itself.") | |
194 | + | } | |
195 | + | else throw("Strict value is not equal to itself.") | |
196 | + | } | |
197 | + | ||
198 | + |
github/deemru/w8io/3ef1775 21.07 ms ◑