tx · DbBKBGPy4kPzspWM41Q9LCpgumL9EHATg8jeVoU4ScFU

3PCUJBpMXtqYKxMiDtKcTeEQcKukfMeoctR:  -0.01400000 Waves

2021.11.17 13:54 [2859950] smart account 3PCUJBpMXtqYKxMiDtKcTeEQcKukfMeoctR > SELF 0.00000000 Waves

{ "type": 13, "id": "DbBKBGPy4kPzspWM41Q9LCpgumL9EHATg8jeVoU4ScFU", "fee": 1400000, "feeAssetId": null, "timestamp": 1637146552045, "version": 2, "chainId": 87, "sender": "3PCUJBpMXtqYKxMiDtKcTeEQcKukfMeoctR", "senderPublicKey": "HkhM1YChRvLycTwNa1tmzYCRGFQsFjSmFwad9krdRUYo", "proofs": [ "4bWM9V81KSBvCZK5eo1UZ7Qe4ucweGMxj8gJioH8pSVAvSr4E9hDEndLcWb9qDK6JqbC8j1oHTUir5gziQfoiV6v" ], "script": "base64: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", "height": 2859950, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8YVq8sRnvCP14h8wZnfGL6t6FdcRQgoWSxjKoiV3nRj6 Next: none Diff:
OldNewDifferences
3030 }
3131
3232
33+func buyWithWaves (address,amount) = {
34+ let eggAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
35+ let balanceBefore = getBalance(eggAssetId)
36+ if ((balanceBefore == balanceBefore))
37+ then {
38+ let i1 = invoke(Address(base58'3PNVFWopwCD9CgGXkpYWEY94oQ5XCAEXBmQ'), "exchange", [1], [AttachedPayment(unit, amount)])
39+ if ((i1 == i1))
40+ then {
41+ let balanceAfter = getBalance(eggAssetId)
42+ if ((balanceAfter == balanceAfter))
43+ then [ScriptTransfer(address, (balanceAfter - balanceBefore), eggAssetId)]
44+ else throw("Strict value is not equal to itself.")
45+ }
46+ else throw("Strict value is not equal to itself.")
47+ }
48+ else throw("Strict value is not equal to itself.")
49+ }
50+
51+
3352 @Callable(i)
3453 func buyEgg () = {
3554 func getInvocationArgs (contractAddress) = {
4160
4261 let pmt = i.payments[0]
4362 let asset1Amount = pmt.amount
44- let assetId = value(pmt.assetId)
45- let $t019251975 = getPath(assetId)
46- let pathContracts = $t019251975._1
47- let pathAssets = $t019251975._2
48- let balance2Before = getBalance(pathAssets[1])
49- if ((balance2Before == balance2Before))
50- then {
51- let contractVersion = getString(pathContracts[0], "version")
52- let args = if ((contractVersion == "1.0.0"))
53- then [1]
54- else [fraction(asset1Amount, 11000, 10000), asset1Amount]
55- let i1 = invoke(pathContracts[0], "exchange", args, [AttachedPayment(pathAssets[0], asset1Amount)])
56- if ((i1 == i1))
63+ let assetId = pmt.assetId
64+ if ((assetId == unit))
65+ then buyWithWaves(i.caller, asset1Amount)
66+ else {
67+ let $t024152473 = getPath(value(assetId))
68+ let pathContracts = $t024152473._1
69+ let pathAssets = $t024152473._2
70+ let balance2Before = getBalance(pathAssets[1])
71+ if ((balance2Before == balance2Before))
5772 then {
58- let balance2After = getBalance(pathAssets[1])
59- if ((balance2After == balance2After))
73+ let contractVersion = getString(pathContracts[0], "version")
74+ let args = if ((contractVersion == "1.0.0"))
75+ then [1]
76+ else [fraction(asset1Amount, 11000, 10000), asset1Amount]
77+ let i1 = invoke(pathContracts[0], "exchange", args, [AttachedPayment(pathAssets[0], asset1Amount)])
78+ if ((i1 == i1))
6079 then {
61- let asset2Amount = (balance2After - balance2Before)
62- let balance3Before = getBalance(pathAssets[2])
63- if ((balance3Before == balance3Before))
80+ let balance2After = getBalance(pathAssets[1])
81+ if ((balance2After == balance2After))
6482 then {
65- let contract2Version = getString(pathContracts[1], "version")
66- let args2 = if ((contract2Version == "1.0.0"))
67- then [1]
68- else [fraction(asset2Amount, 11000, 10000), asset2Amount]
69- let i2 = invoke(pathContracts[1], "exchange", args2, [AttachedPayment(pathAssets[1], asset2Amount)])
70- if ((i2 == i2))
83+ let asset2Amount = (balance2After - balance2Before)
84+ let balance3Before = getBalance(pathAssets[2])
85+ if ((balance3Before == balance3Before))
7186 then {
72- let balance3After = getBalance(pathAssets[2])
73- if ((balance3After == balance3After))
87+ let contract2Version = getString(pathContracts[1], "version")
88+ let args2 = if ((contract2Version == "1.0.0"))
89+ then [1]
90+ else [fraction(asset2Amount, 11000, 10000), asset2Amount]
91+ let i2 = invoke(pathContracts[1], "exchange", args2, [AttachedPayment(pathAssets[1], asset2Amount)])
92+ if ((i2 == i2))
7493 then {
75- let asset3Amount = (balance3After - balance3Before)
94+ let balance3After = getBalance(pathAssets[2])
95+ if ((balance3After == balance3After))
96+ then {
97+ let asset3Amount = (balance3After - balance3Before)
7698 [ScriptTransfer(i.caller, asset3Amount, pathAssets[2])]
99+ }
100+ else throw("Strict value is not equal to itself.")
77101 }
78102 else throw("Strict value is not equal to itself.")
79103 }
85109 }
86110 else throw("Strict value is not equal to itself.")
87111 }
88- else throw("Strict value is not equal to itself.")
89112 }
90113
91-
92-@Verifier(tx)
93-func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
94114
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let btcPathContracts = [Address(base58'3P8FVZgAJUAq32UEZtTw84qS4zLqEREiEiP'), Address(base58'3PNVFWopwCD9CgGXkpYWEY94oQ5XCAEXBmQ')]
55
66 let btcPathTokens = [base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS', unit, base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS']
77
88 let usdtPathContracts = [Address(base58'3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1'), Address(base58'3PEeJQRJT4v4XvSUBPmxhdWKz439nae7KtQ')]
99
1010 let usdtPathTokens = [base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ', base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p', base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS']
1111
1212 let ethPathContracts = [Address(base58'3PNEC4YKqZiMMytFrYRVtpW2ujvi3aGXRPm'), Address(base58'3PEeJQRJT4v4XvSUBPmxhdWKz439nae7KtQ')]
1313
1414 let ethPathTokens = [base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu', base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p', base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS']
1515
1616 func getPath (assetId) = if ((assetId == base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'))
1717 then $Tuple2(btcPathContracts, btcPathTokens)
1818 else if ((assetId == base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'))
1919 then $Tuple2(usdtPathContracts, usdtPathTokens)
2020 else if ((assetId == base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu'))
2121 then $Tuple2(ethPathContracts, ethPathTokens)
2222 else throw("incorrect asset attached to payment")
2323
2424
2525 func getBalance (assetId) = match assetId {
2626 case x: Unit =>
2727 wavesBalance(this).available
2828 case _ =>
2929 assetBalance(this, value(assetId))
3030 }
3131
3232
33+func buyWithWaves (address,amount) = {
34+ let eggAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
35+ let balanceBefore = getBalance(eggAssetId)
36+ if ((balanceBefore == balanceBefore))
37+ then {
38+ let i1 = invoke(Address(base58'3PNVFWopwCD9CgGXkpYWEY94oQ5XCAEXBmQ'), "exchange", [1], [AttachedPayment(unit, amount)])
39+ if ((i1 == i1))
40+ then {
41+ let balanceAfter = getBalance(eggAssetId)
42+ if ((balanceAfter == balanceAfter))
43+ then [ScriptTransfer(address, (balanceAfter - balanceBefore), eggAssetId)]
44+ else throw("Strict value is not equal to itself.")
45+ }
46+ else throw("Strict value is not equal to itself.")
47+ }
48+ else throw("Strict value is not equal to itself.")
49+ }
50+
51+
3352 @Callable(i)
3453 func buyEgg () = {
3554 func getInvocationArgs (contractAddress) = {
3655 let contractVersion = getString(contractAddress, "version")
3756 if ((contractVersion == "1.0.0"))
3857 then [1]
3958 else [1, 1]
4059 }
4160
4261 let pmt = i.payments[0]
4362 let asset1Amount = pmt.amount
44- let assetId = value(pmt.assetId)
45- let $t019251975 = getPath(assetId)
46- let pathContracts = $t019251975._1
47- let pathAssets = $t019251975._2
48- let balance2Before = getBalance(pathAssets[1])
49- if ((balance2Before == balance2Before))
50- then {
51- let contractVersion = getString(pathContracts[0], "version")
52- let args = if ((contractVersion == "1.0.0"))
53- then [1]
54- else [fraction(asset1Amount, 11000, 10000), asset1Amount]
55- let i1 = invoke(pathContracts[0], "exchange", args, [AttachedPayment(pathAssets[0], asset1Amount)])
56- if ((i1 == i1))
63+ let assetId = pmt.assetId
64+ if ((assetId == unit))
65+ then buyWithWaves(i.caller, asset1Amount)
66+ else {
67+ let $t024152473 = getPath(value(assetId))
68+ let pathContracts = $t024152473._1
69+ let pathAssets = $t024152473._2
70+ let balance2Before = getBalance(pathAssets[1])
71+ if ((balance2Before == balance2Before))
5772 then {
58- let balance2After = getBalance(pathAssets[1])
59- if ((balance2After == balance2After))
73+ let contractVersion = getString(pathContracts[0], "version")
74+ let args = if ((contractVersion == "1.0.0"))
75+ then [1]
76+ else [fraction(asset1Amount, 11000, 10000), asset1Amount]
77+ let i1 = invoke(pathContracts[0], "exchange", args, [AttachedPayment(pathAssets[0], asset1Amount)])
78+ if ((i1 == i1))
6079 then {
61- let asset2Amount = (balance2After - balance2Before)
62- let balance3Before = getBalance(pathAssets[2])
63- if ((balance3Before == balance3Before))
80+ let balance2After = getBalance(pathAssets[1])
81+ if ((balance2After == balance2After))
6482 then {
65- let contract2Version = getString(pathContracts[1], "version")
66- let args2 = if ((contract2Version == "1.0.0"))
67- then [1]
68- else [fraction(asset2Amount, 11000, 10000), asset2Amount]
69- let i2 = invoke(pathContracts[1], "exchange", args2, [AttachedPayment(pathAssets[1], asset2Amount)])
70- if ((i2 == i2))
83+ let asset2Amount = (balance2After - balance2Before)
84+ let balance3Before = getBalance(pathAssets[2])
85+ if ((balance3Before == balance3Before))
7186 then {
72- let balance3After = getBalance(pathAssets[2])
73- if ((balance3After == balance3After))
87+ let contract2Version = getString(pathContracts[1], "version")
88+ let args2 = if ((contract2Version == "1.0.0"))
89+ then [1]
90+ else [fraction(asset2Amount, 11000, 10000), asset2Amount]
91+ let i2 = invoke(pathContracts[1], "exchange", args2, [AttachedPayment(pathAssets[1], asset2Amount)])
92+ if ((i2 == i2))
7493 then {
75- let asset3Amount = (balance3After - balance3Before)
94+ let balance3After = getBalance(pathAssets[2])
95+ if ((balance3After == balance3After))
96+ then {
97+ let asset3Amount = (balance3After - balance3Before)
7698 [ScriptTransfer(i.caller, asset3Amount, pathAssets[2])]
99+ }
100+ else throw("Strict value is not equal to itself.")
77101 }
78102 else throw("Strict value is not equal to itself.")
79103 }
80104 else throw("Strict value is not equal to itself.")
81105 }
82106 else throw("Strict value is not equal to itself.")
83107 }
84108 else throw("Strict value is not equal to itself.")
85109 }
86110 else throw("Strict value is not equal to itself.")
87111 }
88- else throw("Strict value is not equal to itself.")
89112 }
90113
91-
92-@Verifier(tx)
93-func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
94114

github/deemru/w8io/3ef1775 
43.24 ms