tx · EfWQ7CUKSC7EEC7YT23JzPyqyJyBNPkzTj1EEnJmjp1B

3MpKvUfNxrgF7QotPjFwi8thMagSveNScKe:  -0.01400000 Waves

2020.11.17 05:08 [1268742] smart account 3MpKvUfNxrgF7QotPjFwi8thMagSveNScKe > SELF 0.00000000 Waves

{ "type": 13, "id": "EfWQ7CUKSC7EEC7YT23JzPyqyJyBNPkzTj1EEnJmjp1B", "fee": 1400000, "feeAssetId": null, "timestamp": 1605578898599, "version": 2, "chainId": 84, "sender": "3MpKvUfNxrgF7QotPjFwi8thMagSveNScKe", "senderPublicKey": "9GE2xN4fms9YNDxR1hGg52RynqDd8125TA42g4X29ZV7", "proofs": [ "QSHMDskxJqX5z2Ng4R647YRn1btdCncNiqfF77ro9WYPPJFhV3dacCN75iC1Mor5yMoouZUsiB44GcHLLuYcvBZ" ], "script": "base64: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", "height": 1268742, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: xZLTLdg6yRMZ6osQ2mRkCHnjPpXnFNztw3JyhcN3jjC Next: 4qV9EVJ5ZQ2mwaVux3ysFBJV5aJUu8Mo82tqbkPRN1Mt Diff:
OldNewDifferences
2020 let getMsg = toBytes(toBase58String(keccak256(blake2b256(toBytes(m)))))
2121 sigVerify(getMsg, fromBase58String(s), base58'C8jRoXECFheT6JPcAkcyWPadYbxBA6tSyAqXqjq5dicS')
2222 }
23+
24+
25+@Callable(i)
26+func opbrTest (tokenId,qtd,sig) = {
27+ let pmt = i.payments
28+ if ((tokenId == "kjflkdsjf"))
29+ then throw("nada")
30+ else throw((tokenId + toString((qtd + pmt[0].amount))))
31+ }
32+
2333
2434
2535 @Callable(i)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let cf = addressFromPublicKey(fromBase58String("J7vyoUA8Gd5QMq4YVtedpv19dwCYroZEYrN8bKgLzqV8"))
55
66 let opbr = base58'HMov2457acf5MEJr85fvXYL3vrTEevFpsEQkHh1yfdUT'
77
88 func getAllowedTokens (tokenId) = {
99 let allow = match getString(this, tokenId) {
1010 case a: String =>
1111 a
1212 case _ =>
1313 false
1414 }
1515 allow
1616 }
1717
1818
1919 func verification (m,s) = {
2020 let getMsg = toBytes(toBase58String(keccak256(blake2b256(toBytes(m)))))
2121 sigVerify(getMsg, fromBase58String(s), base58'C8jRoXECFheT6JPcAkcyWPadYbxBA6tSyAqXqjq5dicS')
2222 }
23+
24+
25+@Callable(i)
26+func opbrTest (tokenId,qtd,sig) = {
27+ let pmt = i.payments
28+ if ((tokenId == "kjflkdsjf"))
29+ then throw("nada")
30+ else throw((tokenId + toString((qtd + pmt[0].amount))))
31+ }
32+
2333
2434
2535 @Callable(i)
2636 func opbrBuy (tokenId,qtd,sig) = {
2737 let buyerAddr = toBase58String(i.caller.bytes)
2838 let pmt = i.payments
2939 let allowed = getAllowedTokens(tokenId)
3040 if ((size(pmt) == 0))
3141 then throw("Payment for exchange is mandatory")
3242 else if ((size(pmt) == 2))
3343 then throw("Only one payment per transaction is allowed")
3444 else if (!(verification((tokenId + toString((qtd + pmt[0].amount))), sig)))
3545 then throw("Stop hacking me!")
3646 else if (if (isDefined(pmt[0].assetId))
3747 then (allowed == false)
3848 else false)
3949 then throw("The used token is not accepted")
4050 else if (if (isDefined(pmt[0].assetId))
4151 then (fromBase58String(tokenId) != pmt[0].assetId)
4252 else false)
4353 then throw("declared token is different from submitted token")
4454 else {
4555 let c = fraction(1, pmt[0].amount, 100)
4656 [ScriptTransfer(i.caller, qtd, opbr), ScriptTransfer(cf, c, pmt[0].assetId)]
4757 }
4858 }
4959
5060
5161
5262 @Callable(i)
5363 func tokenList (tokenId,ticker) = {
5464 let Addr = toBase58String(i.caller.bytes)
5565 if (if ((Addr != toString(this)))
5666 then (Addr != toString(cf))
5767 else false)
5868 then throw("The address is not authorized to list tokens")
5969 else [StringEntry(tokenId, ticker), ScriptTransfer(cf, 1000000, unit)]
6070 }
6171
6272
6373
6474 @Callable(i)
6575 func tokenDelist (tokenId) = {
6676 let Addr = toBase58String(i.caller.bytes)
6777 if (if ((Addr != toString(this)))
6878 then (Addr != toString(cf))
6979 else false)
7080 then throw("The address is not authorized to delist tokens")
7181 else [DeleteEntry(tokenId), ScriptTransfer(cf, 10000000, unit)]
7282 }
7383
7484
7585 @Verifier(tx)
7686 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7787

github/deemru/w8io/6500d08 
40.31 ms