tx · 33Ao5KdDTtofVakiURYwneYuowHxA6UHqWJjaiVBfE8m

3P2YBCpek2KbwaxHBSRRa4DWcJUkPu2mCCj:  -0.01000000 Waves

2024.04.19 18:20 [4135796] smart account 3P2YBCpek2KbwaxHBSRRa4DWcJUkPu2mCCj > SELF 0.00000000 Waves

{ "type": 13, "id": "33Ao5KdDTtofVakiURYwneYuowHxA6UHqWJjaiVBfE8m", "fee": 1000000, "feeAssetId": null, "timestamp": 1713540096134, "version": 2, "chainId": 87, "sender": "3P2YBCpek2KbwaxHBSRRa4DWcJUkPu2mCCj", "senderPublicKey": "3C2anUH59qjkVSB8AuFYGBNhSqcgvJhq1BBRodM74pEf", "proofs": [ "5GaJytirgWwUSg2RgUzSasGrY3aN4e7JL9mDCX98oJM6dTTvuLfZuuZ9L8oF9VPRXFTuDKPA6zJJx1pT3xS1cryV" ], "script": "base64:BgIICAISABIAEgAbAQlhc0FueUxpc3QBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACCUxpc3RbQW55XQQKdmFsQW55TGlzdAUHJG1hdGNoMAUKdmFsQW55TGlzdAkAAgECG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEIYXNTdHJpbmcBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQIYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAWkFByRtYXRjaDAFAWkJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQAC3B1enpsZUlkU3RyAixIRUI4UWF3OXhyV3BXczh0SHNpQVRZR0JXREJ0UDJTN2tjUEFMck11NDNBUwAIcHV6emxlSWQJANkEAQULcHV6emxlSWRTdHIACHh0bklkU3RyAixERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAAFeHRuSWQJANkEAQUIeHRuSWRTdHIACHB6Rm9yYmVzCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUFFuenA1WW9nQnZKbXdQbnZTV29hcmdQTWNkMVI0R0xhOAANcHpCYXNpY1B1enpsZQkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BRQWhQTTVpSFF5WXJBcVRWdHM1M1VnaUxHdFZ1U1o4eEQABnd4UmVzdAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A4TW9QbnNhdXJvZmsxVnloc2RBRmtlUTZpanBKWVhDcFcABnd4U3dvcAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A2OHpOaXVmc3UxdmlacHUxYVkzY2RhaFJSS2N2VjVOOTMADXd4UHV6emxlV2F2ZXMJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQUWFZbTRwYlJWck5UVG5MOHBESlpUeGhjbUQ0alJza3J6AA93eFB1enpsZVdhdmVzTHACLDdHNjg3dWkzbTU5b0FkNnFreW5pMnZ0NzdiSEY0YmJBNnhjUGZEbzN1aVR1AAt3eFB1enpsZVh0bgkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1A2MTV5WGVROVF1NHFCTTFRR2ltR3ppeHlNUzVXNEt0dWcACnd4V2F2ZXNYdG4JARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQUFpXZ0ZOUktITHZNNTFwd1M5MzRDOFZaN2QyRjRaNThnAAx3eFdhdmVzWHRuTHACLDdLWmJKclZvcHdKaGtkd2JlMWVGREJiZXg0ZGtZNjNNeGpUTmpxWHRyemoxAA1zd29wUHV6emxlWHRuCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUEJIeUV3bUVSUjFDRWtyVE5iUGoyYmd5aXNUZlBScWZlZQAMc3dvcFdhdmVzWHRuCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUEhhTmdvbUJrcnZFTDJRbnVKYXJRVkphNzF3anc5cWlxRwAIZWdnSWRTdHICLEMxaVdzS0dxTHdqSFVuZGlRN2lYcGRtUHVtOVBlQ0RGZnlYQmRKSm9zRFJTAAVlZ2dJZAkA2QQBBQhlZ2dJZFN0cgAKd3hFZ2dXYXZlcwkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BKa1VobkFITWFCVGp5YzdGa0JmSGFudE5VeTg3MWtCQlcADHd4RWdnV2F2ZXNMcAkBEUBleHRyTmF0aXZlKDEwNjIpAQIsM1VueXRObmtkNDhmSG9mSFBCcDU5QmtwWkExdU1TSjhQZGhXVUN1ZXJpY3MADHN3b3BFZ2dXYXZlcwkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BOVkZXb3B3Q0Q5Q2dHWGtwWVdFWTk0b1E1WENBRVhCbVEBC3N3b3BCYWxhbmNlAgtwb29sQWRkcmVzcwRBb3JCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQtwb29sQWRkcmVzcwkArAICBQRBb3JCAg5fYXNzZXRfYmFsYW5jZQENd3hQb29sQmFsYW5jZQIGcG9vbExwCmFzc2V0SW5kZXgEDHd4UmVzdFJlc3VsdAkAtQkCCQEIYXNTdHJpbmcBCQD8BwQFBnd4UmVzdAIRcG9vbFN0YXRzUkVBRE9OTFkJAMwIAgUGcG9vbExwBQNuaWwFA25pbAICX18JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQx3eFJlc3RSZXN1bHQFCmFzc2V0SW5kZXgBCXB6QmFsYW5jZQILcG9vbEFkZHJlc3MHYXNzZXRJZAkBEUBleHRyTmF0aXZlKDEwNTApAgULcG9vbEFkZHJlc3MJAKwCAgkArAICAgdnbG9iYWxfCQDYBAEFB2Fzc2V0SWQCCF9iYWxhbmNlARRidXlYdG5Gb3JXYXZlc0NvbW1vbgEId2F2ZXNBbXQED3dhdmVzVG9YdG5WaWFXeAkBDXd4UG9vbEJhbGFuY2UCBQx3eFdhdmVzWHRuTHAAAQQRd2F2ZXNUb1h0blZpYVN3b3AJAQtzd29wQmFsYW5jZQIFDHN3b3BXYXZlc1h0bgIBQQQPd2F2ZXNUb1h0blRvdGFsCQBkAgUPd2F2ZXNUb1h0blZpYVd4BRF3YXZlc1RvWHRuVmlhU3dvcAQSd2F2ZXNUb1h0blZpYVd4QW10CQBrAwUId2F2ZXNBbXQFD3dhdmVzVG9YdG5WaWFXeAUPd2F2ZXNUb1h0blRvdGFsBBR3YXZlc1RvWHRuVmlhU3dvcEFtdAkAawMFCHdhdmVzQW10BRF3YXZlc1RvWHRuVmlhU3dvcAUPd2F2ZXNUb1h0blRvdGFsBBV3YXZlc1RvWHRuVmlhV3hSZXN1bHQJAPwHBAUGd3hTd29wAgRzd2FwCQDMCAIAAQkAzAgCBQh4dG5JZFN0cgkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUSd2F2ZXNUb1h0blZpYVd4QW10BQNuaWwDCQAAAgUVd2F2ZXNUb1h0blZpYVd4UmVzdWx0BRV3YXZlc1RvWHRuVmlhV3hSZXN1bHQEF3dhdmVzVG9YdG5WaWFTd29wUmVzdWx0CQEJYXNBbnlMaXN0AQkA/AcEBQxzd29wV2F2ZXNYdG4CCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BRR3YXZlc1RvWHRuVmlhU3dvcEFtdAUDbmlsAwkAAAIFF3dhdmVzVG9YdG5WaWFTd29wUmVzdWx0BRd3YXZlc1RvWHRuVmlhU3dvcFJlc3VsdAQGeHRuQW10CQDwBwIFBHRoaXMFBXh0bklkCQCUCgIFA25pbAUGeHRuQW10CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwFpAQ5idXlYdG5Gb3JXYXZlcwAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAh3YXZlc0FtdAgFA3BtdAZhbW91bnQJARRidXlYdG5Gb3JXYXZlc0NvbW1vbgEFCHdhdmVzQW10AWkBEWJ1eVB1enpsZUZvcldhdmVzAAQNcHpGb3JiZXNWYWx1ZQkBCXB6QmFsYW5jZQIFCHB6Rm9yYmVzBQhwdXp6bGVJZAQScHpCYXNpY1B1enpsZVZhbHVlCQEJcHpCYWxhbmNlAgUNcHpCYXNpY1B1enpsZQUIcHV6emxlSWQEEnd4UHV6emxlV2F2ZXNWYWx1ZQkBDXd4UG9vbEJhbGFuY2UCBQ93eFB1enpsZVdhdmVzTHAAAQQSc3dvcFB1enpsZVh0blZhbHVlCQELc3dvcEJhbGFuY2UCBQ1zd29wUHV6emxlWHRuAgFBBAV0b3RhbAkAZAIJAGQCCQBkAgUNcHpGb3JiZXNWYWx1ZQUScHpCYXNpY1B1enpsZVZhbHVlBRJ3eFB1enpsZVdhdmVzVmFsdWUFEnN3b3BQdXp6bGVYdG5WYWx1ZQQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBnBtdEFtdAgFA3BtdAZhbW91bnQEDHB6Rm9yYmVzUGFydAkAawMFDXB6Rm9yYmVzVmFsdWUFBnBtdEFtdAUFdG90YWwEEXB6QmFzaWNQdXp6bGVQYXJ0CQBrAwUScHpCYXNpY1B1enpsZVZhbHVlBQZwbXRBbXQFBXRvdGFsBBF3eFB1enpsZVdhdmVzUGFydAkAawMFEnd4UHV6emxlV2F2ZXNWYWx1ZQUGcG10QW10BQV0b3RhbAQRc3dvcFB1enpsZVh0blBhcnQJAGsDBRJzd29wUHV6emxlWHRuVmFsdWUFBnBtdEFtdAUFdG90YWwEBnh0bkFtdAgJARRidXlYdG5Gb3JXYXZlc0NvbW1vbgEFEXN3b3BQdXp6bGVYdG5QYXJ0Al8yAwkAAAIFBnh0bkFtdAUGeHRuQW10BBx3YXZlc1RvUHV6emxlVmlhRm9yYmVzUmVzdWx0CQD8BwQFCHB6Rm9yYmVzAgRzd2FwCQDMCAIFC3B1enpsZUlkU3RyCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BQxwekZvcmJlc1BhcnQFA25pbAMJAAACBRx3YXZlc1RvUHV6emxlVmlhRm9yYmVzUmVzdWx0BRx3YXZlc1RvUHV6emxlVmlhRm9yYmVzUmVzdWx0BBt3YXZlc1RvUHV6emxlVmlhQmFzaWNSZXN1bHQJAPwHBAUNcHpCYXNpY1B1enpsZQIEc3dhcAkAzAgCBQtwdXp6bGVJZFN0cgkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAURcHpCYXNpY1B1enpsZVBhcnQFA25pbAMJAAACBRt3YXZlc1RvUHV6emxlVmlhQmFzaWNSZXN1bHQFG3dhdmVzVG9QdXp6bGVWaWFCYXNpY1Jlc3VsdAQYd2F2ZXNUb1B1enpsZVZpYVd4UmVzdWx0CQD8BwQFBnd4U3dvcAIEc3dhcAkAzAgCAAEJAMwIAgULcHV6emxlSWRTdHIJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFEXd4UHV6emxlV2F2ZXNQYXJ0BQNuaWwDCQAAAgUYd2F2ZXNUb1B1enpsZVZpYVd4UmVzdWx0BRh3YXZlc1RvUHV6emxlVmlhV3hSZXN1bHQEGHh0blRvUHV6emxlVmlhU3dvcFJlc3VsdAkBCWFzQW55TGlzdAEJAPwHBAUNc3dvcFB1enpsZVh0bgIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBXh0bklkBQZ4dG5BbXQFA25pbAMJAAACBRh4dG5Ub1B1enpsZVZpYVN3b3BSZXN1bHQFGHh0blRvUHV6emxlVmlhU3dvcFJlc3VsdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAPAHAgUEdGhpcwUIcHV6emxlSWQFCHB1enpsZUlkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOYnV5RWdnRm9yV2F2ZXMABAdzd29wUG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEB3N3b3BBbXQIBQdzd29wUG10BmFtb3VudAQFd3hQbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAQQFd3hBbXQIBQV3eFBtdAZhbW91bnQEF3dhdmVzVG9FZ2dWaWFTd29wUmVzdWx0CQEJYXNBbnlMaXN0AQkA/AcEBQ1zd29wUHV6emxlWHRuAghleGNoYW5nZQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUHc3dvcEFtdAUDbmlsAwkAAAIFF3dhdmVzVG9FZ2dWaWFTd29wUmVzdWx0BRd3YXZlc1RvRWdnVmlhU3dvcFJlc3VsdAQVd2F2ZXNUb0VnZ1ZpYVd4UmVzdWx0CQD8BwQFBnd4U3dvcAIEc3dhcAkAzAgCAAEJAMwIAgUIZWdnSWRTdHIJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFBXd4QW10BQNuaWwDCQAAAgUVd2F2ZXNUb0VnZ1ZpYVd4UmVzdWx0BRV3YXZlc1RvRWdnVmlhV3hSZXN1bHQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQDwBwIFBHRoaXMFBWVnZ0lkBQVlZ2dJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAE1j4og=", "height": 4135796, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CYbPwWuo5TWCYcdxmK65adkjrYnQi5kFuUTVUkUgABLv Next: EEa4CVcGycDeDyH8bFBAeWVu8BdHxXkUf14ioKBud5KZ Diff:
OldNewDifferences
5454 let swopPuzzleXtn = addressFromStringValue("3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee")
5555
5656 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")
5767
5868 func swopBalance (poolAddress,AorB) = getIntegerValue(poolAddress, (AorB + "_asset_balance"))
5969
137147 }
138148
139149
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(swopPuzzleXtn, "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+ }
167+
168+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func asAnyList (val) = match val {
55 case valAnyList: List[Any] =>
66 valAnyList
77 case _ =>
88 throw("fail to cast into List[Any]")
99 }
1010
1111
1212 func asString (v) = match v {
1313 case s: String =>
1414 s
1515 case _ =>
1616 throw("fail to cast into String")
1717 }
1818
1919
2020 func asInt (v) = match v {
2121 case i: Int =>
2222 i
2323 case _ =>
2424 throw("fail to cast into Int")
2525 }
2626
2727
2828 let puzzleIdStr = "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS"
2929
3030 let puzzleId = fromBase58String(puzzleIdStr)
3131
3232 let xtnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
3333
3434 let xtnId = fromBase58String(xtnIdStr)
3535
3636 let pzForbes = addressFromStringValue("3PQnzp5YogBvJmwPnvSWoargPMcd1R4GLa8")
3737
3838 let pzBasicPuzzle = addressFromStringValue("3PQAhPM5iHQyYrAqTVts53UgiLGtVuSZ8xD")
3939
4040 let wxRest = addressFromStringValue("3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW")
4141
4242 let wxSwop = addressFromStringValue("3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93")
4343
4444 let wxPuzzleWaves = addressFromStringValue("3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz")
4545
4646 let wxPuzzleWavesLp = "7G687ui3m59oAd6qkyni2vt77bHF4bbA6xcPfDo3uiTu"
4747
4848 let wxPuzzleXtn = addressFromStringValue("3P615yXeQ9Qu4qBM1QGimGzixyMS5W4Ktug")
4949
5050 let wxWavesXtn = addressFromStringValue("3PPZWgFNRKHLvM51pwS934C8VZ7d2F4Z58g")
5151
5252 let wxWavesXtnLp = "7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1"
5353
5454 let swopPuzzleXtn = addressFromStringValue("3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee")
5555
5656 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")
5767
5868 func swopBalance (poolAddress,AorB) = getIntegerValue(poolAddress, (AorB + "_asset_balance"))
5969
6070
6171 func wxPoolBalance (poolLp,assetIndex) = {
6272 let wxRestResult = split(asString(invoke(wxRest, "poolStatsREADONLY", [poolLp], nil)), "__")
6373 parseIntValue(wxRestResult[assetIndex])
6474 }
6575
6676
6777 func pzBalance (poolAddress,assetId) = getIntegerValue(poolAddress, (("global_" + toBase58String(assetId)) + "_balance"))
6878
6979
7080 func buyXtnForWavesCommon (wavesAmt) = {
7181 let wavesToXtnViaWx = wxPoolBalance(wxWavesXtnLp, 1)
7282 let wavesToXtnViaSwop = swopBalance(swopWavesXtn, "A")
7383 let wavesToXtnTotal = (wavesToXtnViaWx + wavesToXtnViaSwop)
7484 let wavesToXtnViaWxAmt = fraction(wavesAmt, wavesToXtnViaWx, wavesToXtnTotal)
7585 let wavesToXtnViaSwopAmt = fraction(wavesAmt, wavesToXtnViaSwop, wavesToXtnTotal)
7686 let wavesToXtnViaWxResult = invoke(wxSwop, "swap", [1, xtnIdStr, toString(this)], [AttachedPayment(unit, wavesToXtnViaWxAmt)])
7787 if ((wavesToXtnViaWxResult == wavesToXtnViaWxResult))
7888 then {
7989 let wavesToXtnViaSwopResult = asAnyList(invoke(swopWavesXtn, "exchange", [1], [AttachedPayment(unit, wavesToXtnViaSwopAmt)]))
8090 if ((wavesToXtnViaSwopResult == wavesToXtnViaSwopResult))
8191 then {
8292 let xtnAmt = assetBalance(this, xtnId)
8393 $Tuple2(nil, xtnAmt)
8494 }
8595 else throw("Strict value is not equal to itself.")
8696 }
8797 else throw("Strict value is not equal to itself.")
8898 }
8999
90100
91101 @Callable(i)
92102 func buyXtnForWaves () = {
93103 let pmt = value(i.payments[0])
94104 let wavesAmt = pmt.amount
95105 buyXtnForWavesCommon(wavesAmt)
96106 }
97107
98108
99109
100110 @Callable(i)
101111 func buyPuzzleForWaves () = {
102112 let pzForbesValue = pzBalance(pzForbes, puzzleId)
103113 let pzBasicPuzzleValue = pzBalance(pzBasicPuzzle, puzzleId)
104114 let wxPuzzleWavesValue = wxPoolBalance(wxPuzzleWavesLp, 1)
105115 let swopPuzzleXtnValue = swopBalance(swopPuzzleXtn, "A")
106116 let total = (((pzForbesValue + pzBasicPuzzleValue) + wxPuzzleWavesValue) + swopPuzzleXtnValue)
107117 let pmt = value(i.payments[0])
108118 let pmtAmt = pmt.amount
109119 let pzForbesPart = fraction(pzForbesValue, pmtAmt, total)
110120 let pzBasicPuzzlePart = fraction(pzBasicPuzzleValue, pmtAmt, total)
111121 let wxPuzzleWavesPart = fraction(wxPuzzleWavesValue, pmtAmt, total)
112122 let swopPuzzleXtnPart = fraction(swopPuzzleXtnValue, pmtAmt, total)
113123 let xtnAmt = buyXtnForWavesCommon(swopPuzzleXtnPart)._2
114124 if ((xtnAmt == xtnAmt))
115125 then {
116126 let wavesToPuzzleViaForbesResult = invoke(pzForbes, "swap", [puzzleIdStr, 1], [AttachedPayment(unit, pzForbesPart)])
117127 if ((wavesToPuzzleViaForbesResult == wavesToPuzzleViaForbesResult))
118128 then {
119129 let wavesToPuzzleViaBasicResult = invoke(pzBasicPuzzle, "swap", [puzzleIdStr, 1], [AttachedPayment(unit, pzBasicPuzzlePart)])
120130 if ((wavesToPuzzleViaBasicResult == wavesToPuzzleViaBasicResult))
121131 then {
122132 let wavesToPuzzleViaWxResult = invoke(wxSwop, "swap", [1, puzzleIdStr, toString(this)], [AttachedPayment(unit, wxPuzzleWavesPart)])
123133 if ((wavesToPuzzleViaWxResult == wavesToPuzzleViaWxResult))
124134 then {
125135 let xtnToPuzzleViaSwopResult = asAnyList(invoke(swopPuzzleXtn, "exchange", [1], [AttachedPayment(xtnId, xtnAmt)]))
126136 if ((xtnToPuzzleViaSwopResult == xtnToPuzzleViaSwopResult))
127137 then [ScriptTransfer(i.caller, assetBalance(this, puzzleId), puzzleId)]
128138 else throw("Strict value is not equal to itself.")
129139 }
130140 else throw("Strict value is not equal to itself.")
131141 }
132142 else throw("Strict value is not equal to itself.")
133143 }
134144 else throw("Strict value is not equal to itself.")
135145 }
136146 else throw("Strict value is not equal to itself.")
137147 }
138148
139149
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(swopPuzzleXtn, "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+ }
167+
168+

github/deemru/w8io/3ef1775 
29.07 ms