tx · 3tPrYTwkoJmiwCUSRH9eppsgmpyFW5Uo9YemkQusksmS

3N6D1fPBTu4QuZenU7hKNuxEKsxd13USum8:  -0.01000000 Waves

2021.10.18 10:00 [1751396] smart account 3N6D1fPBTu4QuZenU7hKNuxEKsxd13USum8 > SELF 0.00000000 Waves

{ "type": 13, "id": "3tPrYTwkoJmiwCUSRH9eppsgmpyFW5Uo9YemkQusksmS", "fee": 1000000, "feeAssetId": null, "timestamp": 1634540456684, "version": 2, "chainId": 84, "sender": "3N6D1fPBTu4QuZenU7hKNuxEKsxd13USum8", "senderPublicKey": "8xCH82jKi2DM7HXXD45fmftPUDjr3TJpjanUATKMK37U", "proofs": [ "4aeYB5BtMkEHpKkRsHkvMXkvPtVhhCXiU7c1kVpipnLkuuYjgUd3tjyY2g5NkbBQt9gqTm4NYcWqHYez1egKQCjf" ], "script": "base64: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EGdldFZhbHVlVXNlck5hbWUAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAA5nZXRLZXlVc2VyTmFtZQAAAAEFAAAABGl0ZW0BAAAAEmdldEtleVVzZXJEb2N1bWVudAAAAAEAAAAEaXRlbQIAAAAj4oSWIGRlIERvY3VtZW50byAvIEROSSBkZWwgVXN1YXJpbzoBAAAAFGdldFZhbHVlVXNlckRvY3VtZW50AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5VXNlckRvY3VtZW50AAAAAQUAAAAEaXRlbQEAAAAIZ2V0S2V5VUkAAAABAAAABGl0ZW0CAAAACFVJLCBiaXQ6AQAAAApnZXRWYWx1ZVVJAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAIZ2V0S2V5VUkAAAABBQAAAARpdGVtAQAAAAhnZXRLZXlQSQAAAAEAAAAEaXRlbQIAAAAJUEksIHd2bHM6AQAAAApnZXRWYWx1ZVBJAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAIZ2V0S2V5UEkAAAABBQAAAARpdGVtAQAAAAhnZXRLZXlTSQAAAAEAAAAEaXRlbQIAAAAIU0ksIGJpdDoBAAAACmdldFZhbHVlU0kAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAAhnZXRLZXlTSQAAAAEFAAAABGl0ZW0BAAAACWdldEtleU5JYgAAAAEAAAAEaXRlbQIAAAAJTkliLCBiaXQ6AQAAAAtnZXRWYWx1ZU5JYgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAACWdldEtleU5JYgAAAAEFAAAABGl0ZW0BAAAACWdldEtleU5JdwAAAAEAAAAEaXRlbQIAAAAKTkl3LCB3dmxzOgEAAAALZ2V0VmFsdWVOSXcAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAAlnZXRLZXlOSXcAAAABBQAAAARpdGVtAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEAAAAEaXRlbQIAAAA0VG9rZW5zIE9mZXJ0YWRvcyBlbiBsYSBwcmVzZW50ZSBldGFwYSAvIFNhbGRvLCB5dG9rOgEAAAAfZ2V0VmFsdWVTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAHWdldEtleVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQUAAAAEaXRlbQEAAAAYZ2V0S2V5QmFsYW5jZVF0eVN1cHBsaWVyAAAAAQAAAARpdGVtAgAAABtCYWxhbmNlL1NhbGRvIEdUUywgeXRva2VuczoBAAAAGmdldFZhbHVlQmFsYW5jZVF0eVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0S2V5QmFsYW5jZVF0eVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgIAAAAcSW5ncmVzb3MgcG9yIFZlbnRhR1RTLCB3dmxzOgEAAAAXZ2V0VmFsdWVCYWxhbmNlU3VwcGxpZXIAAAABAAAACHN1cHBsaWVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAIc3VwcGxpZXIAAAADAAAAAWkBAAAAB2RlcG9zaXQAAAACAAAABXRpdGxlAAAADHN1cHBsaWVyRGF0YQQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAB3lCaXRDTzIJAAACAAAAAQIAAAApZGVwb3NpdG8gcGVybWl0aWRvIHNvbG8gZW4geUJpdENPMiB0b2tlbnMEAAAACHN1cHBsaWVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWN1cnJlbnRBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAIc3VwcGxpZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAIc3RhcnRR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dGFsBQAAAAlyZWxhY2RjdG8JAABpAAAAAgUAAAAFdXNkbncFAAAADWJjbzJtZW5vc2RjdG8EAAAADUJhbGFuY2VUaWVuZGEJAABkAAAAAgUAAAAPYmFsYW5jZVN1cHBsaWVyCAUAAAADcG10AAAABmFtb3VudAMJAABmAAAAAgUAAAALdG90YWxBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAANVBheW1lbnQgQW1vdW50IGNhbid0IGJlIGxlc3MgdGhhbiBpdGVtIFB1cmNoYXNlIE9yZGVyAwkAAGYAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAALdG90YWxBbW91bnQJAAACAAAAAQIAAAA3UGF5bWVudCBBbW91bnQgY2FuJ3QgYmUgaGlnaGVyIHRoYW4gaXRlbSBQdXJjaGFzZSBPcmRlcgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRLZXlVc2VySXRlbUd0c0NvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQkAAGQAAAACCQEAAAAaZ2V0VmFsdWVVc2VySXRlbUd0c0NvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyBQAAAAhzdXBwbGllcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAACmdldEtleUl0ZW0AAAACBQAAAAhzdXBwbGllcgUAAAAEaXRlbQUAAAAEaXRlbQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADmdldEtleUl0ZW1OYW1lAAAAAQUAAAAEaXRlbQUAAAAIaXRlbU5hbWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlVc2VyTmFtZQAAAAEFAAAABGl0ZW0FAAAACHVzZXJOYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5VXNlckRvY3VtZW50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", "height": 1751396, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AKcfKovovBQbMHSvF2H9QY6TJUP2Eaq6ZL2GKx2AuA9r Next: 8zHUv5kMFmaS8Pe4ZGdvD7mNJ6HZh9nSFW8xoQukizT7 Diff:
OldNewDifferences
99
1010 let SecondFaseQty = 2745000000
1111
12-let nomPrice = 1
13-
14-let wvs = 100000000
15-
16-let supplierDiscount = 12
17-
1812 let NONE = "none"
1913
2014 let OwnerPubKey = base58'8xCH82jKi2DM7HXXD45fmftPUDjr3TJpjanUATKMK37U'
2519
2620 let pAdd = Address(base58'3Mv5mXTRhpWZxZxstmnsBhckWNgErMTFEaD')
2721
28-let igv = 18
22+let igv = 0
2923
30-let EuroW = 32000000
24+let eurou = (116 / 100)
3125
32-let ybitco2 = ((1 * EuroW) / 10000)
26+let usdnw = (2539 / 100)
3327
34-let uIP = 7
28+let bco2e = 10
29+
30+let bitco2u = (eurou * bco2e)
31+
32+let bitdscto = 3
33+
34+let bco2menosdcto = (((100 - bitdscto) * bitco2u) / 100)
3535
3636 let pIP = 10
3737
38-let eIP = 1
38+let uBP = 7
3939
4040 let sBP = 2
4141
42+let eIP = 1
43+
4244 let eBP = 2
45+
46+let relacdcto = 11
4347
4448 func getNumberByKey (key) = {
4549 let num = match getInteger(this, key) {
6367 }
6468
6569
66-func getKeyItemSupplier (supplier) = (supplier + "Bit-CO2 Shop, Lima-Perú")
70+func getKeyItemSupplier (supplier) = (supplier + "Vendedor, Lima-Perú")
6771
6872
6973 func getKeyItem (supplier,item) = (("Producto-GTS: " + " ") + toBase58String(sha256(toBytes((supplier + item)))))
7074
7175
76+func getKeyIssuer (item) = "Issuer/Tienda"
77+
78+
7279 func getKeyProject (item) = "Project"
80+
81+
82+func getKeyNodo (item) = "Nodo"
7383
7484
7585 func getKeyUserItemGtsCounter (user,item) = "Order_№:"
96106 func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item))
97107
98108
109+func getKeyUI (item) = "UI, bit:"
110+
111+
112+func getValueUI (item) = getNumberByKey(getKeyUI(item))
113+
114+
115+func getKeyPI (item) = "PI, wvls:"
116+
117+
118+func getValuePI (item) = getNumberByKey(getKeyPI(item))
119+
120+
121+func getKeySI (item) = "SI, bit:"
122+
123+
124+func getValueSI (item) = getNumberByKey(getKeySI(item))
125+
126+
127+func getKeyNIb (item) = "NIb, bit:"
128+
129+
130+func getValueNIb (item) = getNumberByKey(getKeyNIb(item))
131+
132+
133+func getKeyNIw (item) = "NIw, wvls:"
134+
135+
136+func getValueNIw (item) = getNumberByKey(getKeyNIw(item))
137+
138+
99139 func getKeySaldoTokenQtyStartEtapa (item) = "Tokens Ofertados en la presente etapa / Saldo, ytok:"
100140
101141
112152
113153
114154 func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
115-
116-
117-func getKeyUI (item) = "UI,_wvls:"
118-
119-
120-func getValueUI (item) = getNumberByKey(getKeyUI(item))
121-
122-
123-func getKeyPI (item) = "PI,_wvls:"
124-
125-
126-func getValuePI (item) = getNumberByKey(getKeyPI(item))
127-
128-
129-func getKeySI (item) = "SI,_wvls:"
130-
131-
132-func getValueSI (item) = getNumberByKey(getKeySI(item))
133155
134156
135157 @Callable(i)
166188 case _ =>
167189 NONE
168190 }
191+ let issuerAdd = match getString(this, getKeyIssuer(item)) {
192+ case a: String =>
193+ a
194+ case _ =>
195+ issuer
196+ }
169197 let projAdd = match getString(this, getKeyProject(item)) {
170198 case a: String =>
171199 a
172200 case _ =>
173201 pAdd
174202 }
175- let nodoAdd = match getString(this, getKeyProject(item)) {
203+ let nodoAdd = match getString(this, getKeyNodo(item)) {
176204 case a: String =>
177205 a
178206 case _ =>
192220 }
193221 let userAddress = toBase58String(i.caller.bytes)
194222 let subTotal = (totalAmount - ((igv * totalAmount) / 100))
195- let cPB = ((88 * ybitco2) / 100)
196- let uI = ((subTotal * uIP) / 100)
197- let uBI = ((uI / cPB) * 1)
198- let pI = ((subTotal * pIP) / 100)
199- let eI = ((subTotal * eIP) / 100)
200- let eBI = (((subTotal * eBP) / (100 * cPB)) * 1)
201- let sI = ((totalAmount - pI) - eI)
202- let sBI = (((subTotal * sBP) / (100 * cPB)) * 1)
203- let QVentasgts = (((subTotal * 11) / (cPB * 100)) * 1)
223+ let pIw = ((pIP * subTotal) / relacdcto)
224+ let eIw = ((eIP * subTotal) / relacdcto)
225+ let uIb = (((uBP * subTotal) / relacdcto) * (usdnw / bco2menosdcto))
226+ let sIb = (((sBP * subTotal) / relacdcto) * (usdnw / bco2menosdcto))
227+ let eIb = (((eBP * subTotal) / relacdcto) * (usdnw / bco2menosdcto))
228+ let BalanceTienda = (balanceSupplier + pmt.amount)
204229 if ((totalAmount > pmt.amount))
205230 then throw("Payment Amount can't be less than item Purchase Order")
206231 else if ((pmt.amount > totalAmount))
207232 then throw("Payment Amount can't be higher than item Purchase Order")
208- else ScriptResult(WriteSet([DataEntry(getKeyUserItemGtsCounter(userAddress, item), (getValueUserItemGtsCounter(userAddress, item) + 1)), DataEntry(getKeyItem(supplier, item), item), DataEntry(getKeyItemName(item), itemName), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserDocument(item), userDocument), DataEntry("Monto Ecológico,_wvls", totalAmount), DataEntry("Impuesto (no sumado), %", igv), DataEntry("STtl, wvls", subTotal), DataEntry("CP 1 B, wvls", (cPB * 10000)), DataEntry(getKeyUI(item), uI), DataEntry("UBI, 10e-4 ybitco2", uBI), DataEntry(getKeyPI(item), pI), DataEntry("EcSys, wvls", eI), DataEntry("EcSys, 10e-4 ybitco2", eBI), DataEntry(getKeySI(item), sI), DataEntry("SBI, 10e-4 ybitco2", sBI), DataEntry(("Order_Status:_" + userAddress), "Transacción Confirmada!"), DataEntry("QporVentasGTS, 10e-4 ybitco2", QVentasgts), DataEntry(getKeyBalanceQtySupplier(item), (preTokenQty - (QVentasgts / 1))), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(i.caller, uBI, yBitCO2), ScriptTransfer(pAdd, pI, unit), ScriptTransfer(eAdd, eI, unit), ScriptTransfer(eAdd, eBI, yBitCO2), ScriptTransfer(issuer, sI, unit), ScriptTransfer(issuer, sBI, yBitCO2)]))
233+ else ScriptResult(WriteSet([DataEntry(getKeyUserItemGtsCounter(userAddress, item), (getValueUserItemGtsCounter(userAddress, item) + 1)), DataEntry(getKeyItemSupplier(supplier), supplier), DataEntry(getKeyItem(supplier, item), item), DataEntry(getKeyItemName(item), itemName), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserDocument(item), userDocument), DataEntry(getKeyIssuer(item), item), DataEntry(getKeyProject(item), item), DataEntry(getKeyNodo(item), item), DataEntry("Tienda", supplier), DataEntry("Apoyo Ecológico, wvls", totalAmount), DataEntry("Precio Nominal 1 Bit-CO2", bco2e), DataEntry("Precio con Descto, 1 Bit-CO2", bco2menosdcto), DataEntry("SuTotal a distribuir, wvls", subTotal), DataEntry(getKeyPI(item), pIw), DataEntry(getKeyUI(item), uIb), DataEntry(getKeySI(item), sIb), DataEntry(getKeyNIb(item), eIb), DataEntry(getKeyNIw(item), eIw), DataEntry(("Order_Status:_" + userAddress), "Transacción Confirmada!"), DataEntry("PreTokenQty", preTokenQty), DataEntry(getKeyBalanceQtySupplier(item), (preTokenQty - (BalanceTienda / 1))), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(pAdd, pIw, unit), ScriptTransfer(i.caller, uIb, yBitCO2), ScriptTransfer(issuer, sIb, yBitCO2), ScriptTransfer(eAdd, eIw, unit), ScriptTransfer(eAdd, eIb, yBitCO2)]))
209234 }
210235 }
211236
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let yBitCO2 = base58'872MvpMoQx7SnV58HMcR9hd6vBWDtQvqmt5javCmYwpx'
55
66 let startQty = 3056930000
77
88 let FirstFaseQty = 311930000
99
1010 let SecondFaseQty = 2745000000
1111
12-let nomPrice = 1
13-
14-let wvs = 100000000
15-
16-let supplierDiscount = 12
17-
1812 let NONE = "none"
1913
2014 let OwnerPubKey = base58'8xCH82jKi2DM7HXXD45fmftPUDjr3TJpjanUATKMK37U'
2115
2216 let issuer = Address(base58'3N67GoXrZo4iwmEjLhS9iNUCbzpPEjoYgNW')
2317
2418 let eAdd = Address(base58'3N3uf7RK8Aed4v5ufGB8xV2Wsz4WNoHj21c')
2519
2620 let pAdd = Address(base58'3Mv5mXTRhpWZxZxstmnsBhckWNgErMTFEaD')
2721
28-let igv = 18
22+let igv = 0
2923
30-let EuroW = 32000000
24+let eurou = (116 / 100)
3125
32-let ybitco2 = ((1 * EuroW) / 10000)
26+let usdnw = (2539 / 100)
3327
34-let uIP = 7
28+let bco2e = 10
29+
30+let bitco2u = (eurou * bco2e)
31+
32+let bitdscto = 3
33+
34+let bco2menosdcto = (((100 - bitdscto) * bitco2u) / 100)
3535
3636 let pIP = 10
3737
38-let eIP = 1
38+let uBP = 7
3939
4040 let sBP = 2
4141
42+let eIP = 1
43+
4244 let eBP = 2
45+
46+let relacdcto = 11
4347
4448 func getNumberByKey (key) = {
4549 let num = match getInteger(this, key) {
4650 case a: Int =>
4751 a
4852 case _ =>
4953 0
5054 }
5155 num
5256 }
5357
5458
5559 func getStrByKey (key) = {
5660 let str = match getString(this, key) {
5761 case a: String =>
5862 a
5963 case _ =>
6064 NONE
6165 }
6266 str
6367 }
6468
6569
66-func getKeyItemSupplier (supplier) = (supplier + "Bit-CO2 Shop, Lima-Perú")
70+func getKeyItemSupplier (supplier) = (supplier + "Vendedor, Lima-Perú")
6771
6872
6973 func getKeyItem (supplier,item) = (("Producto-GTS: " + " ") + toBase58String(sha256(toBytes((supplier + item)))))
7074
7175
76+func getKeyIssuer (item) = "Issuer/Tienda"
77+
78+
7279 func getKeyProject (item) = "Project"
80+
81+
82+func getKeyNodo (item) = "Nodo"
7383
7484
7585 func getKeyUserItemGtsCounter (user,item) = "Order_№:"
7686
7787
7888 func getValueUserItemGtsCounter (user,item) = getNumberByKey(getKeyUserItemGtsCounter(user, item))
7989
8090
8191 func getKeyItemName (item) = "Categoría del Producto:"
8292
8393
8494 func getValueItemName (item) = getStrByKey(getKeyItemName(item))
8595
8696
8797 func getKeyUserName (item) = "Nombre del Usuario:"
8898
8999
90100 func getValueUserName (item) = getStrByKey(getKeyUserName(item))
91101
92102
93103 func getKeyUserDocument (item) = "№ de Documento / DNI del Usuario:"
94104
95105
96106 func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item))
97107
98108
109+func getKeyUI (item) = "UI, bit:"
110+
111+
112+func getValueUI (item) = getNumberByKey(getKeyUI(item))
113+
114+
115+func getKeyPI (item) = "PI, wvls:"
116+
117+
118+func getValuePI (item) = getNumberByKey(getKeyPI(item))
119+
120+
121+func getKeySI (item) = "SI, bit:"
122+
123+
124+func getValueSI (item) = getNumberByKey(getKeySI(item))
125+
126+
127+func getKeyNIb (item) = "NIb, bit:"
128+
129+
130+func getValueNIb (item) = getNumberByKey(getKeyNIb(item))
131+
132+
133+func getKeyNIw (item) = "NIw, wvls:"
134+
135+
136+func getValueNIw (item) = getNumberByKey(getKeyNIw(item))
137+
138+
99139 func getKeySaldoTokenQtyStartEtapa (item) = "Tokens Ofertados en la presente etapa / Saldo, ytok:"
100140
101141
102142 func getValueSaldoTokenQtyStartEtapa (item) = getNumberByKey(getKeySaldoTokenQtyStartEtapa(item))
103143
104144
105145 func getKeyBalanceQtySupplier (item) = "Balance/Saldo GTS, ytokens:"
106146
107147
108148 func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
109149
110150
111151 func getKeyBalanceSupplier (supplier) = "Ingresos por VentaGTS, wvls:"
112152
113153
114154 func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
115-
116-
117-func getKeyUI (item) = "UI,_wvls:"
118-
119-
120-func getValueUI (item) = getNumberByKey(getKeyUI(item))
121-
122-
123-func getKeyPI (item) = "PI,_wvls:"
124-
125-
126-func getValuePI (item) = getNumberByKey(getKeyPI(item))
127-
128-
129-func getKeySI (item) = "SI,_wvls:"
130-
131-
132-func getValueSI (item) = getNumberByKey(getKeySI(item))
133155
134156
135157 @Callable(i)
136158 func deposit (title,supplierData) = {
137159 let pmt = extract(i.payment)
138160 if ((pmt.assetId != yBitCO2))
139161 then throw("deposito permitido solo en yBitCO2 tokens")
140162 else {
141163 let supplier = toBase58String(i.caller.bytes)
142164 let currentAmount = match getInteger(this, supplier) {
143165 case a: Int =>
144166 a
145167 case _ =>
146168 startQty
147169 }
148170 let newAmount = (currentAmount + pmt.amount)
149171 if ((0 >= newAmount))
150172 then throw("No hay yBitCO2 en su balance")
151173 else WriteSet([DataEntry(supplier, newAmount)])
152174 }
153175 }
154176
155177
156178
157179 @Callable(i)
158180 func purchaseGTS (item,itemName,userName,userDocument,totalAmount) = {
159181 let pmt = extract(i.payment)
160182 if (isDefined(pmt.assetId))
161183 then throw("El Precio en waves.")
162184 else {
163185 let supplier = match getString(this, getKeyItemSupplier(item)) {
164186 case a: String =>
165187 a
166188 case _ =>
167189 NONE
168190 }
191+ let issuerAdd = match getString(this, getKeyIssuer(item)) {
192+ case a: String =>
193+ a
194+ case _ =>
195+ issuer
196+ }
169197 let projAdd = match getString(this, getKeyProject(item)) {
170198 case a: String =>
171199 a
172200 case _ =>
173201 pAdd
174202 }
175- let nodoAdd = match getString(this, getKeyProject(item)) {
203+ let nodoAdd = match getString(this, getKeyNodo(item)) {
176204 case a: String =>
177205 a
178206 case _ =>
179207 eAdd
180208 }
181209 let preTokenQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
182210 case a: Int =>
183211 a
184212 case _ =>
185213 SecondFaseQty
186214 }
187215 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
188216 case a: Int =>
189217 a
190218 case _ =>
191219 0
192220 }
193221 let userAddress = toBase58String(i.caller.bytes)
194222 let subTotal = (totalAmount - ((igv * totalAmount) / 100))
195- let cPB = ((88 * ybitco2) / 100)
196- let uI = ((subTotal * uIP) / 100)
197- let uBI = ((uI / cPB) * 1)
198- let pI = ((subTotal * pIP) / 100)
199- let eI = ((subTotal * eIP) / 100)
200- let eBI = (((subTotal * eBP) / (100 * cPB)) * 1)
201- let sI = ((totalAmount - pI) - eI)
202- let sBI = (((subTotal * sBP) / (100 * cPB)) * 1)
203- let QVentasgts = (((subTotal * 11) / (cPB * 100)) * 1)
223+ let pIw = ((pIP * subTotal) / relacdcto)
224+ let eIw = ((eIP * subTotal) / relacdcto)
225+ let uIb = (((uBP * subTotal) / relacdcto) * (usdnw / bco2menosdcto))
226+ let sIb = (((sBP * subTotal) / relacdcto) * (usdnw / bco2menosdcto))
227+ let eIb = (((eBP * subTotal) / relacdcto) * (usdnw / bco2menosdcto))
228+ let BalanceTienda = (balanceSupplier + pmt.amount)
204229 if ((totalAmount > pmt.amount))
205230 then throw("Payment Amount can't be less than item Purchase Order")
206231 else if ((pmt.amount > totalAmount))
207232 then throw("Payment Amount can't be higher than item Purchase Order")
208- else ScriptResult(WriteSet([DataEntry(getKeyUserItemGtsCounter(userAddress, item), (getValueUserItemGtsCounter(userAddress, item) + 1)), DataEntry(getKeyItem(supplier, item), item), DataEntry(getKeyItemName(item), itemName), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserDocument(item), userDocument), DataEntry("Monto Ecológico,_wvls", totalAmount), DataEntry("Impuesto (no sumado), %", igv), DataEntry("STtl, wvls", subTotal), DataEntry("CP 1 B, wvls", (cPB * 10000)), DataEntry(getKeyUI(item), uI), DataEntry("UBI, 10e-4 ybitco2", uBI), DataEntry(getKeyPI(item), pI), DataEntry("EcSys, wvls", eI), DataEntry("EcSys, 10e-4 ybitco2", eBI), DataEntry(getKeySI(item), sI), DataEntry("SBI, 10e-4 ybitco2", sBI), DataEntry(("Order_Status:_" + userAddress), "Transacción Confirmada!"), DataEntry("QporVentasGTS, 10e-4 ybitco2", QVentasgts), DataEntry(getKeyBalanceQtySupplier(item), (preTokenQty - (QVentasgts / 1))), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(i.caller, uBI, yBitCO2), ScriptTransfer(pAdd, pI, unit), ScriptTransfer(eAdd, eI, unit), ScriptTransfer(eAdd, eBI, yBitCO2), ScriptTransfer(issuer, sI, unit), ScriptTransfer(issuer, sBI, yBitCO2)]))
233+ else ScriptResult(WriteSet([DataEntry(getKeyUserItemGtsCounter(userAddress, item), (getValueUserItemGtsCounter(userAddress, item) + 1)), DataEntry(getKeyItemSupplier(supplier), supplier), DataEntry(getKeyItem(supplier, item), item), DataEntry(getKeyItemName(item), itemName), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserDocument(item), userDocument), DataEntry(getKeyIssuer(item), item), DataEntry(getKeyProject(item), item), DataEntry(getKeyNodo(item), item), DataEntry("Tienda", supplier), DataEntry("Apoyo Ecológico, wvls", totalAmount), DataEntry("Precio Nominal 1 Bit-CO2", bco2e), DataEntry("Precio con Descto, 1 Bit-CO2", bco2menosdcto), DataEntry("SuTotal a distribuir, wvls", subTotal), DataEntry(getKeyPI(item), pIw), DataEntry(getKeyUI(item), uIb), DataEntry(getKeySI(item), sIb), DataEntry(getKeyNIb(item), eIb), DataEntry(getKeyNIw(item), eIw), DataEntry(("Order_Status:_" + userAddress), "Transacción Confirmada!"), DataEntry("PreTokenQty", preTokenQty), DataEntry(getKeyBalanceQtySupplier(item), (preTokenQty - (BalanceTienda / 1))), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(pAdd, pIw, unit), ScriptTransfer(i.caller, uIb, yBitCO2), ScriptTransfer(issuer, sIb, yBitCO2), ScriptTransfer(eAdd, eIw, unit), ScriptTransfer(eAdd, eIb, yBitCO2)]))
209234 }
210235 }
211236
212237
213238
214239 @Callable(i)
215240 func withdraw (item,amount) = {
216241 let userAddress = toBase58String(i.caller.bytes)
217242 let supplier = match getString(this, getKeyItemSupplier(item)) {
218243 case a: String =>
219244 a
220245 case _ =>
221246 NONE
222247 }
223248 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
224249 case a: Int =>
225250 a
226251 case _ =>
227252 startQty
228253 }
229254 let newAmount = (preIcoQty - amount)
230255 if ((0 > amount))
231256 then throw("El balance de retiro no puede ser negativo!")
232257 else if ((0 >= newAmount))
233258 then throw("Ooppss.. Insuficiente balance!")
234259 else ScriptResult(WriteSet([DataEntry(item, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, yBitCO2)]))
235260 }
236261
237262
238263 @Verifier(tx)
239264 func verify () = match tx {
240265 case t: SetScriptTransaction =>
241266 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
242267 case d: ReissueTransaction|DataTransaction =>
243268 true
244269 case tx: TransferTransaction =>
245270 true
246271 case _ =>
247272 false
248273 }
249274

github/deemru/w8io/169f3d6 
83.88 ms