tx · 74FfqNoidmM4vUX6yVAX2mGK665gApA41VoxE7xmeQzG 3Mv5mXTRhpWZxZxstmnsBhckWNgErMTFEaD: -0.01000000 Waves 2021.10.18 15:28 [1751726] smart account 3Mv5mXTRhpWZxZxstmnsBhckWNgErMTFEaD > SELF 0.00000000 Waves
{ "type": 13, "id": "74FfqNoidmM4vUX6yVAX2mGK665gApA41VoxE7xmeQzG", "fee": 1000000, "feeAssetId": null, "timestamp": 1634560178583, "version": 2, "chainId": 84, "sender": "3Mv5mXTRhpWZxZxstmnsBhckWNgErMTFEaD", "senderPublicKey": "B6S11L8tiE1tkdBiTQrae6mPzpr9XXqSCRcHTmL2YBhX", "proofs": [ "28FQFU4ZjbELUXNxBFa6b1UfnuHvqcWwSRDF7vTdtoLPZ9sUid6vNsdr6WpFZ4LFA9YSeWJ845WWorKxMpurQXiP" ], "script": "base64:AAIDAAAAAAAAABcIARIECgIICBIHCgUICAgIARIECgIIAQAAADcAAAAAB3lCaXRDTzIBAAAAIGmM1P/bTQF96Mt4t9+zj8FcPDlb6Qx5aA0hjmfpm0utAAAAAAhzdGFydFF0eQAAAAAAAASqHQAAAAAMRmlyc3RGYXNlUXR5AAAAAAAAAHnZAAAAAA1TZWNvbmRGYXNlUXR5AAAAAAAABDBEAAAAAAROT05FAgAAAARub25lAAAAAAtPd25lclB1YktleQEAAAAgdiWBR/bYuTfu7hq3cysJa14Q3mfrzJBzirlSbXhIDw8AAAAABmlzc3VlcgkBAAAAB0FkZHJlc3MAAAABAQAAABoBVLGfyy1r0onBhV5KbTmujr+1cm+CidoWkwAAAAAEZUFkZAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVJl9LDPuC4uFUEENum3we4/11P1VuB5sVwAAAAAEcEFkZAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVEOlrjWInpptJ9aV0memID9lDjKQsHSkagAAAAAFZXVyb3UAAAAAAAAAAHQAAAAABXVzZG53AAAAAAAAAAnrAAAAAAViY28yZQAAAAAAAAGGoAAAAAAIYml0ZHNjdG8AAAAAAAAAAAMAAAAAA3BJUAAAAAAAAAAACgAAAAADdUJQAAAAAAAAAAAHAAAAAANzQlAAAAAAAAAAAAIAAAAAA2VJUAAAAAAAAAAAAQAAAAADZUJQAAAAAAAAAAACAAAAAAlyZWxhY2RjdG8AAAAAAAAAAAsBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkAASwAAAACBQAAAAhzdXBwbGllcgIAAAAUVmVuZGVkb3IsIExpbWEtUGVyw7oBAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABGl0ZW0JAAEsAAAAAgkAASwAAAACAgAAAA5Qcm9kdWN0by1HVFM6IAIAAAABIAkAAlgAAAABCQAB9wAAAAEJAAGbAAAAAQkAASwAAAACBQAAAAhzdXBwbGllcgUAAAAEaXRlbQEAAAAMZ2V0S2V5SXNzdWVyAAAAAQAAAARpdGVtAgAAAA1Jc3N1ZXIvVGllbmRhAQAAAA5nZXRWYWx1ZUlzc3VlcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADGdldEtleUlzc3VlcgAAAAEFAAAABGl0ZW0BAAAADWdldEtleVByb2plY3QAAAABAAAABGl0ZW0CAAAAB1Byb2plY3QBAAAAD2dldFZhbHVlUHJvamVjdAAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADWdldEtleVByb2plY3QAAAABBQAAAARpdGVtAQAAAApnZXRLZXlOb2RvAAAAAQAAAARpdGVtAgAAAAROb2RvAQAAAAxnZXRWYWx1ZU5vZG8AAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAApnZXRLZXlOb2RvAAAAAQUAAAAEaXRlbQEAAAAYZ2V0S2V5VXNlckl0ZW1HdHNDb3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0CAAAACk9yZGVyX+KEljoBAAAAGmdldFZhbHVlVXNlckl0ZW1HdHNDb3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABhnZXRLZXlVc2VySXRlbUd0c0NvdW50ZXIAAAACBQAAAAR1c2VyBQAAAARpdGVtAQAAAA5nZXRLZXlJdGVtTmFtZQAAAAEAAAAEaXRlbQIAAAAYQ2F0ZWdvcsOtYSBkZWwgUHJvZHVjdG86AQAAABBnZXRWYWx1ZUl0ZW1OYW1lAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAOZ2V0S2V5SXRlbU5hbWUAAAABBQAAAARpdGVtAQAAAA5nZXRLZXlVc2VyTmFtZQAAAAEAAAAEaXRlbQIAAAATTm9tYnJlIGRlbCBVc3VhcmlvOgEAAAAQZ2V0VmFsdWVVc2VyTmFtZQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADmdldEtleVVzZXJOYW1lAAAAAQUAAAAEaXRlbQEAAAASZ2V0S2V5VXNlckRvY3VtZW50AAAAAQAAAARpdGVtAgAAACPihJYgZGUgRG9jdW1lbnRvIC8gRE5JIGRlbCBVc3VhcmlvOgEAAAAUZ2V0VmFsdWVVc2VyRG9jdW1lbnQAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlVc2VyRG9jdW1lbnQAAAABBQAAAARpdGVtAQAAAAhnZXRLZXlVSQAAAAEAAAAEaXRlbQIAAAAQVUksIHgxMGUtMDQgYml0OgEAAAAKZ2V0VmFsdWVVSQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAACGdldEtleVVJAAAAAQUAAAAEaXRlbQEAAAAIZ2V0S2V5UEkAAAABAAAABGl0ZW0CAAAACVBJLCB3dmxzOgEAAAAKZ2V0VmFsdWVQSQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAACGdldEtleVBJAAAAAQUAAAAEaXRlbQEAAAAIZ2V0S2V5U0kAAAABAAAABGl0ZW0CAAAAEFNJLCB4MTBlLTA0IGJpdDoBAAAACmdldFZhbHVlU0kAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAAhnZXRLZXlTSQAAAAEFAAAABGl0ZW0BAAAACWdldEtleU5JYgAAAAEAAAAEaXRlbQIAAAARTkliLCB4MTBlLTA0IGJpdDoBAAAAC2dldFZhbHVlTkliAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAJZ2V0S2V5TkliAAAAAQUAAAAEaXRlbQEAAAAJZ2V0S2V5Tkl3AAAAAQAAAARpdGVtAgAAAApOSXcsIHd2bHM6AQAAAAtnZXRWYWx1ZU5JdwAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAACWdldEtleU5JdwAAAAEFAAAABGl0ZW0BAAAAHWdldEtleVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQAAAARpdGVtAgAAADRUb2tlbnMgT2ZlcnRhZG9zIGVuIGxhIHByZXNlbnRlIGV0YXBhIC8gU2FsZG8sIHl0b2s6AQAAAB9nZXRWYWx1ZVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAdZ2V0S2V5U2FsZG9Ub2tlblF0eVN0YXJ0RXRhcGEAAAABBQAAAARpdGVtAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABAAAABGl0ZW0CAAAAG0JhbGFuY2UvU2FsZG8gR1RTLCB5dG9rZW5zOgEAAAAaZ2V0VmFsdWVCYWxhbmNlUXR5U3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtAQAAABNnZXRLZXlCYWxhbmNlSXNzdWVyAAAAAQAAAAhzdXBwbGllcgIAAAAQU2FsZG8gd3ZzLCB3dmxzOgEAAAAVZ2V0VmFsdWVCYWxhbmNlSXNzdWVyAAAAAQAAAAhzdXBwbGllcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAE2dldEtleUJhbGFuY2VJc3N1ZXIAAAABBQAAAAhzdXBwbGllcgEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgIAAAAcSW5ncmVzb3MgcG9yIFZlbnRhR1RTLCB3dmxzOgEAAAAXZ2V0VmFsdWVCYWxhbmNlU3VwcGxpZXIAAAABAAAACHN1cHBsaWVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAIc3VwcGxpZXIAAAADAAAAAWkBAAAAB2RlcG9zaXQAAAACAAAABXRpdGxlAAAADHN1cHBsaWVyRGF0YQQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAAC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RGF0YUVudHJ5AAAAAgIAAAAPYmFsYW5jZVN1cHBsaWVyBQAAAA9iYWxhbmNlU3VwcGxpZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADWJhbGFuY2VUaWVuZGEFAAAADUJhbGFuY2VUaWVuZGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADWJhbGFuY2VJc3N1ZXIFAAAADUJhbGFuY2VJc3N1ZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAACHN0YXJ0UXR5BQAAAAhzdGFydFF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAMRmlyc3RGYXNlUXR5BQAAAAxGaXJzdEZhc2VRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADVNlY29uZEZhc2VRdHkFAAAADVNlY29uZEZhc2VRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtCQAAZQAAAAIFAAAAC3ByZVRva2VuUXR5CQAAaQAAAAIFAAAADUJhbGFuY2VUaWVuZGEAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAhzdXBwbGllcgkAAGQAAAACBQAAAA9iYWxhbmNlU3VwcGxpZXIIBQAAAANwbXQAAAAGYW1vdW50BQAA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", "height": 1751726, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 3 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let yBitCO2 = base58'872MvpMoQx7SnV58HMcR9hd6vBWDtQvqmt5javCmYwpx' | |
5 | + | ||
6 | + | let startQty = 305693 | |
7 | + | ||
8 | + | let FirstFaseQty = 31193 | |
9 | + | ||
10 | + | let SecondFaseQty = 274500 | |
11 | + | ||
12 | + | let NONE = "none" | |
13 | + | ||
14 | + | let OwnerPubKey = base58'8xCH82jKi2DM7HXXD45fmftPUDjr3TJpjanUATKMK37U' | |
15 | + | ||
16 | + | let issuer = Address(base58'3N67GoXrZo4iwmEjLhS9iNUCbzpPEjoYgNW') | |
17 | + | ||
18 | + | let eAdd = Address(base58'3N3uf7RK8Aed4v5ufGB8xV2Wsz4WNoHj21c') | |
19 | + | ||
20 | + | let pAdd = Address(base58'3Mv5mXTRhpWZxZxstmnsBhckWNgErMTFEaD') | |
21 | + | ||
22 | + | let eurou = 116 | |
23 | + | ||
24 | + | let usdnw = 2539 | |
25 | + | ||
26 | + | let bco2e = 100000 | |
27 | + | ||
28 | + | let bitdscto = 3 | |
29 | + | ||
30 | + | let pIP = 10 | |
31 | + | ||
32 | + | let uBP = 7 | |
33 | + | ||
34 | + | let sBP = 2 | |
35 | + | ||
36 | + | let eIP = 1 | |
37 | + | ||
38 | + | let eBP = 2 | |
39 | + | ||
40 | + | let relacdcto = 11 | |
41 | + | ||
42 | + | func getNumberByKey (key) = { | |
43 | + | let num = match getInteger(this, key) { | |
44 | + | case a: Int => | |
45 | + | a | |
46 | + | case _ => | |
47 | + | 0 | |
48 | + | } | |
49 | + | num | |
50 | + | } | |
51 | + | ||
52 | + | ||
53 | + | func getStrByKey (key) = { | |
54 | + | let str = match getString(this, key) { | |
55 | + | case a: String => | |
56 | + | a | |
57 | + | case _ => | |
58 | + | NONE | |
59 | + | } | |
60 | + | str | |
61 | + | } | |
62 | + | ||
63 | + | ||
64 | + | func getKeyItemSupplier (supplier) = (supplier + "Vendedor, Lima-Perú") | |
65 | + | ||
66 | + | ||
67 | + | func getKeyItem (supplier,item) = (("Producto-GTS: " + " ") + toBase58String(sha256(toBytes((supplier + item))))) | |
68 | + | ||
69 | + | ||
70 | + | func getKeyIssuer (item) = "Issuer/Tienda" | |
71 | + | ||
72 | + | ||
73 | + | func getValueIssuer (item) = getStrByKey(getKeyIssuer(item)) | |
74 | + | ||
75 | + | ||
76 | + | func getKeyProject (item) = "Project" | |
77 | + | ||
78 | + | ||
79 | + | func getValueProject (item) = getStrByKey(getKeyProject(item)) | |
80 | + | ||
81 | + | ||
82 | + | func getKeyNodo (item) = "Nodo" | |
83 | + | ||
84 | + | ||
85 | + | func getValueNodo (item) = getStrByKey(getKeyNodo(item)) | |
86 | + | ||
87 | + | ||
88 | + | func getKeyUserItemGtsCounter (user,item) = "Order_№:" | |
89 | + | ||
90 | + | ||
91 | + | func getValueUserItemGtsCounter (user,item) = getNumberByKey(getKeyUserItemGtsCounter(user, item)) | |
92 | + | ||
93 | + | ||
94 | + | func getKeyItemName (item) = "Categoría del Producto:" | |
95 | + | ||
96 | + | ||
97 | + | func getValueItemName (item) = getStrByKey(getKeyItemName(item)) | |
98 | + | ||
99 | + | ||
100 | + | func getKeyUserName (item) = "Nombre del Usuario:" | |
101 | + | ||
102 | + | ||
103 | + | func getValueUserName (item) = getStrByKey(getKeyUserName(item)) | |
104 | + | ||
105 | + | ||
106 | + | func getKeyUserDocument (item) = "№ de Documento / DNI del Usuario:" | |
107 | + | ||
108 | + | ||
109 | + | func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item)) | |
110 | + | ||
111 | + | ||
112 | + | func getKeyUI (item) = "UI, x10e-04 bit:" | |
113 | + | ||
114 | + | ||
115 | + | func getValueUI (item) = getNumberByKey(getKeyUI(item)) | |
116 | + | ||
117 | + | ||
118 | + | func getKeyPI (item) = "PI, wvls:" | |
119 | + | ||
120 | + | ||
121 | + | func getValuePI (item) = getNumberByKey(getKeyPI(item)) | |
122 | + | ||
123 | + | ||
124 | + | func getKeySI (item) = "SI, x10e-04 bit:" | |
125 | + | ||
126 | + | ||
127 | + | func getValueSI (item) = getNumberByKey(getKeySI(item)) | |
128 | + | ||
129 | + | ||
130 | + | func getKeyNIb (item) = "NIb, x10e-04 bit:" | |
131 | + | ||
132 | + | ||
133 | + | func getValueNIb (item) = getNumberByKey(getKeyNIb(item)) | |
134 | + | ||
135 | + | ||
136 | + | func getKeyNIw (item) = "NIw, wvls:" | |
137 | + | ||
138 | + | ||
139 | + | func getValueNIw (item) = getNumberByKey(getKeyNIw(item)) | |
140 | + | ||
141 | + | ||
142 | + | func getKeySaldoTokenQtyStartEtapa (item) = "Tokens Ofertados en la presente etapa / Saldo, ytok:" | |
143 | + | ||
144 | + | ||
145 | + | func getValueSaldoTokenQtyStartEtapa (item) = getNumberByKey(getKeySaldoTokenQtyStartEtapa(item)) | |
146 | + | ||
147 | + | ||
148 | + | func getKeyBalanceQtySupplier (item) = "Balance/Saldo GTS, ytokens:" | |
149 | + | ||
150 | + | ||
151 | + | func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item)) | |
152 | + | ||
153 | + | ||
154 | + | func getKeyBalanceIssuer (supplier) = "Saldo wvs, wvls:" | |
155 | + | ||
156 | + | ||
157 | + | func getValueBalanceIssuer (supplier) = getNumberByKey(getKeyBalanceIssuer(supplier)) | |
158 | + | ||
159 | + | ||
160 | + | func getKeyBalanceSupplier (supplier) = "Ingresos por VentaGTS, wvls:" | |
161 | + | ||
162 | + | ||
163 | + | func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier)) | |
164 | + | ||
165 | + | ||
166 | + | @Callable(i) | |
167 | + | func deposit (title,supplierData) = { | |
168 | + | let pmt = extract(i.payment) | |
169 | + | if ((pmt.assetId != yBitCO2)) | |
170 | + | then throw("deposito permitido solo en yBitCO2 tokens") | |
171 | + | else { | |
172 | + | let supplier = toBase58String(i.caller.bytes) | |
173 | + | let currentAmount = match getInteger(this, supplier) { | |
174 | + | case a: Int => | |
175 | + | a | |
176 | + | case _ => | |
177 | + | startQty | |
178 | + | } | |
179 | + | let newAmount = (currentAmount + pmt.amount) | |
180 | + | if ((0 >= newAmount)) | |
181 | + | then throw("No hay yBitCO2 en su balance") | |
182 | + | else WriteSet([DataEntry(supplier, newAmount)]) | |
183 | + | } | |
184 | + | } | |
185 | + | ||
186 | + | ||
187 | + | ||
188 | + | @Callable(i) | |
189 | + | func purchaseGTS (item,itemName,userName,userDocument,totalAmount) = { | |
190 | + | let pmt = extract(i.payment) | |
191 | + | if (isDefined(pmt.assetId)) | |
192 | + | then throw("El Precio en waves.") | |
193 | + | else { | |
194 | + | let supplier = match getString(this, getKeyItemSupplier(item)) { | |
195 | + | case a: String => | |
196 | + | a | |
197 | + | case _ => | |
198 | + | NONE | |
199 | + | } | |
200 | + | let issuerAdd = match getString(this, getKeyIssuer(item)) { | |
201 | + | case a: String => | |
202 | + | a | |
203 | + | case _ => | |
204 | + | issuer | |
205 | + | } | |
206 | + | let projAdd = match getString(this, getKeyProject(item)) { | |
207 | + | case a: String => | |
208 | + | a | |
209 | + | case _ => | |
210 | + | pAdd | |
211 | + | } | |
212 | + | let nodoAdd = match getString(this, getKeyNodo(item)) { | |
213 | + | case a: String => | |
214 | + | a | |
215 | + | case _ => | |
216 | + | eAdd | |
217 | + | } | |
218 | + | let preTokenQty = match getInteger(this, getKeyBalanceQtySupplier(item)) { | |
219 | + | case a: Int => | |
220 | + | a | |
221 | + | case _ => | |
222 | + | SecondFaseQty | |
223 | + | } | |
224 | + | let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) { | |
225 | + | case a: Int => | |
226 | + | a | |
227 | + | case _ => | |
228 | + | 0 | |
229 | + | } | |
230 | + | let balanceIssuer = match getInteger(this, getKeyBalanceIssuer(supplier)) { | |
231 | + | case a: Int => | |
232 | + | a | |
233 | + | case _ => | |
234 | + | FirstFaseQty | |
235 | + | } | |
236 | + | let userAddress = toBase58String(i.caller.bytes) | |
237 | + | let subTotal = totalAmount | |
238 | + | let pIw = ((pIP * subTotal) / relacdcto) | |
239 | + | let eIw = ((eIP * subTotal) / relacdcto) | |
240 | + | let bco2menosdcto = (((100 - bitdscto) * (eurou * bco2e)) / 10000) | |
241 | + | let subTotalb = (((totalAmount * usdnw) / 100) / bco2menosdcto) | |
242 | + | let uIb = ((uBP * subTotalb) / relacdcto) | |
243 | + | let sIb = ((sBP * subTotalb) / relacdcto) | |
244 | + | let eIb = ((eBP * subTotalb) / relacdcto) | |
245 | + | let BalanceTienda = (balanceSupplier + pmt.amount) | |
246 | + | let BalanceIssuer = (balanceIssuer - pmt.amount) | |
247 | + | if ((totalAmount > pmt.amount)) | |
248 | + | then throw("Payment Amount can't be less than item Purchase Order") | |
249 | + | else if ((pmt.amount > totalAmount)) | |
250 | + | then throw("Payment Amount can't be higher than item Purchase Order") | |
251 | + | 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), getStrByKey(getKeyIssuer(item))), DataEntry(getKeyProject(item), getStrByKey(getKeyProject(item))), DataEntry(getKeyNodo(item), getStrByKey(getKeyNodo(item))), DataEntry("Tienda", supplier), DataEntry("usdn", usdnw), DataEntry("eurou", eurou), DataEntry("Apoyo Ecológico, wvls", totalAmount), DataEntry("1 Bit-CO2 Precio Nominal, euros x10e-4", bco2e), DataEntry("1 Bit-CO2 Precio con Descto, usd x10e-4", bco2menosdcto), DataEntry("SubTotal a distribuir, bit-co2 x10e-4", subTotalb), DataEntry(getKeyPI(item), pIw), DataEntry(getKeyNIw(item), eIw), DataEntry(getKeyUI(item), uIb), DataEntry(getKeySI(item), sIb), DataEntry(getKeyNIb(item), eIb), DataEntry(("Order_Status:_" + userAddress), "Transacción Confirmada!"), DataEntry("PreTokenQty", preTokenQty), DataEntry("balanceSupplier", balanceSupplier), DataEntry("balanceTienda", BalanceTienda), DataEntry("balanceIssuer", BalanceIssuer), DataEntry("startQty", startQty), DataEntry("FirstFaseQty", FirstFaseQty), DataEntry("SecondFaseQty", SecondFaseQty), DataEntry(getKeySaldoTokenQtyStartEtapa(item), getNumberByKey(getKeySaldoTokenQtyStartEtapa(item))), DataEntry(getKeySaldoTokenQtyStartEtapa(item), getNumberByKey(getKeySaldoTokenQtyStartEtapa(item))), 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)])) | |
252 | + | } | |
253 | + | } | |
254 | + | ||
255 | + | ||
256 | + | ||
257 | + | @Callable(i) | |
258 | + | func withdraw (item,amount) = { | |
259 | + | let userAddress = toBase58String(i.caller.bytes) | |
260 | + | let supplier = match getString(this, getKeyItemSupplier(item)) { | |
261 | + | case a: String => | |
262 | + | a | |
263 | + | case _ => | |
264 | + | NONE | |
265 | + | } | |
266 | + | let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) { | |
267 | + | case a: Int => | |
268 | + | a | |
269 | + | case _ => | |
270 | + | startQty | |
271 | + | } | |
272 | + | let newAmount = (preIcoQty - amount) | |
273 | + | if ((0 > amount)) | |
274 | + | then throw("El balance de retiro no puede ser negativo!") | |
275 | + | else if ((0 >= newAmount)) | |
276 | + | then throw("Ooppss.. Insuficiente balance!") | |
277 | + | else ScriptResult(WriteSet([DataEntry(item, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, yBitCO2)])) | |
278 | + | } | |
279 | + | ||
280 | + | ||
281 | + | @Verifier(tx) | |
282 | + | func verify () = match tx { | |
283 | + | case t: SetScriptTransaction => | |
284 | + | sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey) | |
285 | + | case d: ReissueTransaction|DataTransaction => | |
286 | + | true | |
287 | + | case tx: TransferTransaction => | |
288 | + | true | |
289 | + | case _ => | |
290 | + | false | |
291 | + | } | |
292 | + |
github/deemru/w8io/026f985 34.51 ms ◑