tx · Eju91JsnjguGgv2G7GuogiCXqPQqPWbiTYb2Jw8XFyuc

3MpRRdYA8JL63tzyYbZanVS2mgbHVX4LAaS:  -0.01400000 Waves

2019.07.01 16:11 [566360] smart account 3MpRRdYA8JL63tzyYbZanVS2mgbHVX4LAaS > SELF 0.00000000 Waves

{ "type": 13, "id": "Eju91JsnjguGgv2G7GuogiCXqPQqPWbiTYb2Jw8XFyuc", "fee": 1400000, "feeAssetId": null, "timestamp": 1561986763682, "version": 1, "sender": "3MpRRdYA8JL63tzyYbZanVS2mgbHVX4LAaS", "senderPublicKey": "EjG2bc94TJYn6mSQwXEJgGvJqRhQXZjpYLm1445YUgHc", "proofs": [ "5RMGVFfqdcfitxWnb5BftdPGFwryUMgrTahjftgJpugVkN4XxqVWGdMZ7DiymhRxoPfts7QfjPvXotA959SNLmz2" ], "script": "base64:AAIDAAAAAAAAAAAAAAAWAAAAAA1jdXN0b21Bc3NldElkAQAAACA6D3y7DwMCeIXl0qf5m2UvmYDmwhRc2VJYsljvM42wJQAAAAAOb3duZXJQdWJsaWNLZXkBAAAAINtC5aIROb0J6vsRmHDSHmoquch0lfciDoY+dAxhSE0AAAAAAAxvd25lckFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADm93bmVyUHVibGljS2V5AAAAABJvd25lckFkZHJlc3NTdHJpbmcCAAAAIzNOMVZ2OUJEcUxmaWtQTXQzTUNZRHZSYTR3bWNqeE50R1k3AAAAABFhY2NvdW50VGhhdEFsbG93cwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVMYbTDAWhUaVMk5pP6sw+hs730/Z1xCPOwAAAAALYXNzZXREaWdpdHMAAAAAAAAPQkAAAAAAEHN1bUFjY291bnRBc3NldHMAAAAAF0h26AAAAAAADGlzc3VlckFzc2V0cwAAAADRjC4oAAAAAAAKc3RhcnRCbG9jawAAAAAAAAikVwAAAAASaW5jcmVhc2VQcmljZUJsb2NrAAAAAAAACPSyAAAAAAhlbmRCbG9jawAAAAAAAAj0sgAAAAAFcHJpY2UAAAAAAACYloAAAAAAC3ByaWNlU2Vjb25kAAAAAAAAmJaAAAAAAA1zb2Z0Q2FwQW1vdW50AAAAAAJUC+QAAAAAAA1oYXJkQ2FwQW1vdW50AAAAAOjUpRAAAAAAABJrZXlTdW1BbW91bnRQcmVmaXgCAAAACnN1bUFtb3VudCAAAAAAFmtleVN1bVBhaWRBbW91bnRQcmVmaXgCAAAAC3BhaWRBbW91bnQgAAAAABJrZXlTdW1Bc3NldHNQcmVmaXgCAAAACnN1bUFzc2V0cyAAAAAAFWtleUFsbG93QWNjb3VudFByZWZpeAIAAAAGYWxsb3cgAAAAABNrZXlTdW1BY2NvdW50QXNzZXRzAgAAAAZhc3NldHMAAAAAC2tleVN1bVdhdmVzAgAAAAV3YXZlcwAAAAAJa2V5SXNzdWVyAgAAAAZpc3N1ZXIAAAACAAAAAWkBAAAAB2RlcG9zaXQAAAAABAAAAAxjdXJyZW50UHJpY2UDCQAAZgAAAAIFAAAAEmluY3JlYXNlUHJpY2VCbG9jawUA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cmVudEFtb3VudAUAAAAHcGF5bWVudAQAAAANY3VycmVudEFzc2V0cwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAEmtleVN1bUFzc2V0c1ByZWZpeAUAAAAKY3VycmVudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAluZXdBc3NldHMJAABkAAAAAgUAAAANY3VycmVudEFzc2V0cwkAAGkAAAACCQAAaAAAAAIFAAAAB3BheW1lbnQFAAAAC2Fzc2V0RGlnaXRzBQAAAAxjdXJyZW50UHJpY2UEAAAAEG5ld0FjY291bnRBc3NldHMJAABlAAAAAgUAAAANYWNjb3VudEFzc2V0cwkAAGkAAAACCQAAaAAAAAIFAAAAB3BheW1lbnQFAAAAC2Fzc2V0RGlnaXRzBQAAAAxjdXJyZW50UHJpY2UEAAAAEG5ld0FjY291bnRBbW91bnQJAABkAAAAAgUAAAANYWNjb3VudEFtb3VudAUAAAAHcGF5bWVudAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABJrZXlTdW1BbW91bnRQcmVmaXgFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABJrZXlTdW1Bc3NldHNQcmVmaXgFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Fzc2V0cwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAATa2V5U3VtQWNjb3VudEFzc2V0cwUAAAAQbmV3QWNjb3VudEFzc2V0cwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAALa2V5U3VtV2F2ZXMFAAAAEG5ld0FjY291bnRBbW91bnQFAAAAA25pbAAAAAFpAQAAAAp3aXRoZHJhd2FsAAAAAAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1jdXJyZW50QXNzZXRzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAASa2V5U3VtQXNzZXRzUHJlZml4BQAAAApjdXJyZW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADWN1cnJlbnRBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAABJrZXlTdW1BbW91bnRQcmVmaXgFAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAANYWNjb3VudEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAAtrZXlTdW1XYXZlcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAA1hY2NvdW50QXNzZXRzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAE2tleVN1bUFjY291bnRBc3NldHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAMJAQAAAAEhAAAAAQMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAAhlbmRCbG9jawYJAABnAAAAAgUAAAANYWNjb3VudEFtb3VudAUAAAANaGFyZENhcEFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAG1RoZSBUb2tlbnNhbGUgZW5kIG9uIGJsb2NrIAkAAaQAAAABBQAAAAhlbmRCbG9jawMDCQAAAAAAAAIFAAAACmN1cnJlbnRLZXkFAAAAEm93bmVyQWRkcmVzc1N0cmluZwkAAGcAAAACBQAAAA1hY2NvdW50QW1vdW50BQAAAA1zb2Z0Q2FwQW1vdW50BwQAAAAXY3VycmVudElzc3VlclBhaWRBc3NldHMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAJa2V5SXNzdWVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAADCQAAAAAAAAIFAAAAF2N1cnJlbnRJc3N1ZXJQYWlkQXNzZXRzAAAAAAAAAAAACQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAJa2V5SXNzdWVyCQAAZAAAAAIFAAAADWFjY291bnRBc3NldHMFAAAADGlzc3VlckFzc2V0cwUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADG93bmVyQWRkcmVzcwkAAGQAAAACBQAAAA1hY2NvdW50QXNzZXRzBQAAAAxpc3N1ZXJBc3NldHMFAAAADWN1c3RvbUFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAMb3duZXJBZGRyZXNzBQAAAA1hY2NvdW50QW1vdW50BQAAAAR1bml0BQAAAANuaWwJAAACAAAAAQIAAAAnVGhlIGlzc3VlciBoYXMgYWxyZWFkeSB0YWtlbiBpdHMgc2hhcmUhAwkAAAAAAAACBQAAAA1jdXJyZW50QW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAEERvbid0IGhhdmUgbW9uZXkDCQAAZwAAAAIFAAAADWFjY291bnRBbW91bnQFAAAADXNvZnRDYXBBbW91bnQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEmtleVN1bUFtb3VudFByZWZpeAUAAAAKY3VycmVudEtleQAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABJrZXlTdW1Bc3NldHNQcmVmaXgFAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWN1cnJlbnRBc3NldHMFAAAADWN1c3RvbUFzc2V0SWQFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAASa2V5U3VtQW1vdW50UHJlZml4BQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEmtleVN1bUFzc2V0c1ByZWZpeAUAAAAKY3VycmVudEtleQAAAAAAAAAAAAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANY3VycmVudEFtb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgHO698pQ==", "chainId": 84, "height": 566360, "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 customAssetId = base58'4ueLvP3bdEJDuZwDanB5E5y2t3JgRQudDF6tVdL2m54Q'
5+
6+let ownerPublicKey = base58'FkuT6Kxb5UG4pABfhq8y8f2XndyURrPQtq4rASDbMiSK'
7+
8+let ownerAddress = addressFromPublicKey(ownerPublicKey)
9+
10+let ownerAddressString = "3N1Vv9BDqLfikPMt3MCYDvRa4wmcjxNtGY7"
11+
12+let accountThatAllows = Address(base58'3N7yaGaFS8BvgRrc9trhNy7v5H4qCcxW3Fp')
13+
14+let assetDigits = 1000000
15+
16+let sumAccountAssets = 100000000000
17+
18+let issuerAssets = 900000000000
19+
20+let startBlock = 566359
21+
22+let increasePriceBlock = 586930
23+
24+let endBlock = 586930
25+
26+let price = 10000000
27+
28+let priceSecond = 10000000
29+
30+let softCapAmount = 10000000000
31+
32+let hardCapAmount = 1000000000000
33+
34+let keySumAmountPrefix = "sumAmount "
35+
36+let keySumPaidAmountPrefix = "paidAmount "
37+
38+let keySumAssetsPrefix = "sumAssets "
39+
40+let keyAllowAccountPrefix = "allow "
41+
42+let keySumAccountAssets = "assets"
43+
44+let keySumWaves = "waves"
45+
46+let keyIssuer = "issuer"
47+
48+@Callable(i)
49+func deposit () = {
50+ let currentPrice = if ((increasePriceBlock > height))
51+ then price
52+ else priceSecond
53+ let accountAmount = match getInteger(this, keySumWaves) {
54+ case a: Int =>
55+ a
56+ case _ =>
57+ 0
58+ }
59+ if ((startBlock > height))
60+ then throw(((("The Tokensale works between " + toString(startBlock)) + " and ") + toString(endBlock)))
61+ else if (if ((height > endBlock))
62+ then true
63+ else (accountAmount >= hardCapAmount))
64+ then throw("The required amount has already been accumulated. If you are an investor, you can withdraw your funds.")
65+ else {
66+ let payment = match i.payment {
67+ case p: AttachedPayment =>
68+ match p.assetId {
69+ case assetId: ByteVector =>
70+ throw("Waves only")
71+ case _ =>
72+ p.amount
73+ }
74+ case _ =>
75+ throw("Payment must be attached")
76+ }
77+ if ((currentPrice > payment))
78+ then throw((("Minimum payment is " + toString(currentPrice)) + " wavelet"))
79+ else {
80+ let currentKey = toBase58String(i.caller.bytes)
81+ let isAccountAllow = match getBoolean(accountThatAllows, (keyAllowAccountPrefix + currentKey)) {
82+ case a: Boolean =>
83+ a
84+ case _ =>
85+ false
86+ }
87+ if ((isAccountAllow == false))
88+ then throw("Your account has no right to send funds.")
89+ else {
90+ let accountAssets = match getInteger(this, keySumAccountAssets) {
91+ case a: Int =>
92+ a
93+ case _ =>
94+ sumAccountAssets
95+ }
96+ if ((0 > (accountAssets - ((payment * assetDigits) / currentPrice))))
97+ then throw((("Payment is too big. Maximum possible payment is " + toString(((accountAssets * currentPrice) / assetDigits))) + " wavelet"))
98+ else {
99+ let currentAmount = match getInteger(this, (keySumAmountPrefix + currentKey)) {
100+ case a: Int =>
101+ a
102+ case _ =>
103+ 0
104+ }
105+ let newAmount = (currentAmount + payment)
106+ let currentAssets = match getInteger(this, (keySumAssetsPrefix + currentKey)) {
107+ case a: Int =>
108+ a
109+ case _ =>
110+ 0
111+ }
112+ let newAssets = (currentAssets + ((payment * assetDigits) / currentPrice))
113+ let newAccountAssets = (accountAssets - ((payment * assetDigits) / currentPrice))
114+ let newAccountAmount = (accountAmount + payment)
115+ WriteSet([DataEntry((keySumAmountPrefix + currentKey), newAmount), DataEntry((keySumAssetsPrefix + currentKey), newAssets), DataEntry(keySumAccountAssets, newAccountAssets), DataEntry(keySumWaves, newAccountAmount)])
116+ }
117+ }
118+ }
119+ }
120+ }
121+
122+
123+
124+@Callable(i)
125+func withdrawal () = {
126+ let currentKey = toBase58String(i.caller.bytes)
127+ let currentAssets = match getInteger(this, (keySumAssetsPrefix + currentKey)) {
128+ case a: Int =>
129+ a
130+ case _ =>
131+ 0
132+ }
133+ let currentAmount = match getInteger(this, (keySumAmountPrefix + currentKey)) {
134+ case a: Int =>
135+ a
136+ case _ =>
137+ 0
138+ }
139+ let accountAmount = match getInteger(this, keySumWaves) {
140+ case a: Int =>
141+ a
142+ case _ =>
143+ 0
144+ }
145+ let accountAssets = match getInteger(this, keySumAccountAssets) {
146+ case a: Int =>
147+ a
148+ case _ =>
149+ 0
150+ }
151+ if (!(if ((height > endBlock))
152+ then true
153+ else (accountAmount >= hardCapAmount)))
154+ then throw(("The Tokensale end on block " + toString(endBlock)))
155+ else if (if ((currentKey == ownerAddressString))
156+ then (accountAmount >= softCapAmount)
157+ else false)
158+ then {
159+ let currentIssuerPaidAssets = match getInteger(this, keyIssuer) {
160+ case a: Int =>
161+ a
162+ case _ =>
163+ 0
164+ }
165+ if ((currentIssuerPaidAssets == 0))
166+ then ScriptResult(WriteSet([DataEntry(keyIssuer, (accountAssets + issuerAssets))]), TransferSet([ScriptTransfer(ownerAddress, (accountAssets + issuerAssets), customAssetId), ScriptTransfer(ownerAddress, accountAmount, unit)]))
167+ else throw("The issuer has already taken its share!")
168+ }
169+ else if ((currentAmount == 0))
170+ then throw("Don't have money")
171+ else if ((accountAmount >= softCapAmount))
172+ then ScriptResult(WriteSet([DataEntry((keySumAmountPrefix + currentKey), 0), DataEntry((keySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentAssets, customAssetId)]))
173+ else ScriptResult(WriteSet([DataEntry((keySumAmountPrefix + currentKey), 0), DataEntry((keySumAssetsPrefix + currentKey), 0)]), TransferSet([ScriptTransfer(i.caller, currentAmount, unit)]))
174+ }
175+
176+
177+@Verifier(tx)
178+func verify () = match tx {
179+ case _ =>
180+ false
181+}
182+

github/deemru/w8io/3ef1775 
30.66 ms