tx · Bhvz9zbw1eG3b87XdG2LqkFcQLbe12D2ZpcWpn4rJ7HC

3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q:  -0.01400000 Waves

2020.07.31 22:41 [1112245] smart account 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q > SELF 0.00000000 Waves

{ "type": 13, "id": "Bhvz9zbw1eG3b87XdG2LqkFcQLbe12D2ZpcWpn4rJ7HC", "fee": 1400000, "feeAssetId": null, "timestamp": 1596224568806, "version": 1, "sender": "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q", "senderPublicKey": "6tctCnkRasXYuZWRpzZz9ogLri6aifJ19LTtx9uFQv67", "proofs": [ "bMxzWvgXAiFxjDBJJdpb5Kf8krw1JnQ3oDHuwSWpjZG8vqwq2EqBJHfCQC9cBWABurm9n9MTUnPRqJXVetZh5zk" ], "script": "base64:AAIDAAAAAAAAABAIARIDCgEBEgcKBQgICAEBAAAAKgAAAAAHeEJpdENPMgEAAAAgIARkpqoDew1vpqr6lyVYs5aJelMM/++6xmiHbINU3I0AAAAACHN0YXJ0UXR5AAAAAAAAADqYAAAAAAhub21QcmljZQAAAAAAAAAACgAAAAADd3ZzAAAAAAAF9eEAAAAAAAROT05FAgAAAARub25lAAAAAAtPd25lclB1YktleQEAAAAgV4Og8/YsMblujmTdzmwpOjQnMNOO3FG4NMv2JsnE5RQAAAAABmlzc3VlcgkBAAAAB0FkZHJlc3MAAAABAQAAABoBVK+FXJ+MAQe/AqC2hmtlg7ih3z/R3ffDMgAAAAADaWd2AAAAAAAAAAASAAAAABNjdXJyZW50UHJpY2UxQml0Q08yAAAAAAA0c7wAAAAAAA5wcm9qZWN0QWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVLg5QT3JJvkQj60ya4PWm3X6myxGoCeeowEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAADbnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABQAAAANudW0BAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAApnZXRLZXlJdGVtAAAAAgAAAAhzdXBwbGllcgAAAAV0aXRsZQkAASwAAAACAgAAABtSZXNlcnZhIEZvcmVzdGFsIEFtYXrDs25pY2EJAAJYAAAAAQkAAfcAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAIc3VwcGxpZXIFAAAABXRpdGxlAQAAABFnZXRLZXlQcm9waWV0YXJpbwAAAAEAAAAIc3VwcGxpZXIJAAEsAAAAAgUAAAAIc3VwcGxpZXICAAAAI0NvbXVuaWRhZCBBY2h1YXIgS2FwYXdpIGRlbCBFY3VhZG9yAQAAABNnZXRWYWx1ZVByb3BpZXRhcmlvAAAAAQAAAAhzdXBwbGllcgkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEWdldEtleVByb3BpZXRhcmlvAAAAAQUAAAAIc3VwcGxpZXIBAAAAEWdldEtleVByb2plY3RDb2RlAAAAAQAAAAtwcm9qZWN0Q29kZQIAAAAbMDEtRUMvU0dUIC0gQUNIVUFSS0FQQVdJLTAxAQAAABFnZXRLZXlQcm9qZWN0TmFtZQAAAAEAAAALcHJvamVjdE5hbWUCAAAAIFJlc2VydmEgQW1hesOzbmljYSBBY2h1YXItS2FwYXdpAQAAABNnZXRWYWx1ZVByb2plY3ROYW1lAAAAAQAAAAtwcm9qZWN0TmFtZQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEWdldEtleVByb2plY3ROYW1lAAAAAQUAAAALcHJvamVjdE5hbWUBAAAAEmdldEtleVByb2plY3RFdGFwYQAAAAEAAAAOcHJvamVjdEFkZHJlc3MCAAAAHUFjaHVhckthcGF3aSwgSSBFdGFwYTogUHJlSUNPAQAAABRnZXRWYWx1ZVByb2plY3RFdGFwYQAAAAEAAAAOcHJvamVjdEFkZHJlc3MJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlQcm9qZWN0RXRhcGEAAAABBQAAAA5wcm9qZWN0QWRkcmVzcwEAAAAUZ2V0S2V5UHJvamVjdENvdW50cnkAAAABAAAABGl0ZW0CAAAAFlJlcMO6YmxpY2EgZGVsIEVjdWFkb3IBAAAAEGdldEtleVByb2plY3REZXYAAAABAAAABGl0ZW0CAAAAHEZ1bmRhY2nDs24gRWNvbMOzZ2ljYSAnTkFTRScBAAAAE2dldEtleVRva2VuU3RhcnRRdHkAAAABAAAABGl0ZW0CAAAAFDE1MDAwIHRva2VucyBCaXQtQ08yAQAAABNnZXRLZXlOb21Ub2tlblByaWNlAAAAAQAAAARpdGVtAgAAAAsxMC4wMCBFdXJvcwEAAAASZ2V0S2V5TWF4RGVzY3VlbnRvAAAAAQAAAARpdGVtAgAAACwxMi4wMCUgZGVsIFByZWNpbyBOb21pbmFsIGRlIDEgdG9rZW4gQml0LUNPMgEAAAATZ2V0S2V5TWluVG9rZW5QcmljZQAAAAEAAAAEaXRlbQIAAAAeOC44MCBFdXJvcyBwb3IgMSB0b2tlbiBCaXQtQ08yAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQIAAAAKT3JkZXJf4oSWOgEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAABHVzZXIFAAAABGl0ZW0BAAAADmdldEtleVVzZXJOYW1lAAAAAQAAAARpdGVtAgAAABNOb21icmUgZGVsIFVzdWFyaW86AQAAABBnZXRWYWx1ZVVzZXJOYW1lAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAOZ2V0S2V5VXNlck5hbWUAAAABBQAAAARpdGVtAQAAABJnZXRLZXlVc2VyRG9jdW1lbnQAAAABAAAABGl0ZW0CAAAAOeKEliBkZSBEb2N1bWVudG8gTmFjaW9uYWwgZGUgSWRlbnRpZGFkIC8gRE5JIGRlbCBVc3VhcmlvOgEAAAAUZ2V0VmFsdWVVc2VyRG9jdW1lbnQAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlVc2VyRG9jdW1lbnQAAAABBQAAAARpdGVtAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEAAAAEaXRlbQIAAAAgUGHDrXMgZGUgUmVzaWRlbmNpYSBkZWwgVXN1YXJpbzoBAAAAE2dldFZhbHVlVXNlckNvdW50cnkAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEFAAAABGl0ZW0BAAAAFmdldEtleUl0ZW1EaXNjb3VudFVzZXIAAAABAAAABGl0ZW0CAAAAJERlc2N1ZW50byBlbGVqaWRvIHBvciBlbCBVc3VhcmlvLCAlOgEAAAAYZ2V0VmFsdWVJdGVtRGlzY291bnRVc2VyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAWZ2V0S2V5SXRlbURpc2NvdW50VXNlcgAAAAEFAAAABGl0ZW0BAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0CAAAAJU9yZGVuIGRlIENvbXByYSwgY2FudGlkYWQgc29saWNpdGFkYToBAAAAGGdldFZhbHVlSXRlbVVzZXJPcmRlclF0eQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABBQAAAARpdGVtAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEAAAAEaXRlbQIAAAAuVG9rZW5zIE9mZXJ0YWRvcyBlbiBsYSBwcmVzZW50ZSBldGFwYSAvIFNhbGRvOgEAAAAfZ2V0VmFsdWVTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAHWdldEtleVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQUAAAAEaXRlbQEAAAAfZ2V0S2V5QmFsYW5jZVN1cHBsaWVyU2VsbEluY29tZQAAAAEAAAAIc3VwcGxpZXICAAAAKEluZ3Jlc29zIHBvciBWZW50YSBEaXJlY3RhIC8gQmxvY2tDaGFpbjoBAAAAIWdldFZhbHVlQmFsYW5jZVN1cHBsaWVyU2VsbEluY29tZQAAAAEAAAAIc3VwcGxpZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAB9nZXRLZXlCYWxhbmNlU3VwcGxpZXJTZWxsSW5jb21lAAAAAQUAAAAIc3VwcGxpZXIAAAACAAAAAWkBAAAAB2RlcG9zaXQAAAABAAAABmFtb3VudAQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAB3hCaXRDTzIJAAACAAAAAQIAAAAuVXNlIGNCaXRDTzIgdG9rZW5zIG9ubHkgZm9yIHRoZSB3YWxsZXQgZGVwb3NpdAQAAAAIc3VwcGxpZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANY3Vy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Q0hVQVJLQVBBV0ktMDEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAB0VtaXNvcjoCAAAAF0NvbXVuaWRhZCBBY2h1YXIgS2FwYXdpCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABpEZXNhcnJvbGxhZG9yL1Jlc3BvbnNhYmxlOgIAAAAcRnVuZGFjacOzbiBFY29sw7NnaWNhICdOQVNFJwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAdRXRhcGFzIGRlbCBQcm95ZWN0bywgUHJlLUlDTzoCAAAACDIgRXRhcGFzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAACNFdGFwYXMgZGVsIFByb3llY3RvLCBlbiBFamVjdWNpw7NuOgIAAAAaQSBEZWZpbmlyLCBGdW5kYWNpw7NuIFJFREQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAOENhbnRpZGFkIFRvdGFsIGRlIFRva2VucyBhIEVtaXRpciwgSSB5IElJIEV0YXBhIFByZS1JQ086AgAAABUzMDU2OTMgdG9rZW5zIEJpdC1DTzIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAIFByZWNpbyBOb21pbmFsLCAxIHRva2VuIEJpdC1DTzI6AgAAAAsxMC4wMCBFdXJvcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAkTcOheGltbyBEZXNjdWVudG8gb2ZyZWNpZG8sIEkgRXRhcGE6AgAAAAcxMi4wMCAlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0JAABkAAAAAgkBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0AAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAJlRvdGFsIFRva2VucyBFbWl0aWRvcywgSSBFdGFwYSBQcmUtSUNPBQAAAAhzdGFydFF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADmdldEtleVVzZXJOYW1lAAAAAQUAAAAEaXRlbQUAAAAIdXNlck5hbWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEFAAAABGl0ZW0FAAAAC3VzZXJDb3VudHJ5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAWZ2V0S2V5SXRlbURpc2NvdW50VXNlcgAAAAEFAAAABGl0ZW0FAAAADHVzZXJEaXNjb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABBQAAAARpdGVtBQAAAAhvcmRlclF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAYdG9rZW5QcmljZS9TdXBwbGllciwgd3ZzCQAAaAAAAAIFAAAACG5vbVByaWNlBQAAAAN3dnMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAFHRva2VuUHJpY2UvVXNlciwgd3ZzBQAAAA9idXllclRva2VuUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAGGludmVzdGVkQW1vdW50L1VzZXIsIHd2cwUAAAALdG90YWxBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAFXB1cmNoYXNlT3JkZXIvU3RhdHVzOgIAAAAawqFBZHF1aXNpY2nDs24gQ29uZmlybWFkYSEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0JAABlAAAAAgUAAAAJcHJlSWNvUXR5BQAAAAhvcmRlclF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAH2dldEtleUJhbGFuY2VTdXBwbGllclNlbGxJbmNvbWUAAAABBQAAAAhzdXBwbGllcgkAAGQAAAACBQAAAA9iYWxhbmNlU3VwcGxpZXIIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAACJDdWVudGEgZGVsIFByb3llY3RvIGVuIEJsb2NrQ2hhaW46BQAAAAhzdXBwbGllcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAiQ3VlbnRhIGRlbCBQcm95ZWN0byBlbiBCbG9ja0NoYWluOgEAAAAaAVS4OUE9ySb5EI+tMmuD1pt1+pssRqAnnqMFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAAAhvcmRlclF0eQUAAAAHeEJpdENPMgUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAAF0BQAAAAckbWF0Y2gwCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAALT3duZXJQdWJLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0RhdGFUcmFuc2FjdGlvbgQAAAABZAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwBAAAAAlyZWNpcGllbnQJAAJYAAAAAQgJAAQkAAAAAQgFAAAAAnR4AAAACXJlY2lwaWVudAAAAAVieXRlcwMJAAAAAAAAAggFAAAAAnR4AAAABnNlbmRlcgUAAAAGaXNzdWVyBgkAAAIAAAABAgAAACBZb3UgY2FuJ3QgdHJhbnNmZXJyZWQgdGhpcyB0b2tlbgfMYUm+", "chainId": 84, "height": 1112245, "spentComplexity": 0 } View: original | compacted Prev: none Next: 8rEiqyXLbKBGuXdk8z8iDDEbkq7FVWbKR4e1GGGVNPuh Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let xBitCO2 = base58'39yw38hm342hiK43SqELTaZRkTWJoBc22XpxmsSiBrsN'
5+
6+let startQty = 15000
7+
8+let nomPrice = 10
9+
10+let wvs = 100000000
11+
12+let NONE = "none"
13+
14+let OwnerPubKey = base58'6tctCnkRasXYuZWRpzZz9ogLri6aifJ19LTtx9uFQv67'
15+
16+let issuer = Address(base58'3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q')
17+
18+let igv = 18
19+
20+let currentPrice1BitCO2 = 880000000
21+
22+let projectAddress = Address(base58'3N6iAhMV5VZ31hJSJT4e3DoaBoiHCPxbZNa')
23+
24+func getNumberByKey (key) = {
25+ let num = match getInteger(this, key) {
26+ case a: Int =>
27+ a
28+ case _ =>
29+ 0
30+ }
31+ num
32+ }
33+
34+
35+func getStrByKey (key) = {
36+ let str = match getString(this, key) {
37+ case a: String =>
38+ a
39+ case _ =>
40+ NONE
41+ }
42+ str
43+ }
44+
45+
46+func getKeyItem (supplier,title) = ("Reserva Forestal Amazónica" + toBase58String(sha256(toBytes((supplier + title)))))
47+
48+
49+func getKeyPropietario (supplier) = (supplier + "Comunidad Achuar Kapawi del Ecuador")
50+
51+
52+func getValuePropietario (supplier) = getStrByKey(getKeyPropietario(supplier))
53+
54+
55+func getKeyProjectCode (projectCode) = "01-EC/SGT - ACHUARKAPAWI-01"
56+
57+
58+func getKeyProjectName (projectName) = "Reserva Amazónica Achuar-Kapawi"
59+
60+
61+func getValueProjectName (projectName) = getStrByKey(getKeyProjectName(projectName))
62+
63+
64+func getKeyProjectEtapa (projectAddress) = "AchuarKapawi, I Etapa: PreICO"
65+
66+
67+func getValueProjectEtapa (projectAddress) = getStrByKey(getKeyProjectEtapa(projectAddress))
68+
69+
70+func getKeyProjectCountry (item) = "República del Ecuador"
71+
72+
73+func getKeyProjectDev (item) = "Fundación Ecológica 'NASE'"
74+
75+
76+func getKeyTokenStartQty (item) = "15000 tokens Bit-CO2"
77+
78+
79+func getKeyNomTokenPrice (item) = "10.00 Euros"
80+
81+
82+func getKeyMaxDescuento (item) = "12.00% del Precio Nominal de 1 token Bit-CO2"
83+
84+
85+func getKeyMinTokenPrice (item) = "8.80 Euros por 1 token Bit-CO2"
86+
87+
88+func getKeyUserItemCounter (user,item) = "Order_№:"
89+
90+
91+func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
92+
93+
94+func getKeyUserName (item) = "Nombre del Usuario:"
95+
96+
97+func getValueUserName (item) = getStrByKey(getKeyUserName(item))
98+
99+
100+func getKeyUserDocument (item) = "№ de Documento Nacional de Identidad / DNI del Usuario:"
101+
102+
103+func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item))
104+
105+
106+func getKeyUserCountry (item) = "País de Residencia del Usuario:"
107+
108+
109+func getValueUserCountry (item) = getStrByKey(getKeyUserCountry(item))
110+
111+
112+func getKeyItemDiscountUser (item) = "Descuento elejido por el Usuario, %:"
113+
114+
115+func getValueItemDiscountUser (item) = getNumberByKey(getKeyItemDiscountUser(item))
116+
117+
118+func getKeyItemUserOrderQty (item) = "Orden de Compra, cantidad solicitada:"
119+
120+
121+func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
122+
123+
124+func getKeySaldoTokenQtyStartEtapa (item) = "Tokens Ofertados en la presente etapa / Saldo:"
125+
126+
127+func getValueSaldoTokenQtyStartEtapa (item) = getNumberByKey(getKeySaldoTokenQtyStartEtapa(item))
128+
129+
130+func getKeyBalanceSupplierSellIncome (supplier) = "Ingresos por Venta Directa / BlockChain:"
131+
132+
133+func getValueBalanceSupplierSellIncome (supplier) = getNumberByKey(getKeyBalanceSupplierSellIncome(supplier))
134+
135+
136+@Callable(i)
137+func deposit (amount) = {
138+ let pmt = extract(i.payment)
139+ if ((pmt.assetId != xBitCO2))
140+ then throw("Use cBitCO2 tokens only for the wallet deposit")
141+ else {
142+ let supplier = toBase58String(i.caller.bytes)
143+ let currentAmount = match getInteger(this, supplier) {
144+ case a: Int =>
145+ a
146+ case _ =>
147+ startQty
148+ }
149+ let newAmount = (currentAmount + pmt.amount)
150+ WriteSet([DataEntry(supplier, newAmount)])
151+ }
152+ }
153+
154+
155+
156+@Callable(i)
157+func purchase (item,userName,userCountry,userDiscount,orderQty) = {
158+ let pmt = extract(i.payment)
159+ if (isDefined(pmt.assetId))
160+ then throw("you can adquire cBitCO2 only by Waves tokens")
161+ else {
162+ let supplier = match getString(this, getKeyPropietario(item)) {
163+ case a: String =>
164+ a
165+ case _ =>
166+ NONE
167+ }
168+ let preIcoQty = match getInteger(this, getKeySaldoTokenQtyStartEtapa(item)) {
169+ case a: Int =>
170+ a
171+ case _ =>
172+ startQty
173+ }
174+ let balanceSupplier = match getInteger(this, getKeyBalanceSupplierSellIncome(supplier)) {
175+ case a: Int =>
176+ a
177+ case _ =>
178+ 0
179+ }
180+ let userAddress = toBase58String(i.caller.bytes)
181+ let buyerTokenPrice = ((((100 - userDiscount) * nomPrice) * wvs) / 100)
182+ let totalAmount = (orderQty * buyerTokenPrice)
183+ if ((totalAmount > pmt.amount))
184+ then throw("Payment Amount can't be less than item Purchase Order")
185+ else if ((pmt.amount > totalAmount))
186+ then throw("Payment Amount can't be higher than item Purchase Order")
187+ else ScriptResult(WriteSet([DataEntry("Tipo de Proyecto:", "Reserva Forestal Amazónica"), DataEntry("Categoría:", "Emisión de CO2 Evitada"), DataEntry("País/Ubicación:", "República del Ecuador"), DataEntry("Nombre del Proyecto:", "Reserva Amazónica Achuar-Kapawi"), DataEntry("Código:", "01-EC/SGT - ACHUARKAPAWI-01"), DataEntry("Emisor:", "Comunidad Achuar Kapawi"), DataEntry("Desarrollador/Responsable:", "Fundación Ecológica 'NASE'"), DataEntry("Etapas del Proyecto, Pre-ICO:", "2 Etapas"), DataEntry("Etapas del Proyecto, en Ejecución:", "A Definir, Fundación REDD"), DataEntry("Cantidad Total de Tokens a Emitir, I y II Etapa Pre-ICO:", "305693 tokens Bit-CO2"), DataEntry("Precio Nominal, 1 token Bit-CO2:", "10.00 Euros"), DataEntry("Máximo Descuento ofrecido, I Etapa:", "12.00 %"), DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry("Total Tokens Emitidos, I Etapa Pre-ICO", startQty), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemDiscountUser(item), userDiscount), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry("tokenPrice/Supplier, wvs", (nomPrice * wvs)), DataEntry("tokenPrice/User, wvs", buyerTokenPrice), DataEntry("investedAmount/User, wvs", totalAmount), DataEntry("purchaseOrder/Status:", "¡Adquisición Confirmada!"), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (preIcoQty - orderQty)), DataEntry(getKeyBalanceSupplierSellIncome(supplier), (balanceSupplier + pmt.amount)), DataEntry("Cuenta del Proyecto en BlockChain:", supplier), DataEntry("Cuenta del Proyecto en BlockChain:", base58'3N6iAhMV5VZ31hJSJT4e3DoaBoiHCPxbZNa')]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
188+ }
189+ }
190+
191+
192+@Verifier(tx)
193+func verify () = match tx {
194+ case t: SetScriptTransaction =>
195+ sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
196+ case d: DataTransaction =>
197+ true
198+ case tx: TransferTransaction =>
199+ let recipient = toBase58String(addressFromRecipient(tx.recipient).bytes)
200+ if ((tx.sender == issuer))
201+ then true
202+ else throw("You can't transferred this token")
203+ case _ =>
204+ false
205+}
206+

github/deemru/w8io/026f985 
22.64 ms