tx · 95HvVB9KLkoutT82D6T4CXpRX7Pi788mQZxZcgc5JC8E

3MyLnBsVm9pw43K9eba5UExxb3efeai91KP:  -0.01000000 Waves

2022.12.22 15:49 [2371524] smart account 3MyLnBsVm9pw43K9eba5UExxb3efeai91KP > SELF 0.00000000 Waves

{ "type": 13, "id": "95HvVB9KLkoutT82D6T4CXpRX7Pi788mQZxZcgc5JC8E", "fee": 1000000, "feeAssetId": null, "timestamp": 1671713428666, "version": 2, "chainId": 84, "sender": "3MyLnBsVm9pw43K9eba5UExxb3efeai91KP", "senderPublicKey": "E5xdZLn3yHKAn29pTyubhr9R1mkRGg9WKAcpPrCYFYHx", "proofs": [ "5CRnVprD9LkrxrkZJ22BYm6eTWxpJPbAVxEdfUmVH8dxSxeC4YMHsJoAsWi6w7tbgsrbZGB8vGLcEDCyQ9v2YtHp" ], "script": "base64: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", "height": 2371524, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Edf3zztHwQbf29tdqpPKTnhCgKeWrVcWfMNUN9PuV62c Next: 69pGPtN8M53LZYfJRYQutNbhSe7k2MQ5w4d9JWPnkjWM Diff:
OldNewDifferences
7676
7777 @Callable(i)
7878 func funding (eventId) = {
79- let startBlock = valueOrErrorMessage(getInteger(this, ((eventKey + startBlockKey) + toString(eventId))), "err")
80- let endBlock = valueOrErrorMessage(getInteger(this, ((eventKey + endBlockKey) + toString(eventId))), "err")
81- let hardCap = valueOrErrorMessage(getInteger(this, ((eventKey + hardCapKey) + toString(eventId))), "err")
79+ let startBlock = valueOrErrorMessage(getInteger(this, ((eventKey + startBlockKey) + toString(eventId))), "can not find event 1")
80+ let endBlock = valueOrErrorMessage(getInteger(this, ((eventKey + endBlockKey) + toString(eventId))), "can not find event 2")
81+ let hardCap = valueOrErrorMessage(getInteger(this, ((eventKey + hardCapKey) + toString(eventId))), "can not find event 3")
8282 let currentKey = toBase58String(i.caller.bytes)
8383 let totalPayment = valueOrElse(getInteger(this, ((paymentKey + totalPaymentKey) + toString(eventId))), 0)
8484 let walletPayment = valueOrElse(getInteger(this, (((paymentKey + walletPaymentKey) + currentKey) + toString(eventId))), 0)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let admPub = base58'E5xdZLn3yHKAn29pTyubhr9R1mkRGg9WKAcpPrCYFYHx'
55
66 let paymentAsset = base58'3Eh6z6z6ouFpWxGKrPaPnZwmDnDjgYHV6tqCmZf2G7tk'
77
88 let shutDownKey = "_shutDown_"
99
1010 let eventKey = "_event_"
1111
1212 let paymentKey = "_payment_"
1313
1414 let globalEventIdKey = "_eventId_"
1515
1616 let startBlockKey = "_startBlock_"
1717
1818 let endBlockKey = "_endBlock_"
1919
2020 let imageKey = "_image_"
2121
2222 let ownerKey = "_owner_"
2323
2424 let urlKey = "_url_"
2525
2626 let hardCapKey = "_hardCap_"
2727
2828 let titleKey = "_title_"
2929
3030 let shareHolderCountKey = "_shareHolderCount_"
3131
3232 let totalPaymentKey = "_totalPayment_"
3333
3434 let walletPaymentKey = "_walletPayment_"
3535
3636 func isPaymentOk (i) = {
3737 let acceptableAssetId = paymentAsset
3838 if ((size(i.payments) == 0))
3939 then throw("Payment not attached")
4040 else {
4141 let p = i.payments[0]
4242 match p.assetId {
4343 case assetId: ByteVector =>
4444 if ((assetId == acceptableAssetId))
4545 then (p.amount > 0)
4646 else false
4747 case _ =>
4848 throw("Wrong payment asset")
4949 }
5050 }
5151 }
5252
5353
5454 @Callable(i)
5555 func shutdown (isOpen) = if ((i.callerPublicKey == admPub))
5656 then [BooleanEntry(shutDownKey, isOpen)]
5757 else throw("you are not allow to do this!")
5858
5959
6060
6161 @Callable(i)
6262 func settings () = throw("settings")
6363
6464
6565
6666 @Callable(i)
6767 func create (title,image,owner,startBlock,endBlock,url,hardCap) = {
6868 let eventId = valueOrElse(getInteger(this, globalEventIdKey), 0)
6969 let increaseEventId = (eventId + 1)
7070 if ((i.callerPublicKey == admPub))
7171 then [StringEntry(((eventKey + imageKey) + toString(increaseEventId)), image), StringEntry(((eventKey + ownerKey) + toString(increaseEventId)), owner), StringEntry(((eventKey + titleKey) + toString(increaseEventId)), title), IntegerEntry(((eventKey + startBlockKey) + toString(increaseEventId)), startBlock), IntegerEntry(((eventKey + endBlockKey) + toString(increaseEventId)), endBlock), StringEntry(((eventKey + urlKey) + toString(increaseEventId)), url), IntegerEntry(((eventKey + hardCapKey) + toString(increaseEventId)), hardCap), IntegerEntry((eventKey + globalEventIdKey), increaseEventId)]
7272 else throw("you are not allowed")
7373 }
7474
7575
7676
7777 @Callable(i)
7878 func funding (eventId) = {
79- let startBlock = valueOrErrorMessage(getInteger(this, ((eventKey + startBlockKey) + toString(eventId))), "err")
80- let endBlock = valueOrErrorMessage(getInteger(this, ((eventKey + endBlockKey) + toString(eventId))), "err")
81- let hardCap = valueOrErrorMessage(getInteger(this, ((eventKey + hardCapKey) + toString(eventId))), "err")
79+ let startBlock = valueOrErrorMessage(getInteger(this, ((eventKey + startBlockKey) + toString(eventId))), "can not find event 1")
80+ let endBlock = valueOrErrorMessage(getInteger(this, ((eventKey + endBlockKey) + toString(eventId))), "can not find event 2")
81+ let hardCap = valueOrErrorMessage(getInteger(this, ((eventKey + hardCapKey) + toString(eventId))), "can not find event 3")
8282 let currentKey = toBase58String(i.caller.bytes)
8383 let totalPayment = valueOrElse(getInteger(this, ((paymentKey + totalPaymentKey) + toString(eventId))), 0)
8484 let walletPayment = valueOrElse(getInteger(this, (((paymentKey + walletPaymentKey) + currentKey) + toString(eventId))), 0)
8585 let shareHolderCount = valueOrElse(getInteger(this, ((paymentKey + shareHolderCountKey) + toString(eventId))), 0)
8686 if ((startBlock > height))
8787 then throw("crowdfunding not started")
8888 else if ((height >= endBlock))
8989 then throw("crowdfunding is over")
9090 else if ((totalPayment >= hardCap))
9191 then throw("crowdfunding is reached to hard cap. thank you for participating!")
9292 else if (!(isPaymentOk(i)))
9393 then throw("you have to attach payment greater than zero")
9494 else {
9595 let shutDown = valueOrElse(getBoolean(this, shutDownKey), true)
9696 if (shutDown)
9797 then throw("emergency shutdown")
9898 else {
9999 let p = i.payments[0]
100100 let paymentAmount = p.amount
101101 [IntegerEntry(((paymentKey + shareHolderCountKey) + toString(eventId)), (shareHolderCount + 1)), IntegerEntry(((paymentKey + totalPaymentKey) + toString(eventId)), (totalPayment + paymentAmount)), IntegerEntry(((((paymentKey + walletPaymentKey) + currentKey) + "_") + toString(eventId)), (walletPayment + paymentAmount))]
102102 }
103103 }
104104 }
105105
106106
107107
108108 @Callable(i)
109109 func claim () = throw("event owner will claim the money")
110110
111111
112112
113113 @Callable(i)
114114 func refund () = throw("if not success payers gonna refund")
115115
116116
117117
118118 @Callable(i)
119119 func delete (key) = if ((i.callerPublicKey == admPub))
120120 then [DeleteEntry(key)]
121121 else throw("you are not allowed to do this!")
122122
123123
124124 @Verifier(tx)
125125 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
126126

github/deemru/w8io/026f985 
29.36 ms