tx · 6iC86GF5aeFH7XfETzdhFQaJBYJwknK73MjdasZKBNfr 3P2YBCpek2KbwaxHBSRRa4DWcJUkPu2mCCj: -0.01000000 Waves 2024.05.07 12:57 [4161503] smart account 3P2YBCpek2KbwaxHBSRRa4DWcJUkPu2mCCj > SELF 0.00000000 Waves
{ "type": 13, "id": "6iC86GF5aeFH7XfETzdhFQaJBYJwknK73MjdasZKBNfr", "fee": 1000000, "feeAssetId": null, "timestamp": 1715075862876, "version": 2, "chainId": 87, "sender": "3P2YBCpek2KbwaxHBSRRa4DWcJUkPu2mCCj", "senderPublicKey": "3C2anUH59qjkVSB8AuFYGBNhSqcgvJhq1BBRodM74pEf", "proofs": [ "F1wYRVekY52kpsLjriZKDVdFzNoJ9JKsiPALPqjhNJzAzcopcYQ4HEYx8YFmpG2VgfX7sXZTQB2B94CAu2SzSGE" ], "script": "base64:BgIICAISABIAEgAbAQlhc0FueUxpc3QBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACCUxpc3RbQW55XQQKdmFsQW55TGlzdAUHJG1hdGNoMAUKdmFsQW55TGlzdAkAAgECG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEIYXNTdHJpbmcBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQIYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAWkFByRtYXRjaDAFAWkJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQAC3B1enpsZUlkU3RyAixIRUI4UWF3OXhyV3BXczh0SHNpQVRZR0JXREJ0UDJTN2tjUEFMck11NDNBUwAIcHV6emxlSWQJANkEAQULcHV6emxlSWRTdHIACHh0bklkU3RyAixERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAAFeHRuSWQJANkEAQUIeHRuSWRTdHIACHB6Rm9yYmVzCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUFFuenA1WW9nQnZKbXdQbnZTV29hcmdQTWNkMVI0R0xhOAANcHpCYXNpY1B1enpsZQkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BRQWhQTTVpSFF5WXJBcVRWdHM1M1VnaUxHdFZ1U1o4eEQABnd4UmVzdAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A4TW9QbnNhdXJvZmsxVnloc2RBRmtlUTZpanBKWVhDcFcABnd4U3dvcAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A2OHpOaXVmc3UxdmlacHUxYVkzY2RhaFJSS2N2VjVOOTMADXd4UHV6emxlV2F2ZXMJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQUWFZbTRwYlJWck5UVG5MOHBESlpUeGhjbUQ0alJza3J6AA93eFB1enpsZVdhdmVzTHACLDdHNjg3dWkzbTU5b0FkNnFreW5pMnZ0NzdiSEY0YmJBNnhjUGZEbzN1aVR1AAt3eFB1enpsZVh0bgkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A2MTV5WGVROVF1NHFCTTFRR2ltR3ppeHlNUzVXNEt0dWcACnd4V2F2ZXNYdG4JARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQUFpXZ0ZOUktITHZNNTFwd1M5MzRDOFZaN2QyRjRaNThnAAx3eFdhdmVzWHRuTHACLDdLWmJKclZvcHdKaGtkd2JlMWVGREJiZXg0ZGtZNjNNeGpUTmpxWHRyemoxAA1zd29wUHV6emxlWHRuCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUEJIeUV3bUVSUjFDRWtyVE5iUGoyYmd5aXNUZlBScWZlZQAMc3dvcFdhdmVzWHRuCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUEhhTmdvbUJrcnZFTDJRbnVKYXJRVkphNzF3anc5cWlxRwAIZWdnSWRTdHICLEMxaVdzS0dxTHdqSFVuZGlRN2lYcGRtUHVtOVBlQ0RGZnlYQmRKSm9zRFJTAAVlZ2dJZAkA2QQBBQhlZ2dJZFN0cgAKd3hFZ2dXYXZlcwkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BKa1VobkFITWFCVGp5YzdGa0JmSGFudE5VeTg3MWtCQlcADHd4RWdnV2F2ZXNMcAkBEUBleHRyTmF0aXZlKDEwNjIpAQIsM1VueXRObmtkNDhmSG9mSFBCcDU5QmtwWkExdU1TSjhQZGhXVUN1ZXJpY3MADHN3b3BFZ2dXYXZlcwkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BOVkZXb3B3Q0Q5Q2dHWGtwWVdFWTk0b1E1WENBRVhCbVEBC3N3b3BCYWxhbmNlAgtwb29sQWRkcmVzcwRBb3JCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQtwb29sQWRkcmVzcwkArAICBQRBb3JCAg5fYXNzZXRfYmFsYW5jZQENd3hQb29sQmFsYW5jZQIGcG9vbExwCmFzc2V0SW5kZXgEDHd4UmVzdFJlc3VsdAkAtQkCCQEIYXNTdHJpbmcBCQD8BwQFBnd4UmVzdAIRcG9vbFN0YXRzUkVBRE9OTFkJAMwIAgUGcG9vbExwBQNuaWwFA25pbAICX18JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQx3eFJlc3RSZXN1bHQFCmFzc2V0SW5kZXgBCXB6QmFsYW5jZQILcG9vbEFkZHJlc3MHYXNzZXRJZAkBEUBleHRyTmF0aXZlKDEwNTApAgULcG9vbEFkZHJlc3MJAKwCAgkArAICAgdnbG9iYWxfCQDYBAEFB2Fzc2V0SWQCCF9iYWxhbmNlARRidXlYdG5Gb3JXYXZlc0NvbW1vbgEId2F2ZXNBbXQED3dhdmVzVG9YdG5WaWFXeAkBDXd4UG9vbEJhbGFuY2UCBQx3eFdhdmVzWHRuTHAAAQQRd2F2ZXNUb1h0blZpYVN3b3AJAQtzd29wQmFsYW5jZQIFDHN3b3BXYXZlc1h0bgIBQQQPd2F2ZXNUb1h0blRvdGFsCQBkAgUPd2F2ZXNUb1h0blZpYVd4BRF3YXZlc1RvWHRuVmlhU3dvcAQSd2F2ZXNUb1h0blZpYVd4QW10CQBrAwUId2F2ZXNBbXQFD3dhdmVzVG9YdG5WaWFXeAUPd2F2ZXNUb1h0blRvdGFsBBR3YXZlc1RvWHRuVmlhU3dvcEFtdAkAawMFCHdhdmVzQW10BRF3YXZlc1RvWHRuVmlhU3dvcAUPd2F2ZXNUb1h0blRvdGFsBBV3YXZlc1RvWHRuVmlhV3hSZXN1bHQJAPwHBAUGd3hTd29wAgRzd2FwCQDMCAIAAQkAzAgCBQh4dG5JZFN0cgkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUSd2F2ZXNUb1h0blZpYVd4QW10BQNuaWwDCQAAAgUVd2F2ZXNUb1h0blZpYVd4UmVzdWx0BRV3YXZlc1RvWHRuVmlhV3hSZXN1bHQEF3dhdmVzVG9YdG5WaWFTd29wUmVzdWx0CQEJYXNBbnlMaXN0AQkA/AcEBQxzd29wV2F2ZXNYdG4CCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BRR3YXZlc1RvWHRuVmlhU3dvcEFtdAUDbmlsAwkAAAIFF3dhdmVzVG9YdG5WaWFTd29wUmVzdWx0BRd3YXZlc1RvWHRuVmlhU3dvcFJlc3VsdAQGeHRuQW10CQDwBwIFBHRoaXMFBXh0bklkCQCUCgIFA25pbAUGeHRuQW10CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwFpAQ5idXlYdG5Gb3JXYXZlcwAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAh3YXZlc0FtdAgFA3BtdAZhbW91bnQJARRidXlYdG5Gb3JXYXZlc0NvbW1vbgEFCHdhdmVzQW10AWkBEWJ1eVB1enpsZUZvcldhdmVzAAQNcHpGb3JiZXNWYWx1ZQkBCXB6QmFsYW5jZQIFCHB6Rm9yYmVzBQhwdXp6bGVJZAQScHpCYXNpY1B1enpsZVZhbHVlCQEJcHpCYWxhbmNlAgUNcHpCYXNpY1B1enpsZQUIcHV6emxlSWQEEnd4UHV6emxlV2F2ZXNWYWx1ZQkBDXd4UG9vbEJhbGFuY2UCBQ93eFB1enpsZVdhdmVzTHAAAQQSc3dvcFB1enpsZVh0blZhbHVlCQELc3dvcEJhbGFuY2UCBQ1zd29wUHV6emxlWHRuAgFBBAV0b3RhbAkAZAIJAGQCCQBkAgUNcHpGb3JiZXNWYWx1ZQUScHpCYXNpY1B1enpsZVZhbHVlBRJ3eFB1enpsZVdhdmVzVmFsdWUFEnN3b3BQdXp6bGVYdG5WYWx1ZQQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBnBtdEFtdAgFA3BtdAZhbW91bnQEDHB6Rm9yYmVzUGFydAkAawMFDXB6Rm9yYmVzVmFsdWUFBnBtdEFtdAUFdG90YWwEEXB6QmFzaWNQdXp6bGVQYXJ0CQBrAwUScHpCYXNpY1B1enpsZVZhbHVlBQZwbXRBbXQFBXRvdGFsBBF3eFB1enpsZVdhdmVzUGFydAkAawMFEnd4UHV6emxlV2F2ZXNWYWx1ZQUGcG10QW10BQV0b3RhbAQRc3dvcFB1enpsZVh0blBhcnQJAGsDBRJzd29wUHV6emxlWHRuVmFsdWUFBnBtdEFtdAUFdG90YWwEBnh0bkFtdAgJARRidXlYdG5Gb3JXYXZlc0NvbW1vbgEFEXN3b3BQdXp6bGVYdG5QYXJ0Al8yAwkAAAIFBnh0bkFtdAUGeHRuQW10BBx3YXZlc1RvUHV6emxlVmlhRm9yYmVzUmVzdWx0CQD8BwQFCHB6Rm9yYmVzAgRzd2FwCQDMCAIFC3B1enpsZUlkU3RyCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQxwekZvcmJlc1BhcnQFA25pbAMJAAACBRx3YXZlc1RvUHV6emxlVmlhRm9yYmVzUmVzdWx0BRx3YXZlc1RvUHV6emxlVmlhRm9yYmVzUmVzdWx0BBt3YXZlc1RvUHV6emxlVmlhQmFzaWNSZXN1bHQJAPwHBAUNcHpCYXNpY1B1enpsZQIEc3dhcAkAzAgCBQtwdXp6bGVJZFN0cgkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAURcHpCYXNpY1B1enpsZVBhcnQFA25pbAMJAAACBRt3YXZlc1RvUHV6emxlVmlhQmFzaWNSZXN1bHQFG3dhdmVzVG9QdXp6bGVWaWFCYXNpY1Jlc3VsdAQYd2F2ZXNUb1B1enpsZVZpYVd4UmVzdWx0CQD8BwQFBnd4U3dvcAIEc3dhcAkAzAgCAAEJAMwIAgULcHV6emxlSWRTdHIJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFEXd4UHV6emxlV2F2ZXNQYXJ0BQNuaWwDCQAAAgUYd2F2ZXNUb1B1enpsZVZpYVd4UmVzdWx0BRh3YXZlc1RvUHV6emxlVmlhV3hSZXN1bHQEGHh0blRvUHV6emxlVmlhU3dvcFJlc3VsdAkBCWFzQW55TGlzdAEJAPwHBAUNc3dvcFB1enpsZVh0bgIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBXh0bklkBQZ4dG5BbXQFA25pbAMJAAACBRh4dG5Ub1B1enpsZVZpYVN3b3BSZXN1bHQFGHh0blRvUHV6emxlVmlhU3dvcFJlc3VsdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAPAHAgUEdGhpcwUIcHV6emxlSWQFCHB1enpsZUlkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOYnV5RWdnRm9yV2F2ZXMABAdzd29wUG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEB3N3b3BBbXQIBQdzd29wUG10BmFtb3VudAQFd3hQbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAQQFd3hBbXQIBQV3eFBtdAZhbW91bnQEF3dhdmVzVG9FZ2dWaWFTd29wUmVzdWx0CQEJYXNBbnlMaXN0AQkA/AcEBQxzd29wRWdnV2F2ZXMCCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQdzd29wQW10BQNuaWwDCQAAAgUXd2F2ZXNUb0VnZ1ZpYVN3b3BSZXN1bHQFF3dhdmVzVG9FZ2dWaWFTd29wUmVzdWx0BBV3YXZlc1RvRWdnVmlhV3hSZXN1bHQJAPwHBAUGd3hTd29wAgRzd2FwCQDMCAIAAQkAzAgCBQhlZ2dJZFN0cgkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUFd3hBbXQFA25pbAMJAAACBRV3YXZlc1RvRWdnVmlhV3hSZXN1bHQFFXdhdmVzVG9FZ2dWaWFXeFJlc3VsdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAPAHAgUEdGhpcwUFZWdnSWQFBWVnZ0lkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AG7IY3g==", "height": 4161503, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: E8DuY8fN8Hnx1DhnCdf7ygvXF83VCW9btxmQU1zfYYvK Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | func asWithdrawResultSTRUCT (val) = { | |
5 | - | let t = { | |
6 | - | let @ = val | |
7 | - | if ($isInstanceOf(@, "(Int, ByteVector|Unit, Int, Int, Int, Int, Int, Int, String, Int)")) | |
8 | - | then @ | |
9 | - | else throw(($getType(@) + " couldn't be cast to (Int, ByteVector|Unit, Int, Int, Int, Int, Int, Int, String, Int)")) | |
10 | - | } | |
11 | - | t | |
4 | + | func asAnyList (val) = match val { | |
5 | + | case valAnyList: List[Any] => | |
6 | + | valAnyList | |
7 | + | case _ => | |
8 | + | throw("fail to cast into List[Any]") | |
9 | + | } | |
10 | + | ||
11 | + | ||
12 | + | func asString (v) = match v { | |
13 | + | case s: String => | |
14 | + | s | |
15 | + | case _ => | |
16 | + | throw("fail to cast into String") | |
17 | + | } | |
18 | + | ||
19 | + | ||
20 | + | func asInt (v) = match v { | |
21 | + | case i: Int => | |
22 | + | i | |
23 | + | case _ => | |
24 | + | throw("fail to cast into Int") | |
25 | + | } | |
26 | + | ||
27 | + | ||
28 | + | let puzzleIdStr = "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS" | |
29 | + | ||
30 | + | let puzzleId = fromBase58String(puzzleIdStr) | |
31 | + | ||
32 | + | let xtnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" | |
33 | + | ||
34 | + | let xtnId = fromBase58String(xtnIdStr) | |
35 | + | ||
36 | + | let pzForbes = addressFromStringValue("3PQnzp5YogBvJmwPnvSWoargPMcd1R4GLa8") | |
37 | + | ||
38 | + | let pzBasicPuzzle = addressFromStringValue("3PQAhPM5iHQyYrAqTVts53UgiLGtVuSZ8xD") | |
39 | + | ||
40 | + | let wxRest = addressFromStringValue("3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW") | |
41 | + | ||
42 | + | let wxSwop = addressFromStringValue("3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93") | |
43 | + | ||
44 | + | let wxPuzzleWaves = addressFromStringValue("3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz") | |
45 | + | ||
46 | + | let wxPuzzleWavesLp = "7G687ui3m59oAd6qkyni2vt77bHF4bbA6xcPfDo3uiTu" | |
47 | + | ||
48 | + | let wxPuzzleXtn = addressFromStringValue("3P615yXeQ9Qu4qBM1QGimGzixyMS5W4Ktug") | |
49 | + | ||
50 | + | let wxWavesXtn = addressFromStringValue("3PPZWgFNRKHLvM51pwS934C8VZ7d2F4Z58g") | |
51 | + | ||
52 | + | let wxWavesXtnLp = "7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1" | |
53 | + | ||
54 | + | let swopPuzzleXtn = addressFromStringValue("3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee") | |
55 | + | ||
56 | + | let swopWavesXtn = addressFromStringValue("3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG") | |
57 | + | ||
58 | + | let eggIdStr = "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS" | |
59 | + | ||
60 | + | let eggId = fromBase58String(eggIdStr) | |
61 | + | ||
62 | + | let wxEggWaves = addressFromStringValue("3PJkUhnAHMaBTjyc7FkBfHantNUy871kBBW") | |
63 | + | ||
64 | + | let wxEggWavesLp = addressFromStringValue("3UnytNnkd48fHofHPBp59BkpZA1uMSJ8PdhWUCuerics") | |
65 | + | ||
66 | + | let swopEggWaves = addressFromStringValue("3PNVFWopwCD9CgGXkpYWEY94oQ5XCAEXBmQ") | |
67 | + | ||
68 | + | func swopBalance (poolAddress,AorB) = getIntegerValue(poolAddress, (AorB + "_asset_balance")) | |
69 | + | ||
70 | + | ||
71 | + | func wxPoolBalance (poolLp,assetIndex) = { | |
72 | + | let wxRestResult = split(asString(invoke(wxRest, "poolStatsREADONLY", [poolLp], nil)), "__") | |
73 | + | parseIntValue(wxRestResult[assetIndex]) | |
12 | 74 | } | |
13 | 75 | ||
14 | 76 | ||
15 | - | func | |
77 | + | func pzBalance (poolAddress,assetId) = getIntegerValue(poolAddress, (("global_" + toBase58String(assetId)) + "_balance")) | |
16 | 78 | ||
17 | 79 | ||
18 | - | func testV1 () = { | |
19 | - | let t = $Tuple11(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) | |
20 | - | ((((((((((s(t._1) + s(t._2)) + s(t._3)) + s(t._4)) + s(t._5)) + s(t._6)) + s(t._7)) + s(t._8)) + s(t._9)) + s(t._10)) + s(t._11)) | |
21 | - | } | |
22 | - | ||
23 | - | ||
24 | - | func tuple11 () = $Tuple11(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) | |
25 | - | ||
26 | - | ||
27 | - | func testV2 () = { | |
28 | - | let t = tuple11() | |
29 | - | ((((((((((s(t._1) + s(t._2)) + s(t._3)) + s(t._4)) + s(t._5)) + s(t._6)) + s(t._7)) + s(t._8)) + s(t._9)) + s(t._10)) + s(t._11)) | |
30 | - | } | |
31 | - | ||
32 | - | ||
33 | - | func print (t) = ((((((((((s(t._1) + s(t._2)) + s(t._3)) + s(t._4)) + s(t._5)) + s(t._6)) + s(t._7)) + s(t._8)) + s(t._9)) + s(t._10)) + s(t._11)) | |
34 | - | ||
35 | - | ||
36 | - | func testV3 () = { | |
37 | - | let t = $Tuple11(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) | |
38 | - | print(t) | |
80 | + | func buyXtnForWavesCommon (wavesAmt) = { | |
81 | + | let wavesToXtnViaWx = wxPoolBalance(wxWavesXtnLp, 1) | |
82 | + | let wavesToXtnViaSwop = swopBalance(swopWavesXtn, "A") | |
83 | + | let wavesToXtnTotal = (wavesToXtnViaWx + wavesToXtnViaSwop) | |
84 | + | let wavesToXtnViaWxAmt = fraction(wavesAmt, wavesToXtnViaWx, wavesToXtnTotal) | |
85 | + | let wavesToXtnViaSwopAmt = fraction(wavesAmt, wavesToXtnViaSwop, wavesToXtnTotal) | |
86 | + | let wavesToXtnViaWxResult = invoke(wxSwop, "swap", [1, xtnIdStr, toString(this)], [AttachedPayment(unit, wavesToXtnViaWxAmt)]) | |
87 | + | if ((wavesToXtnViaWxResult == wavesToXtnViaWxResult)) | |
88 | + | then { | |
89 | + | let wavesToXtnViaSwopResult = asAnyList(invoke(swopWavesXtn, "exchange", [1], [AttachedPayment(unit, wavesToXtnViaSwopAmt)])) | |
90 | + | if ((wavesToXtnViaSwopResult == wavesToXtnViaSwopResult)) | |
91 | + | then { | |
92 | + | let xtnAmt = assetBalance(this, xtnId) | |
93 | + | $Tuple2(nil, xtnAmt) | |
94 | + | } | |
95 | + | else throw("Strict value is not equal to itself.") | |
96 | + | } | |
97 | + | else throw("Strict value is not equal to itself.") | |
39 | 98 | } | |
40 | 99 | ||
41 | 100 | ||
42 | 101 | @Callable(i) | |
43 | - | func call () = nil | |
102 | + | func buyXtnForWaves () = { | |
103 | + | let pmt = value(i.payments[0]) | |
104 | + | let wavesAmt = pmt.amount | |
105 | + | buyXtnForWavesCommon(wavesAmt) | |
106 | + | } | |
107 | + | ||
108 | + | ||
109 | + | ||
110 | + | @Callable(i) | |
111 | + | func buyPuzzleForWaves () = { | |
112 | + | let pzForbesValue = pzBalance(pzForbes, puzzleId) | |
113 | + | let pzBasicPuzzleValue = pzBalance(pzBasicPuzzle, puzzleId) | |
114 | + | let wxPuzzleWavesValue = wxPoolBalance(wxPuzzleWavesLp, 1) | |
115 | + | let swopPuzzleXtnValue = swopBalance(swopPuzzleXtn, "A") | |
116 | + | let total = (((pzForbesValue + pzBasicPuzzleValue) + wxPuzzleWavesValue) + swopPuzzleXtnValue) | |
117 | + | let pmt = value(i.payments[0]) | |
118 | + | let pmtAmt = pmt.amount | |
119 | + | let pzForbesPart = fraction(pzForbesValue, pmtAmt, total) | |
120 | + | let pzBasicPuzzlePart = fraction(pzBasicPuzzleValue, pmtAmt, total) | |
121 | + | let wxPuzzleWavesPart = fraction(wxPuzzleWavesValue, pmtAmt, total) | |
122 | + | let swopPuzzleXtnPart = fraction(swopPuzzleXtnValue, pmtAmt, total) | |
123 | + | let xtnAmt = buyXtnForWavesCommon(swopPuzzleXtnPart)._2 | |
124 | + | if ((xtnAmt == xtnAmt)) | |
125 | + | then { | |
126 | + | let wavesToPuzzleViaForbesResult = invoke(pzForbes, "swap", [puzzleIdStr, 1], [AttachedPayment(unit, pzForbesPart)]) | |
127 | + | if ((wavesToPuzzleViaForbesResult == wavesToPuzzleViaForbesResult)) | |
128 | + | then { | |
129 | + | let wavesToPuzzleViaBasicResult = invoke(pzBasicPuzzle, "swap", [puzzleIdStr, 1], [AttachedPayment(unit, pzBasicPuzzlePart)]) | |
130 | + | if ((wavesToPuzzleViaBasicResult == wavesToPuzzleViaBasicResult)) | |
131 | + | then { | |
132 | + | let wavesToPuzzleViaWxResult = invoke(wxSwop, "swap", [1, puzzleIdStr, toString(this)], [AttachedPayment(unit, wxPuzzleWavesPart)]) | |
133 | + | if ((wavesToPuzzleViaWxResult == wavesToPuzzleViaWxResult)) | |
134 | + | then { | |
135 | + | let xtnToPuzzleViaSwopResult = asAnyList(invoke(swopPuzzleXtn, "exchange", [1], [AttachedPayment(xtnId, xtnAmt)])) | |
136 | + | if ((xtnToPuzzleViaSwopResult == xtnToPuzzleViaSwopResult)) | |
137 | + | then [ScriptTransfer(i.caller, assetBalance(this, puzzleId), puzzleId)] | |
138 | + | else throw("Strict value is not equal to itself.") | |
139 | + | } | |
140 | + | else throw("Strict value is not equal to itself.") | |
141 | + | } | |
142 | + | else throw("Strict value is not equal to itself.") | |
143 | + | } | |
144 | + | else throw("Strict value is not equal to itself.") | |
145 | + | } | |
146 | + | else throw("Strict value is not equal to itself.") | |
147 | + | } | |
148 | + | ||
149 | + | ||
150 | + | ||
151 | + | @Callable(i) | |
152 | + | func buyEggForWaves () = { | |
153 | + | let swopPmt = value(i.payments[0]) | |
154 | + | let swopAmt = swopPmt.amount | |
155 | + | let wxPmt = value(i.payments[1]) | |
156 | + | let wxAmt = wxPmt.amount | |
157 | + | let wavesToEggViaSwopResult = asAnyList(invoke(swopEggWaves, "exchange", [1], [AttachedPayment(unit, swopAmt)])) | |
158 | + | if ((wavesToEggViaSwopResult == wavesToEggViaSwopResult)) | |
159 | + | then { | |
160 | + | let wavesToEggViaWxResult = invoke(wxSwop, "swap", [1, eggIdStr, toString(this)], [AttachedPayment(unit, wxAmt)]) | |
161 | + | if ((wavesToEggViaWxResult == wavesToEggViaWxResult)) | |
162 | + | then [ScriptTransfer(i.caller, assetBalance(this, eggId), eggId)] | |
163 | + | else throw("Strict value is not equal to itself.") | |
164 | + | } | |
165 | + | else throw("Strict value is not equal to itself.") | |
166 | + | } | |
44 | 167 | ||
45 | 168 |
github/deemru/w8io/3ef1775 24.05 ms ◑