tx · 6WZjsTb3UjQnBUi7rMF7p7Hb7XXYnc8KUeWiQHHeUhu

3Muq5wV3BDmwMhJVZYV29DzxmK1omjyuibx:  -0.01400000 Waves

2019.12.30 15:44 [831832] smart account 3Muq5wV3BDmwMhJVZYV29DzxmK1omjyuibx > SELF 0.00000000 Waves

{ "type": 13, "id": "6WZjsTb3UjQnBUi7rMF7p7Hb7XXYnc8KUeWiQHHeUhu", "fee": 1400000, "feeAssetId": null, "timestamp": 1577709899454, "version": 1, "sender": "3Muq5wV3BDmwMhJVZYV29DzxmK1omjyuibx", "senderPublicKey": "2VedaSDtTc2zJEQPTDwrUiyjjbQAbFbjtyuFWe5HSt4S", "proofs": [ "2NE9rMBPHGnDUUZPVQSxH7ubnER7Z7ngohJDMCcwQSMsYQuQRqk8dpXQ952mQH1mC5QWkZnLYyhyakL1NLaUaatT" ], "script": "base64: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ZXJjZW50BAAAABVkaXZpZGVuZHNUb3RhbEJhbGFuY2UJAABkAAAAAgkAA+sAAAACBQAAAAR0aGlzBQAAAAdhc3NldElkBQAAABJkaXZpZGVuZHNXaXRoZHJhd24EAAAACXVzZXJTdGFrZQkAAGkAAAACCQAAaAAAAAIFAAAAFWRpdmlkZW5kc1RvdGFsQmFsYW5jZQUAAAAQZGl2aWRlbmRzUGVyY2VudAAAAAAAAAAAZAkAAGUAAAACBQAAAAl1c2VyU3Rha2UFAAAAEmRpdmlkZW5kc1dpdGhkcmF3bgAAAAMAAAABaQEAAAANY3JlYXRlRGVwb3NpdAAAAAYAAAAJYXNzZXROYW1lAAAABmFtb3VudAAAABBkZWl2aWRlbmRQZXJjZW50AAAAC3N0YXJ0SGVpZ2h0AAAADmR1cmF0aW9uQmxvY2tzAAAADnN0YXJ0VGltZXN0YW1wBAAAAAljYWxsZXJQdWIJAQAAAA1jYWxsZXJJc0FkbWluAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAABVkZXBvc2l0QWxyZWFkeUNyZWF0ZWQJAQAAABNkZXBvc2l0Q3JlYXRlZENoZWNrAAAAAQUAAAAJYXNzZXROYW1lAwUAAAAVZGVwb3NpdEFscmVhZHlDcmVhdGVkCQAAAgAAAAECAAAAGkRlcG9zaXQgaXMgYWxyZWFkeSBjcmVhdGVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWFzc2V0TmFtZQIAAAANX0RlcG9zaXRTdGF0ZQIAAAAHQ3JlYXRlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhc3NldE5hbWUCAAAADl9EZXBvc2l0QW1vdW50BQAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXNzZXROYW1lAgAAABBfRGl2aWRlbmRQZXJjZW50BQAAABBkZWl2aWRlbmRQZXJjZW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWFzc2V0TmFtZQIAAAASX0RlcG9zaXRTdGFydEJsb2NrBQAAAAtzdGFydEhlaWdodAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhc3NldE5hbWUCAAAAFl9EZXBvc2l0U3RhcnRUaW1lc3RhbXAFAAAADnN0YXJ0VGltZXN0YW1wCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWFzc2V0TmFtZQIAAAAVX0RlcG9zaXREdXJhdGlvbkJsb2NrBQAAAA5kdXJhdGlvbkJsb2NrcwUAAAADbmlsAAAAAWkBAAAAB2RlcG9zaXQAAAAABAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAJYXNzZXROYW1lCQEAAAARYXNzZXRCYXNlNThUb05hbWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAABmFtb3VudAkBAAAAC2Ftb3VudENoZWNrAAAAAgUAAAAJYXNzZXROYW1lCAUAAAADcG10AAAABmFtb3VudAQAAAAMZGVwb3NpdFN0YXRlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXNzZXROYW1lAgAAAA1fRGVwb3NpdFN0YXRlAwkAAAAAAAACBQAAAAxkZXBvc2l0U3RhdGUCAAAAB0NyZWF0ZWQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAApfT3BlcmF0aW9uBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXNzZXROYW1lAgAAAA1fRGVwb3NpdE93bmVyBQAAAAljYWxsZXJQdWIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXNzZXROYW1lAgAAAA1fRGVwb3NpdFN0YXRlAgAAAAZBY3RpdmUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXNzZXROYW1lAgAAABJfRGl2aWRlbmRXaXRoZHJhd24AAAAAAAAAAAAFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA5kcmFnb25GcnVpdFB1YgUAAAAGYW1vdW50CAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA25pbAkAAAIAAAABAgAAABZEZXBvc2l0IGlzIHVuYXZhaWxhYmxlAAAAAWkBAAAAEXdpdGhkcmF3RGl2aWRlbmRzAAAAAQAAAAlhc3NldE5hbWUEAAAAB2Fzc2V0SWQJAQAAABFhc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAACWFzc2V0TmFtZQQAAAAMZGVwb3NpdE93bmVyCQEAAAAUY2FsbGVySXNEZXBvc2l0T3duZXIAAAACBQAAAAlhc3NldE5hbWUJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAABBkaXZpZGVuZHNQZXJjZW50CQEAAAATZ2V0RGl2aWRlbmRzUGVyY2VudAAAAAEFAAAACWFzc2V0TmFtZQQAAAASZGl2aWRlbmRzV2l0aGRyYXduCQEAAAAbZ2V0RGl2aWRlbmRzV2l0aGRyYXduQW1vdW50AAAAAQUAAAAJYXNzZXROYW1lBAAAABJkaXZpZGVuZHNBdmFsaWFibGUJAQAAABJnZXREaXZpZGVuZEJhbGFuY2UAAAADBQAAAAdhc3NldElkBQAAABJkaXZpZGVuZHNXaXRoZHJhd24FAAAAEGRpdmlkZW5kc1BlcmNlbnQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWFzc2V0TmFtZQIAAAASX0RpdmlkZW5kV2l0aGRyYXduCQAAZAAAAAIFAAAAEmRpdmlkZW5kc1dpdGhkcmF3bgUAAAASZGl2aWRlbmRzQXZhbGlhYmxlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAAAxkZXBvc2l0T3duZXIFAAAAEmRpdmlkZW5kc0F2YWxpYWJsZQUAAAAHYXNzZXRJZAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAZ9LtjQ", "chainId": 84, "height": 831832, "spentComplexity": 0 } View: original | compacted Prev: 4Sjx5AjS1w4oTGPZdBtH1QM6DcDSrTjseCXywWPfD7vD Next: none Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let DragonFruitAddress = "3MzDG9rt13Eu5uw4mZqkG5axDiijvVSDbjc"
4+let dragonFruitPub = fromBase58String("6MTSfDEbfZ9Vr7hxN2PkJT6tQvCPZ1jN7K9L8gCiZnF5")
55
66 let divProgramPub = fromBase58String("2VedaSDtTc2zJEQPTDwrUiyjjbQAbFbjtyuFWe5HSt4S")
77
138138 let amount = amountCheck(assetName, pmt.amount)
139139 let depositState = getString(this, (assetName + "_DepositState"))
140140 if ((depositState == "Created"))
141- then ScriptResult(WriteSet([DataEntry("_Operation", height), DataEntry((assetName + "_DepositOwner"), callerPub), DataEntry((assetName + "_DepositState"), "Active"), DataEntry((assetName + "_DividendWithdrawn"), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(DragonFruitAddress), amount, pmt.assetId)]))
141+ then ScriptResult(WriteSet([DataEntry("_Operation", height), DataEntry((assetName + "_DepositOwner"), callerPub), DataEntry((assetName + "_DepositState"), "Active"), DataEntry((assetName + "_DividendWithdrawn"), 0)]), TransferSet([ScriptTransfer(addressFromPublicKey(dragonFruitPub), amount, pmt.assetId)]))
142142 else throw("Deposit is unavailable")
143143 }
144144
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let DragonFruitAddress = "3MzDG9rt13Eu5uw4mZqkG5axDiijvVSDbjc"
4+let dragonFruitPub = fromBase58String("6MTSfDEbfZ9Vr7hxN2PkJT6tQvCPZ1jN7K9L8gCiZnF5")
55
66 let divProgramPub = fromBase58String("2VedaSDtTc2zJEQPTDwrUiyjjbQAbFbjtyuFWe5HSt4S")
77
88 let adminPub = fromBase58String("5yjcfvH6iuwrkFghXuWaJeMppaQ893FSs8HCAgVQzuNY")
99
1010 let wavesAssetId = unit
1111
1212 let btcAssetId = base58'8HRQdqJBBeqZvgMtg6we6sw11i5GzpFNs7onNeVRBmaq'
1313
1414 let ethAssetId = base58'4oHq3C7ar7kmcRHEZBrgPyGtU6fkqJ1pHoRYboKeYSWQ'
1515
1616 let ltcAssetId = base58'Gd9pdZw9muDBZwwsQLqyigRJCDABbiJaksmemzFCorsV'
1717
1818 let westAssetId = base58'C2Pz1Q9QYaF9MkK9J9mX9vAMVc25R3w6Lr5g5B5Yje87'
1919
2020 let wctAssetId = base58'AMQkRmWSWHEd1nMDvDZFkadoCFCxRkDzBsEbscJ9ZZ2P'
2121
2222 func callerIsAdmin (callerPublicKey) = if ((callerPublicKey == adminPub))
2323 then callerPublicKey
2424 else throw("You cannot create deposits")
2525
2626
2727 func callerIsDepositOwner (assetName,callerPublicKey) = {
2828 let depositOwner = getString(this, (assetName + "_DepositOwner"))
2929 if ((callerPublicKey == depositOwner))
3030 then callerPublicKey
3131 else throw("Only deposit owner can withdrawal dividends")
3232 }
3333
3434
3535 func depositCreatedCheck (assetName) = {
3636 let key = (assetName + "_DepositOwner")
3737 let val = getString(this, key)
3838 match val {
3939 case a: String =>
4040 true
4141 case _ =>
4242 false
4343 }
4444 }
4545
4646
4747 func amountCheck (assetName,pmtAmount) = {
4848 let key = (assetName + "_DepositAmount")
4949 let val = getInteger(this, key)
5050 let depositAmount = match val {
5151 case a: Int =>
5252 a
5353 case _ =>
5454 throw("Couldn't find deposit amount")
5555 }
5656 if ((pmtAmount == depositAmount))
5757 then pmtAmount
5858 else throw("Amount is incorrect")
5959 }
6060
6161
6262 func assetBase58ToName (assetId) = if (!(isDefined(assetId)))
6363 then "WAVES"
6464 else if ((assetId == btcAssetId))
6565 then "BTC"
6666 else if ((assetId == ethAssetId))
6767 then "ETH"
6868 else if ((assetId == ltcAssetId))
6969 then "LTC"
7070 else if ((assetId == westAssetId))
7171 then "WEST"
7272 else if ((assetId == wctAssetId))
7373 then "WCT"
7474 else throw("AssetId is incorrect")
7575
7676
7777 func assetNameToBase58 (assetName) = if ((assetName == "WAVES"))
7878 then wavesAssetId
7979 else if ((assetName == "BTC"))
8080 then btcAssetId
8181 else if ((assetName == "ETH"))
8282 then ethAssetId
8383 else if ((assetName == "LTC"))
8484 then ltcAssetId
8585 else if ((assetName == "WEST"))
8686 then westAssetId
8787 else if ((assetName == "WCT"))
8888 then wctAssetId
8989 else throw("Asset name is incorrect")
9090
9191
9292 func getDividendsPercent (assetName) = {
9393 let key = (assetName + "_DividendPercent")
9494 let val = getInteger(this, key)
9595 match val {
9696 case a: Int =>
9797 a
9898 case _ =>
9999 throw("Couldn't Find dividend percent")
100100 }
101101 }
102102
103103
104104 func getDividendsWithdrawnAmount (assetName) = {
105105 let val = getInteger(this, (assetName + "_DividendWithdrawn"))
106106 match val {
107107 case a: Int =>
108108 a
109109 case _ =>
110110 0
111111 }
112112 }
113113
114114
115115 func getDividendBalance (assetId,dividendsWithdrawn,dividendsPercent) = {
116116 let dividendsTotalBalance = (assetBalance(this, assetId) + dividendsWithdrawn)
117117 let userStake = ((dividendsTotalBalance * dividendsPercent) / 100)
118118 (userStake - dividendsWithdrawn)
119119 }
120120
121121
122122 @Callable(i)
123123 func createDeposit (assetName,amount,deividendPercent,startHeight,durationBlocks,startTimestamp) = {
124124 let callerPub = callerIsAdmin(i.callerPublicKey)
125125 let depositAlreadyCreated = depositCreatedCheck(assetName)
126126 if (depositAlreadyCreated)
127127 then throw("Deposit is already created")
128128 else WriteSet([DataEntry((assetName + "_DepositState"), "Created"), DataEntry((assetName + "_DepositAmount"), amount), DataEntry((assetName + "_DividendPercent"), deividendPercent), DataEntry((assetName + "_DepositStartBlock"), startHeight), DataEntry((assetName + "_DepositStartTimestamp"), startTimestamp), DataEntry((assetName + "_DepositDurationBlock"), durationBlocks)])
129129 }
130130
131131
132132
133133 @Callable(i)
134134 func deposit () = {
135135 let callerPub = toBase58String(i.callerPublicKey)
136136 let pmt = extract(i.payment)
137137 let assetName = assetBase58ToName(pmt.assetId)
138138 let amount = amountCheck(assetName, pmt.amount)
139139 let depositState = getString(this, (assetName + "_DepositState"))
140140 if ((depositState == "Created"))
141- then ScriptResult(WriteSet([DataEntry("_Operation", height), DataEntry((assetName + "_DepositOwner"), callerPub), DataEntry((assetName + "_DepositState"), "Active"), DataEntry((assetName + "_DividendWithdrawn"), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(DragonFruitAddress), amount, pmt.assetId)]))
141+ then ScriptResult(WriteSet([DataEntry("_Operation", height), DataEntry((assetName + "_DepositOwner"), callerPub), DataEntry((assetName + "_DepositState"), "Active"), DataEntry((assetName + "_DividendWithdrawn"), 0)]), TransferSet([ScriptTransfer(addressFromPublicKey(dragonFruitPub), amount, pmt.assetId)]))
142142 else throw("Deposit is unavailable")
143143 }
144144
145145
146146
147147 @Callable(i)
148148 func withdrawDividends (assetName) = {
149149 let assetId = assetNameToBase58(assetName)
150150 let depositOwner = callerIsDepositOwner(assetName, toBase58String(i.callerPublicKey))
151151 let dividendsPercent = getDividendsPercent(assetName)
152152 let dividendsWithdrawn = getDividendsWithdrawnAmount(assetName)
153153 let dividendsAvaliable = getDividendBalance(assetId, dividendsWithdrawn, dividendsPercent)
154154 ScriptResult(WriteSet([DataEntry((assetName + "_DividendWithdrawn"), (dividendsWithdrawn + dividendsAvaliable))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(depositOwner)), dividendsAvaliable, assetId)]))
155155 }
156156
157157
158158 @Verifier(tx)
159159 func verify () = true
160160

github/deemru/w8io/6500d08 
46.41 ms