tx · CPp2y8Xz3pV9S9hvU4JavjXNkxKDjQC2bKn13oKY3zcy

3MsQwxepm5q2BG1PYUMwqoD2JLgKrACa3P2:  -0.01400000 Waves

2020.04.04 23:20 [939931] smart account 3MsQwxepm5q2BG1PYUMwqoD2JLgKrACa3P2 > SELF 0.00000000 Waves

{ "type": 13, "id": "CPp2y8Xz3pV9S9hvU4JavjXNkxKDjQC2bKn13oKY3zcy", "fee": 1400000, "feeAssetId": null, "timestamp": 1586028014985, "version": 1, "sender": "3MsQwxepm5q2BG1PYUMwqoD2JLgKrACa3P2", "senderPublicKey": "GQpgNnxYTNNWmyiXVfx9rpMV1hgft2HPhJ3CkWeLuxAt", "proofs": [ "4S6Q7zwGQiP4Vp8sxprgt7R7fHpukh6yhknZK9e51Z4R9NK8k6bK5oQk9U2VpSzv36T6j8Fsvt8A1fpxKvhcAMiU" ], "script": "base64:AAIDAAAAAAAAACMIARIECgIICBIICgYICAgBAQgSCQoHCAgICAEICBIECgIIAQAAADUAAAAAB2JCaXRDTzIBAAAAIB/+20Whi2vRcLDiyL6zBUKemnAWGkbChWDkhQemNVeLAAAAAAhzdGFydFF0eQAAAAAAAB6EgAAAAAAIbm9tUHJpY2UAAAAAAAAAAAEAAAAAA3d2cwAAAAAABfXhAAAAAAAQc3VwcGxpZXJEaXNjb3VudAAAAAAAAAAADAAAAAAETk9ORQIAAAAEbm9uZQAAAAALT3duZXJQdWJLZXkBAAAAIOT5kr0qxAUdVllbsg32nwnU0gQ806lA/C0Ix5M0fVkpAAAAAAZpc3N1ZXIJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVQmXeqpNBOU0gXTRoLnFygaPj7BjtrRIP0AAAAAA2lndgAAAAAAAAAAEgAAAAADY1BCAAAAAAAAAABYAAAAAAN1SVAAAAAAAAAAAAUAAAAAA3BJUAAAAAAAAAAACgAAAAADc0lQAAAAAAAAAAABAAAAAANlSVAAAAAAAAAAAAEAAAAAAnBBCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUyvc7Pucv0VXiD634RbMs3vuN0A1Fa31vAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABXRpdGxlCQABLAAAAAICAAAABkEgeSBHOgkAAlgAAAABCQAB9wAAAAEJAAGbAAAAAQkAASwAAAACBQAAAAhzdXBwbGllcgUAAAAFdGl0bGUBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAZfUCBTQUMBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAANZ2V0S2V5UHJvamVjdAAAAAEAAAACcEEJAAEsAAAAAgUAAAACcEECAAAACV9BLVByZUlDTwEAAAAPZ2V0VmFsdWVQcm9qZWN0AAAAAQAAAAJwQQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADWdldEtleVByb2plY3QAAAABBQAAAAJwQQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0CAAAACk9yZGVyX+KEljoBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAR1c2VyBQAAAARpdGVtAQAAAA5nZXRLZXlJdGVtVXNlcgAAAAEAAAAEaXRlbQIAAAAJVXNlck5hbWU6AQAAABBnZXRWYWx1ZUl0ZW1Vc2VyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAOZ2V0S2V5SXRlbVVzZXIAAAABBQAAAARpdGVtAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEAAAAEaXRlbQIAAAAJVXNlclBhaXM6AQAAABNnZXRWYWx1ZVVzZXJDb3VudHJ5AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAARZ2V0S2V5VXNlckNvdW50cnkAAAABBQAAAARpdGVtAQAAAAxnZXRLZXlJdGVtVUQAAAABAAAABGl0ZW0CAAAAA1VEOgEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgIAAAAXU2VsbGVyX0JhbGFuY2UsX2FCaXRDTzIBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyAQAAAAhnZXRLZXlVSQAAAAEAAAAEaXRlbQIAAAAIVUksX3d2czoBAAAACmdldFZhbHVlVUkAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAAhnZXRLZXlVSQAAAAEFAAAABGl0ZW0BAAAACWdldEtleVVCSQAAAAEAAAAEaXRlbQIAAAAMVUJJLF9CaXRDTzI6AQAAAAtnZXRWYWx1ZVVCSQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAACWdldEtleVVCSQAAAAEFAAAABGl0ZW0BAAAACGdldEtleVBJAAAAAQAAAARpdGVtAgAAAAZQSSxfJToBAAAACmdldFZhbHVlUEkAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAAhnZXRLZXlQSQAAAAEFAAAABGl0ZW0BAAAACGdldEtleVNJAAAAAQAAAARpdGVtAgAAAAZTSSxfJToBAAAACmdldFZhbHVlU0kAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAAhnZXRLZXlTSQAAAAEFAAAABGl0ZW0BAAAACGdldEtleUVJAAAAAQAAAAJlQQIAAAAGRUksXyU6AQAAAApnZXRWYWx1ZUVJAAAAAQAAAAJlQQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAACGdldEtleUVJAAAAAQUAAAACZUEBAAAAEmdldEtleUl0ZW1Vc2VyRGF0YQAAAAEAAAAEaXRlbQIAAAAMVXNlckNvdW50cnk6AQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQAAAARpdGVtAgAAABBVc2VyRGlzY291bnQsICU6AQAAABhnZXRWYWx1ZUl0ZW1EaXNjb3VudFVzZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQUAAAAEaXRlbQEAAAAWZ2V0S2V5SXRlbVVzZXJPcmRlclF0eQAAAAEAAAAEaXRlbQIAAAAST3JkZXJfcXR5LF90b2tlbnM6AQAAABhnZXRWYWx1ZUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQUAAAAEaXRlbQEAAAAYZ2V0S2V5QmFsYW5jZVF0eVN1cHBsaWVyAAAAAQAAAARpdGVtAgAAABZCYWxhbmNlL1NhbGRvLCB0b2tlbnM6AQAAABpnZXRWYWx1ZUJhbGFuY2VRdHlTdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAF2dldEtleUl0ZW1QcmljZVN1cHBsaWVyAAAAAQAAAARpdGVtAgAAAAZfd2F2ZXMBAAAAGWdldFZhbHVlSXRlbVByaWNlU3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtUHJpY2VTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAGmdldEtleUl0ZW1EaXNjb3VudFN1cHBsaWVyAAAAAQAAAARpdGVtAgAAABhTdXBwbGllckRpc2NvdW50LCBtYXhfJToBAAAAHGdldFZhbHVlSXRlbURpc2NvdW50U3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABpnZXRLZXlJdGVtRGlzY291bnRTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAADmdldEtleUl0ZW1EYXRhAAAAAQAAAARpdGVtAgAAAA1kZXNjcmlwdGlvbjogAAAABAAAAAFpAQAAAAdkZXBvc2l0AAAAAgAAAAV0aXRsZQAAAAxzdXBwbGllckRhdGEEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAdiQml0Q08yCQAAAgAAAAECAAAALlVzZSBiQml0Q08yIHRva2VucyBvbmx5IGZvciB0aGUgd2FsbGV0IGRlcG9zaXQEAAAACHN1cHBsaWVyCQACWAAA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", "chainId": 84, "height": 939931, "spentComplexity": 0 } View: original | compacted Prev: LZJ3x8hMercA4NnKvcEZx512e4oym8znwVEcArwDbeF Next: GapuUoNh6ybv4Pcn5BSGtprbz735BL48U8VJPeu1N9BS Diff:
OldNewDifferences
231231 then throw("Payment Amount can't be less than item Purchase Order")
232232 else if ((pmt.amount > totalAmount))
233233 then throw("Payment Amount can't be higher than item Purchase Order")
234- else if ((supplier == NONE))
235- then throw("supplier does not exist")
236- else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemUD(item), uD), DataEntry("Payment_amount,_wvs", totalAmount), DataEntry("Imp, %", igv), DataEntry("STtl, wvs", subTotal), DataEntry("CP 1 B, wvs", (cPB * 1000000)), DataEntry(getKeyUI(item), uI), DataEntry("UBI", uBI), DataEntry(getKeyPI(item), pI), DataEntry(getKeyEI(eA), eI), DataEntry("EcSys", eBI), DataEntry(("Order_Status:_" + userAddress), "confirmed"), DataEntry(getKeySI(item), sI), DataEntry("SBI: b", sBI), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(i.caller, uI, unit), ScriptTransfer(addressFromStringValue(eA), eBI, bBitCO2)]))
234+ else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemUD(item), uD), DataEntry("Payment_amount,_wvs", totalAmount), DataEntry("Imp, %", igv), DataEntry("STtl, wvs", subTotal), DataEntry("CP 1 B, wvs", (cPB * 1000000)), DataEntry(getKeyUI(item), uI), DataEntry("UBI", uBI), DataEntry(getKeyPI(item), pI), DataEntry(getKeyEI(eA), eI), DataEntry("EcSys", eBI), DataEntry(("Order_Status:_" + userAddress), "confirmed"), DataEntry(getKeySI(item), sI), DataEntry("SBI: b", sBI), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(i.caller, uI, unit), ScriptTransfer(addressFromStringValue(eA), eBI, bBitCO2)]))
237235 }
238236 }
239237
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let bBitCO2 = base58'39u32sVJU2K5UJoPRQasrNKRHbDZhtRzuHYc9tdFozn6'
55
66 let startQty = 2000000
77
88 let nomPrice = 1
99
1010 let wvs = 100000000
1111
1212 let supplierDiscount = 12
1313
1414 let NONE = "none"
1515
1616 let OwnerPubKey = base58'GQpgNnxYTNNWmyiXVfx9rpMV1hgft2HPhJ3CkWeLuxAt'
1717
1818 let issuer = Address(base58'3MsQwxepm5q2BG1PYUMwqoD2JLgKrACa3P2')
1919
2020 let igv = 18
2121
2222 let cPB = 88
2323
2424 let uIP = 5
2525
2626 let pIP = 10
2727
2828 let sIP = 1
2929
3030 let eIP = 1
3131
3232 let pA = Address(base58'3N8RGScPyKYySaXd5Z3VcpnttH2uBeMpSy4')
3333
3434 func getNumberByKey (key) = {
3535 let num = match getInteger(this, key) {
3636 case a: Int =>
3737 a
3838 case _ =>
3939 0
4040 }
4141 num
4242 }
4343
4444
4545 func getStrByKey (key) = {
4646 let str = match getString(this, key) {
4747 case a: String =>
4848 a
4949 case _ =>
5050 NONE
5151 }
5252 str
5353 }
5454
5555
5656 func getKeyItem (supplier,title) = ("A y G:" + toBase58String(sha256(toBytes((supplier + title)))))
5757
5858
5959 func getKeyItemSupplier (item) = (item + "_P SAC")
6060
6161
6262 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
6363
6464
6565 func getKeyProject (pA) = (pA + "_A-PreICO")
6666
6767
6868 func getValueProject (pA) = getStrByKey(getKeyProject(pA))
6969
7070
7171 func getKeyUserItemCounter (user,item) = "Order_№:"
7272
7373
7474 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
7575
7676
7777 func getKeyItemUser (item) = "UserName:"
7878
7979
8080 func getValueItemUser (item) = getStrByKey(getKeyItemUser(item))
8181
8282
8383 func getKeyUserCountry (item) = "UserPais:"
8484
8585
8686 func getValueUserCountry (item) = getStrByKey(getKeyUserCountry(item))
8787
8888
8989 func getKeyItemUD (item) = "UD:"
9090
9191
9292 func getKeyBalanceSupplier (supplier) = "Seller_Balance,_aBitCO2"
9393
9494
9595 func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
9696
9797
9898 func getKeyUI (item) = "UI,_wvs:"
9999
100100
101101 func getValueUI (item) = getNumberByKey(getKeyUI(item))
102102
103103
104104 func getKeyUBI (item) = "UBI,_BitCO2:"
105105
106106
107107 func getValueUBI (item) = getNumberByKey(getKeyUBI(item))
108108
109109
110110 func getKeyPI (item) = "PI,_%:"
111111
112112
113113 func getValuePI (item) = getNumberByKey(getKeyPI(item))
114114
115115
116116 func getKeySI (item) = "SI,_%:"
117117
118118
119119 func getValueSI (item) = getNumberByKey(getKeySI(item))
120120
121121
122122 func getKeyEI (eA) = "EI,_%:"
123123
124124
125125 func getValueEI (eA) = getNumberByKey(getKeyEI(eA))
126126
127127
128128 func getKeyItemUserData (item) = "UserCountry:"
129129
130130
131131 func getKeyItemDiscountUser (item) = "UserDiscount, %:"
132132
133133
134134 func getValueItemDiscountUser (item) = getNumberByKey(getKeyItemDiscountUser(item))
135135
136136
137137 func getKeyItemUserOrderQty (item) = "Order_qty,_tokens:"
138138
139139
140140 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
141141
142142
143143 func getKeyBalanceQtySupplier (item) = "Balance/Saldo, tokens:"
144144
145145
146146 func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
147147
148148
149149 func getKeyItemPriceSupplier (item) = "_waves"
150150
151151
152152 func getValueItemPriceSupplier (item) = getNumberByKey(getKeyItemPriceSupplier(item))
153153
154154
155155 func getKeyItemDiscountSupplier (item) = "SupplierDiscount, max_%:"
156156
157157
158158 func getValueItemDiscountSupplier (item) = getNumberByKey(getKeyItemDiscountSupplier(item))
159159
160160
161161 func getKeyItemData (item) = "description: "
162162
163163
164164 @Callable(i)
165165 func deposit (title,supplierData) = {
166166 let pmt = extract(i.payment)
167167 if ((pmt.assetId != bBitCO2))
168168 then throw("Use bBitCO2 tokens only for the wallet deposit")
169169 else {
170170 let supplier = toBase58String(i.caller.bytes)
171171 let currentAmount = match getInteger(this, supplier) {
172172 case a: Int =>
173173 a
174174 case _ =>
175175 startQty
176176 }
177177 let newAmount = (currentAmount + pmt.amount)
178178 if ((0 >= newAmount))
179179 then throw("No hay BitCO2 in your balance")
180180 else WriteSet([DataEntry(supplier, newAmount)])
181181 }
182182 }
183183
184184
185185
186186 @Callable(i)
187187 func AddSupplierToken (title,name,country,preIcoQty,supplierDiscount,supplierData) = {
188188 let supplier = toBase58String(i.caller.bytes)
189189 let item = getKeyItem(supplier, title)
190190 if ((0 >= preIcoQty))
191191 then throw("Sorry, insufficient token offer")
192192 else WriteSet([DataEntry(("Supplier:_" + getKeyItemSupplier(item)), supplier), DataEntry(("Title:_" + supplier), title), DataEntry(("ProjectName:_" + supplier), name), DataEntry(("Country:_" + supplier), country), DataEntry(getKeyBalanceQtySupplier(item), preIcoQty), DataEntry(("NomTokenPrice:_" + getKeyItemPriceSupplier(item)), (nomPrice * wvs)), DataEntry(("Max_Descuento_ofrecido:" + getKeyItemDiscountSupplier(item)), supplierDiscount), DataEntry(("Development:_" + getKeyItemData(item)), supplierData)])
193193 }
194194
195195
196196
197197 @Callable(i)
198198 func purchaseGTS (item,userName,userCountry,uD,totalAmount,pA,eA) = {
199199 let pmt = extract(i.payment)
200200 if (isDefined(pmt.assetId))
201201 then throw("you can adquire Products only by Waves tokens")
202202 else {
203203 let supplier = match getString(this, getKeyItemSupplier(item)) {
204204 case a: String =>
205205 a
206206 case _ =>
207207 NONE
208208 }
209209 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
210210 case a: Int =>
211211 a
212212 case _ =>
213213 startQty
214214 }
215215 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
216216 case a: Int =>
217217 a
218218 case _ =>
219219 0
220220 }
221221 let userAddress = toBase58String(i.caller.bytes)
222222 let subTotal = (totalAmount - ((igv * totalAmount) / 100))
223223 let uI = ((subTotal * uIP) / 100)
224224 let uBI = (uI / cPB)
225225 let pI = ((subTotal * pIP) / 100)
226226 let eI = ((subTotal * eIP) / 100)
227227 let eBI = ((subTotal * eIP) / 100)
228228 let sI = ((totalAmount - pI) - eI)
229229 let sBI = ((subTotal * sIP) / 100)
230230 if ((totalAmount > pmt.amount))
231231 then throw("Payment Amount can't be less than item Purchase Order")
232232 else if ((pmt.amount > totalAmount))
233233 then throw("Payment Amount can't be higher than item Purchase Order")
234- else if ((supplier == NONE))
235- then throw("supplier does not exist")
236- else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemUD(item), uD), DataEntry("Payment_amount,_wvs", totalAmount), DataEntry("Imp, %", igv), DataEntry("STtl, wvs", subTotal), DataEntry("CP 1 B, wvs", (cPB * 1000000)), DataEntry(getKeyUI(item), uI), DataEntry("UBI", uBI), DataEntry(getKeyPI(item), pI), DataEntry(getKeyEI(eA), eI), DataEntry("EcSys", eBI), DataEntry(("Order_Status:_" + userAddress), "confirmed"), DataEntry(getKeySI(item), sI), DataEntry("SBI: b", sBI), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(i.caller, uI, unit), ScriptTransfer(addressFromStringValue(eA), eBI, bBitCO2)]))
234+ else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemUD(item), uD), DataEntry("Payment_amount,_wvs", totalAmount), DataEntry("Imp, %", igv), DataEntry("STtl, wvs", subTotal), DataEntry("CP 1 B, wvs", (cPB * 1000000)), DataEntry(getKeyUI(item), uI), DataEntry("UBI", uBI), DataEntry(getKeyPI(item), pI), DataEntry(getKeyEI(eA), eI), DataEntry("EcSys", eBI), DataEntry(("Order_Status:_" + userAddress), "confirmed"), DataEntry(getKeySI(item), sI), DataEntry("SBI: b", sBI), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(i.caller, uI, unit), ScriptTransfer(addressFromStringValue(eA), eBI, bBitCO2)]))
237235 }
238236 }
239237
240238
241239
242240 @Callable(i)
243241 func withdraw (item,amount) = {
244242 let userAddress = toBase58String(i.caller.bytes)
245243 let supplier = match getString(this, getKeyItemSupplier(item)) {
246244 case a: String =>
247245 a
248246 case _ =>
249247 NONE
250248 }
251249 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
252250 case a: Int =>
253251 a
254252 case _ =>
255253 startQty
256254 }
257255 let newAmount = (preIcoQty - amount)
258256 if ((0 > amount))
259257 then throw("Can't withdraw negative amount")
260258 else if ((0 >= newAmount))
261259 then throw("Not enought /insuficiente balance")
262260 else ScriptResult(WriteSet([DataEntry(item, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, bBitCO2)]))
263261 }
264262
265263
266264 @Verifier(tx)
267265 func verify () = match tx {
268266 case t: SetScriptTransaction =>
269267 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
270268 case d: ReissueTransaction|DataTransaction =>
271269 true
272270 case tx: TransferTransaction =>
273271 true
274272 case tx: ExchangeTransaction =>
275273 true
276274 case _ =>
277275 false
278276 }
279277

github/deemru/w8io/6500d08 
64.08 ms