tx · AjBfTNP4Ny4cL8u4bmP2CMstXDmrH5GTJ9W1sTiK1bUh

3Msg8mZncXCbri4XuZQq21DL2jdNyAvPqit:  -0.01000000 Waves

2019.09.01 12:37 [656711] smart account 3Msg8mZncXCbri4XuZQq21DL2jdNyAvPqit > SELF 0.00000000 Waves

{ "type": 13, "id": "AjBfTNP4Ny4cL8u4bmP2CMstXDmrH5GTJ9W1sTiK1bUh", "fee": 1000000, "feeAssetId": null, "timestamp": 1567330639619, "version": 1, "sender": "3Msg8mZncXCbri4XuZQq21DL2jdNyAvPqit", "senderPublicKey": "H4tLc2G7u9ynKi5VimCh1b3NScwbr7Lg98n9RxByCgS9", "proofs": [ "5dFjbdf3U4zmy3BPiQSdjAApWEc8MUdD4tw7x4pkEEARnHNYxKozUFwucJK8ccWCaXvTViLGLgfq8LrVB4XC7Vuu" ], "script": "base64:AAIDAAAAAAAAAAAAAAAfAAAAAA1pc3N1ZXJBc3NldElkAQAAACDZORBxffGrPdoDSp/Yc3auL25zj+PwQ4zrbrFtxtpICgAAAAARaW52ZXN0bWVudEFzc2V0SWQBAAAABBOr2TMAAAAAGGludmVzdG1lbnRBc3NldElkSXNXYXZlcwYAAAAADm93bmVyUHVibGljS2V5AQAAACASkl5JU9sN86AKIc90Ljxn6ito+1iOwlZ5Z5GumvP+UwAAAAAMb3duZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA5vd25lclB1YmxpY0tleQAAAAASb3duZXJBZGRyZXNzU3RyaW5nAgAAACMzTXpYU3FhN3h2ejhxekJONnpoRG5nU29lSmpxaEtoUVBjRAAAAAARYWNjb3VudFRoYXRBbGxvd3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVSy4ps+uwlECTaFaLiWJr0yF21GhUEUIDUAAAAAFWFjY291bnRUaGF0QWxsb3dEQXBwcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVH5lAl9bJ8Vtb//sWNjcLPfPPCj/xOavFgAAAAALYXNzZXREaWdpdHMAAAAAAAAPQkAAAAAAEHN1bUFjY291bnRBc3NldHMAAAAAAAX14QAAAAAADGlzc3VlckFzc2V0cwAAAAAAAAAAAAAAAAAKc3RhcnRCbG9jawAAAAAAAAoFRAAAAAASaW5jcmVhc2VQcmljZUJsb2NrAAAAAAAACgVsAAAAAAhlbmRCbG9jawAAAAAAAAoFbAAAAAAFcHJpY2UAAAAAABHhowAAAAAAC3ByaWNlU2Vjb25kAAAAAAAR4aMAAAAAAA1zb2Z0Q2FwQW1vdW50AAAAAAEqBfIAAAAAAA1oYXJkQ2FwQW1vdW50AAAAAAb8I6wAAAAAABJrZXlTdW1BbW91bnRQcmVmaXgCAAAACnN1bUFtb3VudCAAAAAAFmtleVN1bVBhaWRBbW91bnRQcmVmaXgCAAAAC3BhaWRBbW91bnQgAAAAABJrZXlTdW1Bc3NldHNQcmVmaXgCAAAACnN1bUFzc2V0cyAAAAAAFWtleUFsbG93QWNjb3VudFByZWZpeAIAAAAGYWxsb3cgAAAAAA1rZXlEaXN0QXNzZXRzAgAAAAZhc3NldHMAAAAAEmtleUNvbGxlY3RlZEFtb3VudAIAAAAGYW1vdW50AAAAAAlrZXlJc3N1ZXICAAAABmlzc3VlcgAAAAAJcEFkZHJlc3MxCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABAgAAACMzTkNWRGFUMUFTYlJkNDJoQlN3NEVHNm9qR1ZSR3R2TWl6MQAAAAAJcEFkZHJlc3MyCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABAgAAACMzTXMya1RBeGRyY1hEeHdlZGZiTmpTaTZld0dDVXF0M2hlWgAAAAAJcEFkZHJlc3MzCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABAgAAACMzTjZvZ25tN3huUVNGaW93blMxRGYxTGFjSlVRWHZmREZMZQAAAAAJcEFkZHJlc3M0CQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABAgAAACMzTXRWQ21OOU1aYldmOXF4aU1Gb0VQQnJkYzJmTHAzU3Z1QwAAAAAJcEFkZHJlc3M1CQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABAgAAACMzTXVXRzhnc1RLNFJRQnNtOTdzTUN1VVhXOTlKdlJ4d1lTZwEAAAAfZ2V0SW52ZXN0bWVudEFzc2V0SWRGb3JUcmFuc2ZlcgAAAAIAAAAHaXNXYXZlcwAAAAdhc3NldElkAwkAAAAAAAACBQAAAAdpc1dhdmVzBwUAAAAHYXNzZXRJZAUAAAAEdW5pdAAAAAIAAAABaQEAAAAHZGVwb3NpdAAAAAAEAAAADGN1cnJlbnRQcmljZQMJAABmAAAAAgUAAAASaW5jcmVhc2VQcmljZUJsb2NrBQAAAAZoZWlnaHQFAAAABXByaWNlBQAAAAtwcmljZVNlY29uZAQAAAANYWNjb3VudEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAABJrZXlDb2xsZWN0ZWRBbW91bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAMJAABmAAAAAgUAAAAKc3RhcnRCbG9jawUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHFRoZSBUb2tlbnNhbGUg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AAIJAABoAAAAAgUAAAAHcGF5bWVudAUAAAALYXNzZXREaWdpdHMFAAAADGN1cnJlbnRQcmljZQQAAAAQbmV3QWNjb3VudEFzc2V0cwkAAGUAAAACBQAAAA1hY2NvdW50QXNzZXRzCQAAaQAAAAIJAABoAAAAAgUAAAAHcGF5bWVudAUAAAALYXNzZXREaWdpdHMFAAAADGN1cnJlbnRQcmljZQQAAAAQbmV3QWNjb3VudEFtb3VudAkAAGQAAAACBQAAAA1hY2NvdW50QW1vdW50BQAAAAdwYXltZW50CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEmtleVN1bUFtb3VudFByZWZpeAUAAAAKY3VycmVudEtleQUAAAAJbmV3QW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEmtleVN1bUFzc2V0c1ByZWZpeAUAAAAKY3VycmVudEtleQUAAAAJbmV3QXNzZXRzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA1rZXlEaXN0QXNzZXRzBQAAABBuZXdBY2NvdW50QXNzZXRzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABJrZXlDb2xsZWN0ZWRBbW91bnQFAAAAEG5ld0FjY291bnRBbW91bnQFAAAAA25pbAAAAAFpAQAAAAp3aXRoZHJhd2FsAAAAAAQAAAALaXNEQXBwQWxsb3cEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAVYWNjb3VudFRoYXRBbGxvd0RBcHBzCQAEJQAAAAEFAAAABHRoaXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAMJAAAAAAAAAgUAAAALaXNEQXBwQWxsb3cAAAAAAAAAAAAJAAACAAAAAQIAAABCV2l0aGRyYXdhbHMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGlzc3VlciBwYXNzZXMgdmVyaWZpY2F0aW9uBAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWN1cnJlbnRB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", "chainId": 84, "height": 656711, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let issuerAssetId = base58'FcwwRUYiEDx2xhPThnHEbiYUQMrcJmEsUjFhPAZpvScZ'
5+
6+let investmentAssetId = base58'WAVES'
7+
8+let investmentAssetIdIsWaves = true
9+
10+let ownerPublicKey = base58'2FVnfvQcJuCZgB5CnoNuAjvndXmFykpUp5PEQuDSvnEv'
11+
12+let ownerAddress = addressFromPublicKey(ownerPublicKey)
13+
14+let ownerAddressString = "3MzXSqa7xvz8qzBN6zhDngSoeJjqhKhQPcD"
15+
16+let accountThatAllows = Address(base58'3N6DwWxT82nGJUwBwd7L514r2u71gr7WhwJ')
17+
18+let accountThatAllowDApps = Address(base58'3N1SPvLZgv6FMfe5WNUtnPzt3okYxcJhYnR')
19+
20+let assetDigits = 1000000
21+
22+let sumAccountAssets = 100000000
23+
24+let issuerAssets = 0
25+
26+let startBlock = 656708
27+
28+let increasePriceBlock = 656748
29+
30+let endBlock = 656748
31+
32+let price = 300000000
33+
34+let priceSecond = 300000000
35+
36+let softCapAmount = 5000000000
37+
38+let hardCapAmount = 30000000000
39+
40+let keySumAmountPrefix = "sumAmount "
41+
42+let keySumPaidAmountPrefix = "paidAmount "
43+
44+let keySumAssetsPrefix = "sumAssets "
45+
46+let keyAllowAccountPrefix = "allow "
47+
48+let keyDistAssets = "assets"
49+
50+let keyCollectedAmount = "amount"
51+
52+let keyIssuer = "issuer"
53+
54+let pAddress1 = addressFromString("3NCVDaT1ASbRd42hBSw4EG6ojGVRGtvMiz1")
55+
56+let pAddress2 = addressFromString("3Ms2kTAxdrcXDxwedfbNjSi6ewGCUqt3heZ")
57+
58+let pAddress3 = addressFromString("3N6ognm7xnQSFiownS1Df1LacJUQXvfDFLe")
59+
60+let pAddress4 = addressFromString("3MtVCmN9MZbWf9qxiMFoEPBrdc2fLp3SvuC")
61+
62+let pAddress5 = addressFromString("3MuWG8gsTK4RQBsm97sMCuUXW99JvRxwYSg")
63+
64+func getInvestmentAssetIdForTransfer (isWaves,assetId) = if ((isWaves == false))
65+ then assetId
66+ else unit
67+
68+
69+@Callable(i)
70+func deposit () = {
71+ let currentPrice = if ((increasePriceBlock > height))
72+ then price
73+ else priceSecond
74+ let accountAmount = match getInteger(this, keyCollectedAmount) {
75+ case a: Int =>
76+ a
77+ case _ =>
78+ 0
79+ }
80+ if ((startBlock > height))
81+ then throw(((("The Tokensale works between " + toString(startBlock)) + " and ") + toString(endBlock)))
82+ else if (if ((height > endBlock))
83+ then true
84+ else (accountAmount >= hardCapAmount))
85+ then throw("The required amount has already been accumulated. If you are an investor, you can withdraw your funds.")
86+ else {
87+ let payment = match i.payment {
88+ case p: AttachedPayment =>
89+ let isPaymentOk = match p.assetId {
90+ case assetId: ByteVector =>
91+ if (!(investmentAssetIdIsWaves))
92+ then (assetId == investmentAssetId)
93+ else false
94+ case _ =>
95+ (investmentAssetIdIsWaves == true)
96+ }
97+ if (isPaymentOk)
98+ then p.amount
99+ else throw("Invalid asset ID of investment")
100+ case _ =>
101+ throw("Payment must be attached")
102+ }
103+ let currentKey = toBase58String(i.caller.bytes)
104+ let isAccountAllow = match getInteger(accountThatAllows, currentKey) {
105+ case a: Int =>
106+ a
107+ case _ =>
108+ -255
109+ }
110+ if ((-1 > isAccountAllow))
111+ then throw("Your account has no right to send funds.")
112+ else {
113+ let accountAssets = match getInteger(this, keyDistAssets) {
114+ case a: Int =>
115+ a
116+ case _ =>
117+ sumAccountAssets
118+ }
119+ if ((0 > (accountAssets - ((payment * assetDigits) / currentPrice))))
120+ then throw((("Payment is too big. Maximum possible payment is " + toString(((accountAssets * currentPrice) / assetDigits))) + " wavelet"))
121+ else {
122+ let currentAmount = match getInteger(this, (keySumAmountPrefix + currentKey)) {
123+ case a: Int =>
124+ a
125+ case _ =>
126+ 0
127+ }
128+ let newAmount = (currentAmount + payment)
129+ let currentAssets = match getInteger(this, (keySumAssetsPrefix + currentKey)) {
130+ case a: Int =>
131+ a
132+ case _ =>
133+ 0
134+ }
135+ let newAssets = (currentAssets + ((payment * assetDigits) / currentPrice))
136+ let newAccountAssets = (accountAssets - ((payment * assetDigits) / currentPrice))
137+ let newAccountAmount = (accountAmount + payment)
138+ WriteSet([DataEntry((keySumAmountPrefix + currentKey), newAmount), DataEntry((keySumAssetsPrefix + currentKey), newAssets), DataEntry(keyDistAssets, newAccountAssets), DataEntry(keyCollectedAmount, newAccountAmount)])
139+ }
140+ }
141+ }
142+ }
143+
144+
145+
146+@Callable(i)
147+func withdrawal () = {
148+ let isDAppAllow = match getInteger(accountThatAllowDApps, toString(this)) {
149+ case a: Int =>
150+ a
151+ case _ =>
152+ 0
153+ }
154+ if ((isDAppAllow == 0))
155+ then throw("Withdrawals are not available until the issuer passes verification")
156+ else {
157+ let currentKey = toBase58String(i.caller.bytes)
158+ let currentAssets = match getInteger(this, (keySumAssetsPrefix + currentKey)) {
159+ case a: Int =>
160+ a
161+ case _ =>
162+ 0
163+ }
164+ let currentAmount = match getInteger(this, (keySumAmountPrefix + currentKey)) {
165+ case a: Int =>
166+ a
167+ case _ =>
168+ 0
169+ }
170+ let accountAmount = match getInteger(this, keyCollectedAmount) {
171+ case a: Int =>
172+ a
173+ case _ =>
174+ 0
175+ }
176+ let accountAssets = match getInteger(this, keyDistAssets) {
177+ case a: Int =>
178+ a
179+ case _ =>
180+ 0
181+ }
182+ let investmentAssetIdForTransfer = getInvestmentAssetIdForTransfer(investmentAssetIdIsWaves, investmentAssetId)
183+ if (!(if ((height > endBlock))
184+ then true
185+ else (accountAmount >= hardCapAmount)))
186+ then throw(("The Tokensale end on block " + toString(endBlock)))
187+ else if (if (if ((currentKey == ownerAddressString))
188+ then (accountAmount >= softCapAmount)
189+ else false)
190+ then (isDAppAllow == 1)
191+ else false)
192+ then {
193+ let currentIssuerPaidAssets = match getInteger(this, keyIssuer) {
194+ case a: Int =>
195+ a
196+ case _ =>
197+ 0
198+ }
199+ if ((currentIssuerPaidAssets == 0))
200+ then ScriptResult(WriteSet([DataEntry(keyIssuer, (accountAssets + issuerAssets))]), TransferSet([ScriptTransfer(ownerAddress, (accountAssets + issuerAssets), issuerAssetId), ScriptTransfer(ownerAddress, accountAmount, investmentAssetIdForTransfer)]))
201+ else throw("The issuer has already taken its share!")
202+ }
203+ else if ((currentAmount == 0))
204+ then throw("Don't have money")
205+ else if (if ((accountAmount >= softCapAmount))
206+ then (isDAppAllow == 1)
207+ else false)
208+ then ScriptResult(WriteSet([DataEntry((keySumAmountPrefix + currentKey), 0), DataEntry((keySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentAssets, issuerAssetId)]))
209+ else ScriptResult(WriteSet([DataEntry((keySumAmountPrefix + currentKey), 0), DataEntry((keySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentAmount, investmentAssetIdForTransfer)]))
210+ }
211+ }
212+
213+
214+@Verifier(tx)
215+func verify () = match tx {
216+ case tx: SetScriptTransaction =>
217+ let pKey1Signed = if (isDefined(getInteger(extract(pAddress1), toBase58String(tx.id))))
218+ then 1
219+ else 0
220+ let pKey2Signed = if (isDefined(getInteger(extract(pAddress2), toBase58String(tx.id))))
221+ then 1
222+ else 0
223+ let pKey3Signed = if (isDefined(getInteger(extract(pAddress3), toBase58String(tx.id))))
224+ then 1
225+ else 0
226+ let pKey4Signed = if (isDefined(getInteger(extract(pAddress4), toBase58String(tx.id))))
227+ then 1
228+ else 0
229+ let pKey5Signed = if (isDefined(getInteger(extract(pAddress5), toBase58String(tx.id))))
230+ then 1
231+ else 0
232+ (((((pKey1Signed + pKey2Signed) + pKey3Signed) + pKey4Signed) + pKey5Signed) >= 3)
233+ case tx: SetAssetScriptTransaction =>
234+ (this == tx.sender)
235+ case _ =>
236+ false
237+}
238+

github/deemru/w8io/026f985 
25.42 ms