tx · 43nR2V446viMoai4CSHnDWt5PsUwEfqWfnBpfktxyUUZ

3MpKvUfNxrgF7QotPjFwi8thMagSveNScKe:  -0.01400000 Waves

2020.12.01 14:11 [1289515] smart account 3MpKvUfNxrgF7QotPjFwi8thMagSveNScKe > SELF 0.00000000 Waves

{ "type": 13, "id": "43nR2V446viMoai4CSHnDWt5PsUwEfqWfnBpfktxyUUZ", "fee": 1400000, "feeAssetId": null, "timestamp": 1606821058898, "version": 2, "chainId": 84, "sender": "3MpKvUfNxrgF7QotPjFwi8thMagSveNScKe", "senderPublicKey": "9GE2xN4fms9YNDxR1hGg52RynqDd8125TA42g4X29ZV7", "proofs": [ "4mYkdq5vBVaD6kcHPX3gYSoMEprtFac5n962LVLE8fxhLC3X8zaT7XMhQGNcgMcJbTPQ6hbxnyeYZatyR6mUxccZ" ], "script": "base64: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", "height": 1289515, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9Lf9kbCkyTXnRoDw11CoS6vmYE5cZxusnbwuPP1sDLaw Next: none Diff:
OldNewDifferences
6767 let senderAddr = toBase58String(i.caller.bytes)
6868 if ((senderAddr != toString(gtw)))
6969 then throw("Your account is not authorized for gateway execution")
70- else if ((getPayout(((toString(orderId) + " ") + payoutAddr)) == true))
70+ else if ((getPayout(((toString(orderId) + "_") + payoutAddr)) == true))
7171 then throw("Payout already Executed")
7272 else [ScriptTransfer(i.caller, 1000000, unit), ScriptTransfer(addressFromStringValue(payoutAddr), amount, opbr)]
7373 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let cf = addressFromPublicKey(fromBase58String("J7vyoUA8Gd5QMq4YVtedpv19dwCYroZEYrN8bKgLzqV8"))
55
66 let gtw = addressFromPublicKey(fromBase58String("C8jRoXECFheT6JPcAkcyWPadYbxBA6tSyAqXqjq5dicS"))
77
88 let opbr = base58'BN6ta4Sfmmh8tfmJE4pqJrSxLNJReAqnerPePYqkjcjG'
99
1010 func getAllowedTokens (tokenId) = {
1111 let allow = match getString(this, tokenId) {
1212 case a: String =>
1313 a
1414 case _ =>
1515 false
1616 }
1717 allow
1818 }
1919
2020
2121 func getPayout (payoutKey) = {
2222 let payout = match getString(gtw, payoutKey) {
2323 case a: Unit =>
2424 false
2525 case _ =>
2626 true
2727 }
2828 payout
2929 }
3030
3131
3232 func verification (m,s) = {
3333 let getMsg = toBytes(toBase58String(keccak256(blake2b256(toBytes(m)))))
3434 sigVerify(getMsg, fromBase58String(s), base58'C8jRoXECFheT6JPcAkcyWPadYbxBA6tSyAqXqjq5dicS')
3535 }
3636
3737
3838 @Callable(i)
3939 func opbrBuy (tokenId,qtd,sig) = {
4040 let buyerAddr = toBase58String(i.caller.bytes)
4141 let pmt = i.payments
4242 let allowed = getAllowedTokens(tokenId)
4343 if ((size(pmt) == 0))
4444 then throw("Payment for exchange is mandatory")
4545 else if ((size(pmt) == 2))
4646 then throw("Only one payment per transaction is allowed")
4747 else if (!(verification((tokenId + toString((qtd + pmt[0].amount))), sig)))
4848 then throw("Stop hacking me!")
4949 else if (if (isDefined(pmt[0].assetId))
5050 then (allowed == false)
5151 else false)
5252 then throw("The used token is not accepted")
5353 else if (if (isDefined(pmt[0].assetId))
5454 then (fromBase58String(tokenId) != pmt[0].assetId)
5555 else false)
5656 then throw("declared token is different from submitted token")
5757 else {
5858 let c = fraction(1, pmt[0].amount, 100)
5959 [ScriptTransfer(i.caller, qtd, opbr), ScriptTransfer(cf, c, pmt[0].assetId)]
6060 }
6161 }
6262
6363
6464
6565 @Callable(i)
6666 func bygtw (orderId,payoutAddr,amount) = {
6767 let senderAddr = toBase58String(i.caller.bytes)
6868 if ((senderAddr != toString(gtw)))
6969 then throw("Your account is not authorized for gateway execution")
70- else if ((getPayout(((toString(orderId) + " ") + payoutAddr)) == true))
70+ else if ((getPayout(((toString(orderId) + "_") + payoutAddr)) == true))
7171 then throw("Payout already Executed")
7272 else [ScriptTransfer(i.caller, 1000000, unit), ScriptTransfer(addressFromStringValue(payoutAddr), amount, opbr)]
7373 }
7474
7575
7676
7777 @Callable(i)
7878 func tokenList (tokenId,ticker) = {
7979 let Addr = toBase58String(i.caller.bytes)
8080 if (if ((Addr != toString(this)))
8181 then (Addr != toString(cf))
8282 else false)
8383 then throw("The address is not authorized to list tokens")
8484 else [StringEntry(tokenId, ticker), ScriptTransfer(cf, 1000000, unit)]
8585 }
8686
8787
8888
8989 @Callable(i)
9090 func tokenDelist (tokenId) = {
9191 let Addr = toBase58String(i.caller.bytes)
9292 if (if ((Addr != toString(this)))
9393 then (Addr != toString(cf))
9494 else false)
9595 then throw("The address is not authorized to delist tokens")
9696 else [DeleteEntry(tokenId), ScriptTransfer(cf, 10000000, unit)]
9797 }
9898
9999
100100 @Verifier(tx)
101101 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
102102

github/deemru/w8io/c3f4982 
26.12 ms