tx · 8xZ4F1vQCn8JrbBNiwLjHqnHeEbFaa3g4o9czPvehJsr

3NB2jbJZo5pokBTW3c4aiat3w9LbSLCbGU3:  -0.04000000 Waves

2019.11.09 02:58 [756674] smart account 3NB2jbJZo5pokBTW3c4aiat3w9LbSLCbGU3 > SELF 0.00000000 Waves

{ "type": 13, "id": "8xZ4F1vQCn8JrbBNiwLjHqnHeEbFaa3g4o9czPvehJsr", "fee": 4000000, "feeAssetId": null, "timestamp": 1573257538887, "version": 1, "sender": "3NB2jbJZo5pokBTW3c4aiat3w9LbSLCbGU3", "senderPublicKey": "D55uA65TM8azYFSfAKgf5mzRE1Do6r7bNchUFMUw4QFp", "proofs": [ "xT8fBY5uohttXpDFHajSgR4F9wEtrkh3Nii9fYPJawU6Nj2zr5FXKrNx4RWWGbwf3RGfsfapn4bpNRcrNKX5kGR" ], "script": "base64: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", "chainId": 84, "height": 756674, "spentComplexity": 0 } View: original | compacted Prev: 8WHkqnXCh7oV6gWXB3GkWJNRHYo98UsEGHXEo3zVHdmW Next: AKcDLnMyqvppYrVAEeETTxjH4utiFgDKo1q2FtDtKGbc Diff:
OldNewDifferences
77
88 let ADMIN = "3NBDgR8hU6W86Sstn3EGid8k9uxkqiJjxT6"
99
10-let TOKEN = base58'EJ85vmBXWEtV4yHLPRTxex4q4s9mC8jKUhheyjZxwnPw'
10+let TOKEN = base58'4p71jCgmDVcv2J9HLrtEXRSE9UPNFfVwGg7nRh2f6r5r'
1111
1212 let wEUR = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1313
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let YEAR = 31556952000
55
66 let MONTH = (YEAR / 12)
77
88 let ADMIN = "3NBDgR8hU6W86Sstn3EGid8k9uxkqiJjxT6"
99
10-let TOKEN = base58'EJ85vmBXWEtV4yHLPRTxex4q4s9mC8jKUhheyjZxwnPw'
10+let TOKEN = base58'4p71jCgmDVcv2J9HLrtEXRSE9UPNFfVwGg7nRh2f6r5r'
1111
1212 let wEUR = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1313
1414 let WVS = 100000000
1515
1616 let PRICExBASIC = 60
1717
1818 let PRICExADVANCED = 50
1919
2020 let BASIC = "basic"
2121
2222 let ADVANCED = "advanced"
2323
2424 let NONE = "none"
2525
2626 func getNumberByKey (key) = match getInteger(this, key) {
2727 case n: Int =>
2828 n
2929 case _ =>
3030 0
3131 }
3232
3333
3434 func getStrByKey (key) = match getString(this, key) {
3535 case s: String =>
3636 s
3737 case _ =>
3838 NONE
3939 }
4040
4141
4242 func getKeySubscriptionEnd (addr) = (("member_" + addr) + "_subscription_end")
4343
4444
4545 func getKeyPlan (addr) = (("member_" + addr) + "_plan")
4646
4747
4848 func getTransferSet (account) = TransferSet([ScriptTransfer(account, 1, TOKEN)])
4949
5050
5151 func getWriteSet (account,period,plan) = WriteSet([DataEntry(getKeySubscriptionEnd(account), (lastBlock.timestamp + period)), DataEntry(getKeyPlan(account), plan)])
5252
5353
5454 func getResult (address,period,plan,isRenewal) = {
5555 let account = toBase58String(address.bytes)
5656 if (isRenewal)
5757 then getWriteSet(account, period, plan)
5858 else ScriptResult(getWriteSet(account, period, plan), getTransferSet(address))
5959 }
6060
6161
6262 @Callable(i)
6363 func subscribe (plan) = {
6464 let payment = extract(i.payment)
6565 if ((payment.assetId != wEUR))
6666 then throw("can use only wEUR token at the moment")
6767 else {
6868 let account = toBase58String(i.caller.bytes)
6969 let subscriptionEnd = getNumberByKey(getKeySubscriptionEnd(account))
7070 let isRenewal = (subscriptionEnd != 0)
7171 if ((plan == BASIC))
7272 then if ((PRICExBASIC > payment.amount))
7373 then throw("unsufficient payment amount for basic plan")
7474 else getResult(i.caller, YEAR, plan, isRenewal)
7575 else if ((plan == ADVANCED))
7676 then if ((PRICExADVANCED > payment.amount))
7777 then throw("unsufficient payment amount for advanced plan")
7878 else getResult(i.caller, MONTH, plan, isRenewal)
7979 else throw(("subscription to an unknown plan: " + plan))
8080 }
8181 }
8282
8383
8484
8585 @Callable(i)
8686 func subscribeUser (userAddress,plan) = {
8787 let account = toBase58String(i.caller.bytes)
8888 let dAppAccount = toBase58String(this.bytes)
8989 if (if ((account != ADMIN))
9090 then (account != dAppAccount)
9191 else false)
9292 then throw("only admins can do that")
9393 else {
9494 let subscriptionEnd = getNumberByKey(getKeySubscriptionEnd(userAddress))
9595 let isRenewal = (subscriptionEnd != 0)
9696 let period = if ((plan == BASIC))
9797 then YEAR
9898 else if ((plan == ADVANCED))
9999 then MONTH
100100 else throw(("subscription to an unknown plan: " + plan))
101101 getResult(addressFromStringValue(userAddress), period, plan, isRenewal)
102102 }
103103 }
104104
105105

github/deemru/w8io/c3f4982 
32.67 ms