tx · FFbcuEKBFXTAvS4Y4SdSGiyiNsMW4efqcomnGqJs3UGu

3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW:  -0.01400000 Waves

2020.01.04 03:37 [838422] smart account 3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW > SELF 0.00000000 Waves

{ "type": 13, "id": "FFbcuEKBFXTAvS4Y4SdSGiyiNsMW4efqcomnGqJs3UGu", "fee": 1400000, "feeAssetId": null, "timestamp": 1578098335816, "version": 1, "sender": "3MyV9Fm9cwW9W68VCGfPvejLujx7xVpJiKW", "senderPublicKey": "8zVjiVAuhkkAyQsSHHvjkNNoN8WDKJAEBV5nSpiyyYWr", "proofs": [ "3BmCepWVQMdZsoSK5bLKYqv31qKa4cB6urMGmvomDcLy73wuh4gFPr1D3URUP2vk5oNJ7Uv8rAsbTVVcuxhye4zo" ], "script": "base64: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", "chainId": 84, "height": 838422, "spentComplexity": 0 } View: original | compacted Prev: 6DEjRXmCMd8DYiZqmQA4WsQAXF6756XS61FVBcgFXkGB Next: FFrLygYMTPpHGDKLyvVRcFVYPTNi1b1GS7w3uj96HTcU Diff:
OldNewDifferences
1212 let euroId = base58'AsuWyM9MUUsMmWkK7jS48L3ky6gA1pxx7QtEYPbfLjAJ'
1313
1414 @Callable(i)
15-func deposit (compeStart,id,compeNum) = {
15+func deposit (compeStart,id,compe) = {
16+ let compeNum = toString(compe)
1617 let pmt = extract(i.payment)
1718 let paymentId = pmt.assetId
1819 let currentKey = toBase58String(i.caller.bytes)
2324 0
2425 }
2526 let newAmount = (currentAmount + pmt.amount)
26- WriteSet([DataEntry(((((id + "_") + compeNum) + "_") + currentKey), newAmount), DataEntry(((((id + "_compeStart_") + compeNum) + "_") + currentKey), compeStart)])
27+ WriteSet([DataEntry(((((compeNum + "_") + id) + "_") + currentKey), newAmount), DataEntry(((((compeNum + "_") + id) + "_compeStart_") + currentKey), compeStart)])
2728 }
2829
2930
3031
3132 @Callable(i)
32-func withdraw (amount,id,compeNum) = {
33+func withdraw (amount,id,compe) = {
34+ let compeNum = toString(compe)
3335 let currentKey = toBase58String(i.caller.bytes)
34- let compeStart = match getInteger(this, ((((id + "_compeStart_") + compeNum) + "_") + currentKey)) {
36+ let compeStart = match getInteger(this, ((((compeNum + "_") + id) + "_compeStart_") + currentKey)) {
3537 case a: Int =>
3638 a
3739 case _ =>
3840 0
3941 }
40- let currentAmount = match getInteger(this, ((((id + "_") + compeNum) + "_") + currentKey)) {
42+ let currentAmount = match getInteger(this, ((((compeNum + "_") + id) + "_") + currentKey)) {
4143 case a: Int =>
4244 a
4345 case _ =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let dappAcountPubKey = base58'7DERSZYEoBTSwaTrN1ktwnx1Y5D46mSpMSayUNs8CmcK'
55
66 let par7Id = base58'EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm'
77
88 let usdnId = base58'3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC'
99
1010 let btcId = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn'
1111
1212 let euroId = base58'AsuWyM9MUUsMmWkK7jS48L3ky6gA1pxx7QtEYPbfLjAJ'
1313
1414 @Callable(i)
15-func deposit (compeStart,id,compeNum) = {
15+func deposit (compeStart,id,compe) = {
16+ let compeNum = toString(compe)
1617 let pmt = extract(i.payment)
1718 let paymentId = pmt.assetId
1819 let currentKey = toBase58String(i.caller.bytes)
1920 let currentAmount = match getInteger(this, currentKey) {
2021 case a: Int =>
2122 a
2223 case _ =>
2324 0
2425 }
2526 let newAmount = (currentAmount + pmt.amount)
26- WriteSet([DataEntry(((((id + "_") + compeNum) + "_") + currentKey), newAmount), DataEntry(((((id + "_compeStart_") + compeNum) + "_") + currentKey), compeStart)])
27+ WriteSet([DataEntry(((((compeNum + "_") + id) + "_") + currentKey), newAmount), DataEntry(((((compeNum + "_") + id) + "_compeStart_") + currentKey), compeStart)])
2728 }
2829
2930
3031
3132 @Callable(i)
32-func withdraw (amount,id,compeNum) = {
33+func withdraw (amount,id,compe) = {
34+ let compeNum = toString(compe)
3335 let currentKey = toBase58String(i.caller.bytes)
34- let compeStart = match getInteger(this, ((((id + "_compeStart_") + compeNum) + "_") + currentKey)) {
36+ let compeStart = match getInteger(this, ((((compeNum + "_") + id) + "_compeStart_") + currentKey)) {
3537 case a: Int =>
3638 a
3739 case _ =>
3840 0
3941 }
40- let currentAmount = match getInteger(this, ((((id + "_") + compeNum) + "_") + currentKey)) {
42+ let currentAmount = match getInteger(this, ((((compeNum + "_") + id) + "_") + currentKey)) {
4143 case a: Int =>
4244 a
4345 case _ =>
4446 0
4547 }
4648 let newAmount = (currentAmount - amount)
4749 if ((lastBlock.timestamp > compeStart))
4850 then throw("Can't withdraw compe start")
4951 else if ((0 > amount))
5052 then throw("Can't withdraw negative amount")
5153 else if ((0 > newAmount))
5254 then throw("Not enough balance")
5355 else if ((id == "EtV3CXQ4wqm28WPB1KaBv5B9ke2bpXRZMutYNEJUQcXm"))
5456 then ScriptResult(WriteSet([DataEntry(((((id + "_") + compeNum) + "_") + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, par7Id)]))
5557 else if ((id == "3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC"))
5658 then ScriptResult(WriteSet([DataEntry(((((id + "_") + compeNum) + "_") + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, usdnId)]))
5759 else if ((id == "DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn"))
5860 then ScriptResult(WriteSet([DataEntry(((((id + "_") + compeNum) + "_") + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, btcId)]))
5961 else if ((id == "AsuWyM9MUUsMmWkK7jS48L3ky6gA1pxx7QtEYPbfLjAJ"))
6062 then ScriptResult(WriteSet([DataEntry(((((id + "_") + compeNum) + "_") + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, euroId)]))
6163 else if ((id == "WAVES"))
6264 then ScriptResult(WriteSet([DataEntry(((((id + "_") + compeNum) + "_") + currentKey), newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
6365 else throw("Can't withdraw")
6466 }
6567
6668
6769 @Verifier(tx)
6870 func verify () = match tx {
6971 case ttx: TransferTransaction =>
7072 sigVerify(ttx.bodyBytes, ttx.proofs[0], ttx.senderPublicKey)
7173 case stx: SetScriptTransaction =>
7274 sigVerify(stx.bodyBytes, stx.proofs[0], stx.senderPublicKey)
7375 case _ =>
7476 true
7577 }
7678

github/deemru/w8io/873ac7e 
49.79 ms