tx · HQvEdVY6Qn5x6HERgesKCpDABeeQ7Gka47kRGwg86kt

3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q:  -0.01400000 Waves

2020.08.03 16:15 [1116224] smart account 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q > SELF 0.00000000 Waves

{ "type": 13, "id": "HQvEdVY6Qn5x6HERgesKCpDABeeQ7Gka47kRGwg86kt", "fee": 1400000, "feeAssetId": null, "timestamp": 1596460573595, "version": 1, "sender": "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q", "senderPublicKey": "6tctCnkRasXYuZWRpzZz9ogLri6aifJ19LTtx9uFQv67", "proofs": [ "3NnDMXhf1a92CzZYDxuVW5ZrHJnVD45zXKn2wt6YXUHngfEeTVrc8H8tteJj1kmHbdgdxHQPdgWhhpmQ8arT45cQ" ], "script": "base64:AAIDAAAAAAAAADMIARIECgIICBIHCgUICAgBARIICgYICAgBAQgSBgoECAgIARIICgYICAgBAQgSBAoCCAEAAABEAAAAAAd4Qml0Q08yAQAAACAgBGSmqgN7DW+mqvqXJVizlol6Uwz/77rGaIdsg1TcjQAAAAAIc3RhcnRRdHkAAAAAAAAEqh0AAAAACG5vbVByaWNlAAAAAAAAAAABAAAAAAN3dnMAAAAAAAX14QAAAAAAEHN1cHBsaWVyRGlzY291bnQAAAAAAAAAAAwAAAAABE5PTkUCAAAABG5vbmUAAAAAC093bmVyUHViS2V5AQAAACBXg6Dz9iwxuW6OZN3ObCk6NCcw047cUbg0y/YmycTlFAAAAAAGaXNzdWVyCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUS0gVj7khTyyW8drcBieKY28h0dbnPZfaAAAAAARlQWRkCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUTBaoO/bGBDOBrm064MWNCsZzgwdlxMLyAAAAAARwQWRkCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUr4Vcn4wBB78CoLaGa2WDuKHfP9Hd98MyAAAAAANpZ3YAAAAAAAAAABIAAAAAA2NQQgAAAAAAAAAAWAAAAAADdUlQAAAAAAAAAAAFAAAAAANwSVAAAAAAAAAAAAoAAAAAA3NJUAAAAAAAAAAAAQAAAAADZUlQAAAAAAAAAAABAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABGl0ZW0JAAEsAAAAAgIAAAAbUmVzZXJ2YSBGb3Jlc3RhbCBBbWF6w7NuaWNhCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAARpdGVtAQAAABVnZXRLZXlQcm9qZWN0Q2F0ZWdvcnkAAAABAAAABGl0ZW0CAAAAC0NhdGVnb3LDrWE6AQAAABdnZXRWYWx1ZVByb2plY3RDYXRlZ29yeQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAFWdldEtleVByb2plY3RDYXRlZ29yeQAAAAEFAAAABGl0ZW0BAAAAEWdldEtleVByb2plY3RUeXBlAAAAAQAAAARpdGVtAgAAABFUaXBvIGRlIFByb3llY3RvOgEAAAATZ2V0VmFsdWVQcm9qZWN0VHlwZQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEWdldEtleVByb2plY3RUeXBlAAAAAQUAAAAEaXRlbQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkAASwAAAACBQAAAAhzdXBwbGllcgIAAAAjQ29tdW5pZGFkIEFjaHVhciBLYXBhd2kgZGVsIEVjdWFkb3IBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyAQAAABFnZXRLZXlQcm9qZWN0Q29kZQAAAAEAAAAEaXRlbQIAAAAZQ8OzZGlnbyBlbiBlbCBFY29zaXN0ZW1hOgEAAAATZ2V0VmFsdWVQcm9qZWN0Q29kZQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEWdldEtleVByb2plY3RDb2RlAAAAAQUAAAAEaXRlbQEAAAARZ2V0S2V5UHJvamVjdE5hbWUAAAABAAAABGl0ZW0CAAAAFE5vbWJyZSBkZWwgUHJveWVjdG86AQAAABNnZXRWYWx1ZVByb2plY3ROYW1lAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAARZ2V0S2V5UHJvamVjdE5hbWUAAAABBQAAAARpdGVtAQAAABJnZXRLZXlQcm9qZWN0RXRhcGEAAAABAAAADnByb2plY3RBZGRyZXNzAgAAAB1BY2h1YXJLYXBhd2ksIEkgRXRhcGE6IFByZUlDTwEAAAAUZ2V0VmFsdWVQcm9qZWN0RXRhcGEAAAABAAAADnByb2plY3RBZGRyZXNzCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5UHJvamVjdEV0YXBhAAAAAQUAAAAOcHJvamVjdEFkZHJlc3MBAAAAFGdldEtleVByb2plY3RDb3VudHJ5AAAAAQAAAARpdGVtAgAAABNQYcOtcyAvIFViaWNhY2nDs246AQAAABZnZXRWYWx1ZVByb2plY3RDb3VudHJ5AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAUZ2V0S2V5UHJvamVjdENvdW50cnkAAAABBQAAAARpdGVtAQAAABBnZXRLZXlQcm9qZWN0RGV2AAAAAQAAAAhzdXBwbGllcgIAAAAcRGVzYXJyb2xsYWRvciAvIFJlc3BvbnNhYmxlOgEAAAASZ2V0VmFsdWVQcm9qZWN0RGV2AAAAAQAAAAhzdXBwbGllcgkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleVByb2plY3REZXYAAAABBQAAAAhzdXBwbGllcgEAAAATZ2V0S2V5VG9rZW5TdGFydFF0eQAAAAEAAAAEaXRlbQIAAAAUMTU2OTMgdG9rZW5zIEJpdC1DTzIBAAAAE2dldEtleU5vbVRva2VuUHJpY2UAAAABAAAABGl0ZW0CAAAACzEwLjAwIEV1cm9zAQAAABdnZXRLZXlJdGVtUHJpY2VTdXBwbGllcgAAAAEAAAAEaXRlbQIAAAAGX3dhdmVzAQAAABlnZXRWYWx1ZUl0ZW1QcmljZVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAXZ2V0S2V5SXRlbVByaWNlU3VwcGxpZXIAAAABBQAAAARpdGVtAQAAABJnZXRLZXlNYXhEZXNjdWVudG8AAAABAAAABGl0ZW0CAAAALDEyLjAwJSBkZWwgUHJlY2lvIE5vbWluYWwgZGUgMSB0b2tlbiBCaXQtQ08yAQAAABNnZXRLZXlNaW5Ub2tlblByaWNlAAAAAQAAAARpdGVtAgAAAB44LjgwIEV1cm9zIHBvciAxIHRva2VuIEJpdC1DTzIBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtAgAAAApPcmRlcl/ihJY6AQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAAOZ2V0S2V5VXNlck5hbWUAAAABAAAABGl0ZW0CAAAAE05vbWJyZSBkZWwgVXN1YXJpbzoBAAAAEGdldFZhbHVlVXNlck5hbWUAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAA5nZXRLZXlVc2VyTmFtZQAAAAEFAAAABGl0ZW0BAAAAEmdldEtleVVzZXJEb2N1bWVudAAAAAEAAAAEaXRlbQIAAAA54oSWIGRlIERvY3VtZW50byBOYWNpb25hbCBkZSBJZGVudGlkYWQgLyBETkkgZGVsIFVzdWFyaW86AQAAABRnZXRWYWx1ZVVzZXJEb2N1bWVudAAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleVVzZXJEb2N1bWVudAAAAAEFAAAABGl0ZW0BAAAAEWdldEtleVVzZXJDb3VudHJ5AAAAAQAAAARpdGVtAgAAABJQYcOtcyBkZWwgVXN1YXJpbzoBAAAAE2dldFZhbHVlVXNlckNvdW50cnkAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEFAAAABGl0ZW0BAAAAFmdldEtleUl0ZW1EaXNjb3VudFVzZXIAAAABAAAABGl0ZW0CAAAAJERlc2N1ZW50byBlbGVqaWRvIHBvciBlbCBVc3VhcmlvLCAlOgEAAAAYZ2V0VmFsdWVJdGVtRGlzY291bnRVc2VyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAWZ2V0S2V5SXRlbURpc2NvdW50VXNlcgAAAAEFAAAABGl0ZW0BAAAAGmdldEtleUl0ZW1EaXNjb3VudFN1cHBsaWVyAAAAAQAAAARpdGVtAgAAABhTdXBwbGllckRpc2NvdW50LCBtYXhfJToBAAAAHGdldFZhbHVlSXRlbURpc2NvdW50U3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABpnZXRLZXlJdGVtRGlzY291bnRTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0CAAAAJU9yZGVuIGRlIENvbXByYSwgY2FudGlkYWQgc29saWNpdGFkYToBAAAAGGdldFZhbHVlSXRlbVVzZXJPcmRlclF0eQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABBQAAAARpdGVtAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEAAAAEaXRlbQIAAAAuVG9rZW5zIE9mZXJ0YWRvcyBlbiBsYSBwcmVzZW50ZSBldGFwYSAvIFNhbGRvOgEAAAAfZ2V0VmFsdWVTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAHWdldEtleVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQUAAAAEaXRlbQEAAAAYZ2V0S2V5QmFsYW5jZVF0eVN1cHBsaWVyAAAAAQAAAARpdGVtAgAAABZCYWxhbmNlL1NhbGRvLCB0b2tlbnM6AQAAABpnZXRWYWx1ZUJhbGFuY2VRdHlTdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEAAAAIc3VwcGxpZXICAAAAKEluZ3Jlc29zIHBvciBWZW50YSBEaXJlY3RhIC8gQmxvY2tDaGFpbjoBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkBAAAADmdl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dGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlVc2VyTmFtZQAAAAEFAAAABGl0ZW0FAAAACHVzZXJOYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0S2V5VXNlckNvdW50cnkAAAABBQAAAARpdGVtBQAAAAt1c2VyQ291bnRyeQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFmdldEtleUl0ZW1EaXNjb3VudFVzZXIAAAABBQAAAARpdGVtBQAAAAx1c2VyRGlzY291bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQUAAAAEaXRlbQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAGHRva2VuUHJpY2UvU3VwcGxpZXIsIHd2cwkAAGgAAAACBQAAAAhub21QcmljZQUAAAADd3ZzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABR0b2tlblByaWNlL1VzZXIsIHd2cwUAAAARY3VycmVudFRva2VuUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAGGludmVzdGVkQW1vdW50L1VzZXIsIHd2cwUAAAALdG90YWxBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAFXB1cmNoYXNlT3JkZXIvU3RhdHVzOgIAAAAawqFBZHF1aXNpY2nDs24gQ29uZmlybWFkYSEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtCQAAZQAAAAIFAAAACXByZUljb1F0eQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0JAABlAAAAAgUAAAAJcHJlSWNvUXR5BQAAAAhvcmRlclF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyCQAAZAAAAAIFAAAAD2JhbGFuY2VTdXBwbGllcggFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAApnZXRLZXlJdGVtAAAAAgUAAAAIc3VwcGxpZXIFAAAABGl0ZW0CAAAAIzNONXY5bmRia0dTV3kxU2ZlSlN6OTR0WVU4cVZOVFVKVjJxCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAIc3VwcGxpZXIJAAEsAAAAAgkBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQUAAAAIc3VwcGxpZXICAAAAB1BydWViYTIFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAAAhvcmRlclF0eQUAAAAHeEJpdENPMgUAAAADbmlsAAAAAWkBAAAAEEFkZFN1cHBsaWVyVG9rZW4AAAAGAAAABXRpdGxlAAAABG5hbWUAAAAHY291bnRyeQAAAAlwcmVJY29RdHkAAAAQc3VwcGxpZXJEaXNjb3VudAAAAAxzdXBwbGllckRhdGEEAAAACHN1cHBsaWVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABGl0ZW0JAQAAAApnZXRLZXlJdGVtAAAAAgUAAAAIc3VwcGxpZXIFAAAABXRpdGxlAwkAAGcAAAACAAAAAAAAAAAABQAAAAlwcmVJY29RdHkJAAACAAAAAQIAAAAfU29ycnksIGluc3VmZmljaWVudCB0b2tlbiBvZmZlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAApTdXBwbGllcjpfCQEAAAAQZ2V0S2V5UHJvamVjdERldgAAAAEFAAAABGl0ZW0FAAAACHN1cHBsaWVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAB1RpdGxlOl8FAAAACHN1cHBsaWVyBQAA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", "chainId": 84, "height": 1116224, "spentComplexity": 0 } View: original | compacted Prev: 4NnWsY1sB7bDj5cFwUD5vvzLuLZvTpv4XL4M1XUCsf3J Next: APm91TbfvaXpx3XzD8iYWjGJFGjUEiK5NMqQ3dJcpmUh Diff:
OldNewDifferences
5858 func getKeyItem (supplier,item) = ("Reserva Forestal Amazónica" + toBase58String(sha256(toBytes((supplier + item)))))
5959
6060
61+func getKeyProjectCategory (item) = "Categoría:"
62+
63+
64+func getValueProjectCategory (item) = getStrByKey(getKeyProjectCategory(item))
65+
66+
67+func getKeyProjectType (item) = "Tipo de Proyecto:"
68+
69+
70+func getValueProjectType (item) = getStrByKey(getKeyProjectType(item))
71+
72+
6173 func getKeyItemSupplier (supplier) = (supplier + "Comunidad Achuar Kapawi del Ecuador")
6274
6375
7082 func getValueProjectCode (item) = getStrByKey(getKeyProjectCode(item))
7183
7284
73-func getKeyProjectName (projectName) = "Reserva Amazónica Achuar-Kapawi"
85+func getKeyProjectName (item) = "Nombre del Proyecto:"
7486
7587
76-func getValueProjectName (projectName) = getStrByKey(getKeyProjectName(projectName))
88+func getValueProjectName (item) = getStrByKey(getKeyProjectName(item))
7789
7890
7991 func getKeyProjectEtapa (projectAddress) = "AchuarKapawi, I Etapa: PreICO"
8294 func getValueProjectEtapa (projectAddress) = getStrByKey(getKeyProjectEtapa(projectAddress))
8395
8496
85-func getKeyProjectCountry (item) = "República del Ecuador"
97+func getKeyProjectCountry (item) = "País / Ubicación:"
8698
8799
88-func getKeyProjectDev (supplier) = "Fundación Ecológica 'NASE'"
100+func getValueProjectCountry (item) = getStrByKey(getKeyProjectCountry(item))
101+
102+
103+func getKeyProjectDev (supplier) = "Desarrollador / Responsable:"
89104
90105
91106 func getValueProjectDev (supplier) = getStrByKey(getKeyProjectDev(supplier))
127142 func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item))
128143
129144
130-func getKeyUserCountry (item) = "País de Residencia del Usuario:"
145+func getKeyUserCountry (item) = "País del Usuario:"
131146
132147
133148 func getValueUserCountry (item) = getStrByKey(getKeyUserCountry(item))
243258 then throw("Payment Amount can't be less than item Purchase Order")
244259 else if ((pmt.amount > totalAmount))
245260 then throw("Payment Amount can't be higher than item Purchase Order")
246- else ScriptResult(WriteSet([DataEntry("Categoría:", " Reserva Forestal Amazónica"), DataEntry("Tipo de Proyecto:", " Conservación / Emisión de CO2 Evitada"), DataEntry("País/Ubicación:", " Ecuador"), DataEntry("Nombre del Proyecto:", " Reserva Amazónica Achuar-Kapawi"), DataEntry("Código:", " 01-EC/SGT - ACHUARKAPAWI-01"), DataEntry(getKeyProjectCode(item), " 03-EC/SGT - ACHUARKAPAWI-03"), DataEntry("Emisor:", " Comunidad Achuar Kapawi"), DataEntry("Desarrollador/Responsable:", " Fundación Ecológica 'NASE'"), DataEntry("Etapas del Proyecto, Pre-ICO:", " 2"), DataEntry("Etapas del Proyecto, en Ejecución:", " Fundación REDD a definir"), DataEntry("Cantidad Total de Tokens Bit-CO2 a Emitir, I y II Etapa Pre-ICO:", " 305693"), DataEntry("Precio Nominal, 1 token Bit-CO2:", " 10.00 Euros"), DataEntry("Máximo Descuento Ofrecido en 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", currentTokenPrice), DataEntry("investedAmount/User, wvs", totalAmount), DataEntry("purchaseOrder/Status:", "¡Adquisición Confirmada!"), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (preIcoQty - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount)), DataEntry(getKeyItem(supplier, item), "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q"), DataEntry(getKeyItemSupplier(supplier), (getValueItemSupplier(supplier) + "Prueba2"))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
261+ else ScriptResult(WriteSet([DataEntry(getKeyProjectCategory(item), " Reserva Forestal Amazónica"), DataEntry(getKeyProjectType(item), " Conservación / Emisión de CO2 Evitada"), DataEntry(getKeyUserCountry(item), " Ecuador"), DataEntry(getKeyProjectName(item), " Reserva Amazónica Achuar-Kapawi"), DataEntry(getKeyProjectCode(item), " 001-EC/SGT - ACHUARKAPAWI-01"), DataEntry("Emisor:", " Comunidad Achuar Kapawi"), DataEntry(getKeyProjectDev(supplier), " Fundación Ecológica 'NASE'"), DataEntry("Etapas del Proyecto, Pre-ICO:", " 2"), DataEntry("Etapas del Proyecto, en Ejecución:", " Fundación REDD a definir"), DataEntry("Cantidad Total de Tokens Bit-CO2 a Emitir, I y II Etapa Pre-ICO:", " 305693"), DataEntry("Precio Nominal, 1 token Bit-CO2:", " 10.00 Euros"), DataEntry("Máximo Descuento Ofrecido en 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", currentTokenPrice), DataEntry("investedAmount/User, wvs", totalAmount), DataEntry("purchaseOrder/Status:", "¡Adquisición Confirmada!"), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (preIcoQty - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount)), DataEntry(getKeyItem(supplier, item), "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q"), DataEntry(getKeyItemSupplier(supplier), (getValueItemSupplier(supplier) + "Prueba2"))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
247262 }
248263 }
249264
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let xBitCO2 = base58'39yw38hm342hiK43SqELTaZRkTWJoBc22XpxmsSiBrsN'
55
66 let startQty = 305693
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'6tctCnkRasXYuZWRpzZz9ogLri6aifJ19LTtx9uFQv67'
1717
1818 let issuer = Address(base58'3Mvn8oonnpiasA3bkq36N9qeqqXWfFW437o')
1919
2020 let eAdd = Address(base58'3MvrQGkHQtyLTC2QXgPnQ6oCEWhHyUJpU4q')
2121
2222 let pAdd = Address(base58'3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q')
2323
2424 let igv = 18
2525
2626 let cPB = 88
2727
2828 let uIP = 5
2929
3030 let pIP = 10
3131
3232 let sIP = 1
3333
3434 let eIP = 1
3535
3636 func getNumberByKey (key) = {
3737 let num = match getInteger(this, key) {
3838 case a: Int =>
3939 a
4040 case _ =>
4141 0
4242 }
4343 num
4444 }
4545
4646
4747 func getStrByKey (key) = {
4848 let str = match getString(this, key) {
4949 case a: String =>
5050 a
5151 case _ =>
5252 NONE
5353 }
5454 str
5555 }
5656
5757
5858 func getKeyItem (supplier,item) = ("Reserva Forestal Amazónica" + toBase58String(sha256(toBytes((supplier + item)))))
5959
6060
61+func getKeyProjectCategory (item) = "Categoría:"
62+
63+
64+func getValueProjectCategory (item) = getStrByKey(getKeyProjectCategory(item))
65+
66+
67+func getKeyProjectType (item) = "Tipo de Proyecto:"
68+
69+
70+func getValueProjectType (item) = getStrByKey(getKeyProjectType(item))
71+
72+
6173 func getKeyItemSupplier (supplier) = (supplier + "Comunidad Achuar Kapawi del Ecuador")
6274
6375
6476 func getValueItemSupplier (supplier) = getStrByKey(getKeyItemSupplier(supplier))
6577
6678
6779 func getKeyProjectCode (item) = "Código en el Ecosistema:"
6880
6981
7082 func getValueProjectCode (item) = getStrByKey(getKeyProjectCode(item))
7183
7284
73-func getKeyProjectName (projectName) = "Reserva Amazónica Achuar-Kapawi"
85+func getKeyProjectName (item) = "Nombre del Proyecto:"
7486
7587
76-func getValueProjectName (projectName) = getStrByKey(getKeyProjectName(projectName))
88+func getValueProjectName (item) = getStrByKey(getKeyProjectName(item))
7789
7890
7991 func getKeyProjectEtapa (projectAddress) = "AchuarKapawi, I Etapa: PreICO"
8092
8193
8294 func getValueProjectEtapa (projectAddress) = getStrByKey(getKeyProjectEtapa(projectAddress))
8395
8496
85-func getKeyProjectCountry (item) = "República del Ecuador"
97+func getKeyProjectCountry (item) = "País / Ubicación:"
8698
8799
88-func getKeyProjectDev (supplier) = "Fundación Ecológica 'NASE'"
100+func getValueProjectCountry (item) = getStrByKey(getKeyProjectCountry(item))
101+
102+
103+func getKeyProjectDev (supplier) = "Desarrollador / Responsable:"
89104
90105
91106 func getValueProjectDev (supplier) = getStrByKey(getKeyProjectDev(supplier))
92107
93108
94109 func getKeyTokenStartQty (item) = "15693 tokens Bit-CO2"
95110
96111
97112 func getKeyNomTokenPrice (item) = "10.00 Euros"
98113
99114
100115 func getKeyItemPriceSupplier (item) = "_waves"
101116
102117
103118 func getValueItemPriceSupplier (item) = getNumberByKey(getKeyItemPriceSupplier(item))
104119
105120
106121 func getKeyMaxDescuento (item) = "12.00% del Precio Nominal de 1 token Bit-CO2"
107122
108123
109124 func getKeyMinTokenPrice (item) = "8.80 Euros por 1 token Bit-CO2"
110125
111126
112127 func getKeyUserItemCounter (user,item) = "Order_№:"
113128
114129
115130 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
116131
117132
118133 func getKeyUserName (item) = "Nombre del Usuario:"
119134
120135
121136 func getValueUserName (item) = getStrByKey(getKeyUserName(item))
122137
123138
124139 func getKeyUserDocument (item) = "№ de Documento Nacional de Identidad / DNI del Usuario:"
125140
126141
127142 func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item))
128143
129144
130-func getKeyUserCountry (item) = "País de Residencia del Usuario:"
145+func getKeyUserCountry (item) = "País del Usuario:"
131146
132147
133148 func getValueUserCountry (item) = getStrByKey(getKeyUserCountry(item))
134149
135150
136151 func getKeyItemDiscountUser (item) = "Descuento elejido por el Usuario, %:"
137152
138153
139154 func getValueItemDiscountUser (item) = getNumberByKey(getKeyItemDiscountUser(item))
140155
141156
142157 func getKeyItemDiscountSupplier (item) = "SupplierDiscount, max_%:"
143158
144159
145160 func getValueItemDiscountSupplier (item) = getNumberByKey(getKeyItemDiscountSupplier(item))
146161
147162
148163 func getKeyItemUserOrderQty (item) = "Orden de Compra, cantidad solicitada:"
149164
150165
151166 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
152167
153168
154169 func getKeySaldoTokenQtyStartEtapa (item) = "Tokens Ofertados en la presente etapa / Saldo:"
155170
156171
157172 func getValueSaldoTokenQtyStartEtapa (item) = getNumberByKey(getKeySaldoTokenQtyStartEtapa(item))
158173
159174
160175 func getKeyBalanceQtySupplier (item) = "Balance/Saldo, tokens:"
161176
162177
163178 func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
164179
165180
166181 func getKeyBalanceSupplier (supplier) = "Ingresos por Venta Directa / BlockChain:"
167182
168183
169184 func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
170185
171186
172187 func getKeyUI (item) = "UI,_wvs:"
173188
174189
175190 func getValueUI (item) = getNumberByKey(getKeyUI(item))
176191
177192
178193 func getKeyPI (item) = "PI,_%:"
179194
180195
181196 func getValuePI (item) = getNumberByKey(getKeyPI(item))
182197
183198
184199 func getKeySI (item) = "SI,_%:"
185200
186201
187202 func getValueSI (item) = getNumberByKey(getKeySI(item))
188203
189204
190205 func getKeyItemData (item) = "description: "
191206
192207
193208 @Callable(i)
194209 func deposit (title,supplierData) = {
195210 let pmt = extract(i.payment)
196211 if ((pmt.assetId != xBitCO2))
197212 then throw("deposito permitido solo en xBitCO2 tokens")
198213 else {
199214 let supplier = toBase58String(i.caller.bytes)
200215 let currentAmount = match getInteger(this, supplier) {
201216 case a: Int =>
202217 a
203218 case _ =>
204219 startQty
205220 }
206221 let newAmount = (currentAmount + pmt.amount)
207222 if ((0 >= newAmount))
208223 then throw("No hay xBitCO2 en su balance")
209224 else WriteSet([DataEntry(supplier, newAmount)])
210225 }
211226 }
212227
213228
214229
215230 @Callable(i)
216231 func purchase (item,userName,userCountry,userDiscount,orderQty) = {
217232 let pmt = extract(i.payment)
218233 if (isDefined(pmt.assetId))
219234 then throw("En la presente Plastaforma Ud. puede adquirir sus tokens xBitCO2 usando WavesKeeper y su token de pago Waves.")
220235 else {
221236 let supplier = match getString(this, getKeyItemSupplier(item)) {
222237 case a: String =>
223238 a
224239 case _ =>
225240 NONE
226241 }
227242 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
228243 case a: Int =>
229244 a
230245 case _ =>
231246 startQty
232247 }
233248 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
234249 case a: Int =>
235250 a
236251 case _ =>
237252 0
238253 }
239254 let userAddress = toBase58String(i.caller.bytes)
240255 let currentTokenPrice = ((((100 - userDiscount) * nomPrice) * wvs) / 100)
241256 let totalAmount = (orderQty * currentTokenPrice)
242257 if ((totalAmount > pmt.amount))
243258 then throw("Payment Amount can't be less than item Purchase Order")
244259 else if ((pmt.amount > totalAmount))
245260 then throw("Payment Amount can't be higher than item Purchase Order")
246- else ScriptResult(WriteSet([DataEntry("Categoría:", " Reserva Forestal Amazónica"), DataEntry("Tipo de Proyecto:", " Conservación / Emisión de CO2 Evitada"), DataEntry("País/Ubicación:", " Ecuador"), DataEntry("Nombre del Proyecto:", " Reserva Amazónica Achuar-Kapawi"), DataEntry("Código:", " 01-EC/SGT - ACHUARKAPAWI-01"), DataEntry(getKeyProjectCode(item), " 03-EC/SGT - ACHUARKAPAWI-03"), DataEntry("Emisor:", " Comunidad Achuar Kapawi"), DataEntry("Desarrollador/Responsable:", " Fundación Ecológica 'NASE'"), DataEntry("Etapas del Proyecto, Pre-ICO:", " 2"), DataEntry("Etapas del Proyecto, en Ejecución:", " Fundación REDD a definir"), DataEntry("Cantidad Total de Tokens Bit-CO2 a Emitir, I y II Etapa Pre-ICO:", " 305693"), DataEntry("Precio Nominal, 1 token Bit-CO2:", " 10.00 Euros"), DataEntry("Máximo Descuento Ofrecido en 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", currentTokenPrice), DataEntry("investedAmount/User, wvs", totalAmount), DataEntry("purchaseOrder/Status:", "¡Adquisición Confirmada!"), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (preIcoQty - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount)), DataEntry(getKeyItem(supplier, item), "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q"), DataEntry(getKeyItemSupplier(supplier), (getValueItemSupplier(supplier) + "Prueba2"))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
261+ else ScriptResult(WriteSet([DataEntry(getKeyProjectCategory(item), " Reserva Forestal Amazónica"), DataEntry(getKeyProjectType(item), " Conservación / Emisión de CO2 Evitada"), DataEntry(getKeyUserCountry(item), " Ecuador"), DataEntry(getKeyProjectName(item), " Reserva Amazónica Achuar-Kapawi"), DataEntry(getKeyProjectCode(item), " 001-EC/SGT - ACHUARKAPAWI-01"), DataEntry("Emisor:", " Comunidad Achuar Kapawi"), DataEntry(getKeyProjectDev(supplier), " Fundación Ecológica 'NASE'"), DataEntry("Etapas del Proyecto, Pre-ICO:", " 2"), DataEntry("Etapas del Proyecto, en Ejecución:", " Fundación REDD a definir"), DataEntry("Cantidad Total de Tokens Bit-CO2 a Emitir, I y II Etapa Pre-ICO:", " 305693"), DataEntry("Precio Nominal, 1 token Bit-CO2:", " 10.00 Euros"), DataEntry("Máximo Descuento Ofrecido en 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", currentTokenPrice), DataEntry("investedAmount/User, wvs", totalAmount), DataEntry("purchaseOrder/Status:", "¡Adquisición Confirmada!"), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (preIcoQty - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount)), DataEntry(getKeyItem(supplier, item), "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q"), DataEntry(getKeyItemSupplier(supplier), (getValueItemSupplier(supplier) + "Prueba2"))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
247262 }
248263 }
249264
250265
251266
252267 @Callable(i)
253268 func AddSupplierToken (title,name,country,preIcoQty,supplierDiscount,supplierData) = {
254269 let supplier = toBase58String(i.caller.bytes)
255270 let item = getKeyItem(supplier, title)
256271 if ((0 >= preIcoQty))
257272 then throw("Sorry, insufficient token offer")
258273 else WriteSet([DataEntry(("Supplier:_" + getKeyProjectDev(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)])
259274 }
260275
261276
262277
263278 @Callable(i)
264279 func purchaseGTS (item,userName,userDocument,totalAmount) = {
265280 let pmt = extract(i.payment)
266281 if (isDefined(pmt.assetId))
267282 then throw("El Precio de los aves.")
268283 else {
269284 let supplier = match getString(this, getKeyItemSupplier(item)) {
270285 case a: String =>
271286 a
272287 case _ =>
273288 NONE
274289 }
275290 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
276291 case a: Int =>
277292 a
278293 case _ =>
279294 startQty
280295 }
281296 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
282297 case a: Int =>
283298 a
284299 case _ =>
285300 0
286301 }
287302 let userAddress = toBase58String(i.caller.bytes)
288303 let subTotal = (totalAmount - ((igv * totalAmount) / 100))
289304 let uI = ((subTotal * uIP) / 100)
290305 let uBI = (uI / cPB)
291306 let pI = ((subTotal * pIP) / 100)
292307 let eI = ((subTotal * eIP) / 100)
293308 let eBI = ((subTotal * eIP) / (cPB * 100))
294309 let sI = ((totalAmount - pI) - eI)
295310 let sBI = ((subTotal * sIP) / (cPB * 100))
296311 if ((totalAmount > pmt.amount))
297312 then throw("Payment Amount can't be less than item Purchase Order")
298313 else if ((pmt.amount > totalAmount))
299314 then throw("Payment Amount can't be higher than item Purchase Order")
300315 else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyUserName(item), userName), DataEntry(getKeyUserDocument(item), userDocument), 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("EcSys", eBI), DataEntry(("Order_Status:_" + userAddress), "Adquisición Confirmada!"), DataEntry(getKeySI(item), sI), DataEntry("SBI: b", sBI), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(i.caller, uBI, xBitCO2), ScriptTransfer(pAdd, pI, unit), ScriptTransfer(issuer, sI, unit), ScriptTransfer(issuer, sBI, xBitCO2), ScriptTransfer(eAdd, eI, unit), ScriptTransfer(eAdd, eBI, xBitCO2)]))
301316 }
302317 }
303318
304319
305320
306321 @Callable(i)
307322 func AddVendedorGTS (title,name,country,preIcoQty,supplierDiscount,supplierData) = {
308323 let supplier = toBase58String(i.caller.bytes)
309324 let item = getKeyItem(supplier, title)
310325 if ((0 >= preIcoQty))
311326 then throw("Sorry, insufficient token offer")
312327 else WriteSet([DataEntry(("Supplier:_" + getKeyProjectDev(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)])
313328 }
314329
315330
316331
317332 @Callable(i)
318333 func withdraw (item,amount) = {
319334 let userAddress = toBase58String(i.caller.bytes)
320335 let supplier = match getString(this, getKeyItemSupplier(item)) {
321336 case a: String =>
322337 a
323338 case _ =>
324339 NONE
325340 }
326341 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
327342 case a: Int =>
328343 a
329344 case _ =>
330345 startQty
331346 }
332347 let newAmount = (preIcoQty - amount)
333348 if ((0 > amount))
334349 then throw("El balance de retiro no puede ser negativo!")
335350 else if ((0 >= newAmount))
336351 then throw("Ooppss.. Insuficiente balance!")
337352 else ScriptResult(WriteSet([DataEntry(item, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, xBitCO2)]))
338353 }
339354
340355
341356 @Verifier(tx)
342357 func verify () = match tx {
343358 case t: SetScriptTransaction =>
344359 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
345360 case d: DataTransaction|ReissueTransaction =>
346361 true
347362 case tx: TransferTransaction =>
348363 true
349364 case tx: ExchangeTransaction =>
350365 let withWaves = if (!(isDefined(tx.sellOrder.assetPair.priceAsset)))
351366 then true
352367 else !(isDefined(tx.sellOrder.assetPair.amountAsset))
353368 withWaves
354369 case _ =>
355370 false
356371 }
357372

github/deemru/w8io/026f985 
94.43 ms