tx · APm91TbfvaXpx3XzD8iYWjGJFGjUEiK5NMqQ3dJcpmUh

3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q:  -0.01400000 Waves

2020.08.03 20:04 [1116474] smart account 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q > SELF 0.00000000 Waves

{ "type": 13, "id": "APm91TbfvaXpx3XzD8iYWjGJFGjUEiK5NMqQ3dJcpmUh", "fee": 1400000, "feeAssetId": null, "timestamp": 1596474227972, "version": 1, "sender": "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q", "senderPublicKey": "6tctCnkRasXYuZWRpzZz9ogLri6aifJ19LTtx9uFQv67", "proofs": [ "5WTX4MYq39kJt8eSiuLM73B7SEsPhQeLNCbQiAfGifeSUvjDGaTjPS6onX8ufYY5f24DgptcVkXq2BmxSKsgYb4G" ], "script": "base64:AAIDAAAAAAAAADMIARIECgIICBIHCgUICAgBARIICgYICAgBAQgSBgoECAgIARIICgYICAgBAQgSBAoCCAEAAABFAAAAAAd4Qml0Q08yAQAAACAgBGSmqgN7DW+mqvqXJVizlol6Uwz/77rGaIdsg1TcjQAAAAAIc3RhcnRRdHkAAAAAAAAEqh0AAAAACG5vbVByaWNlAAAAAAAAAAABAAAAAAN3dnMAAAAAAAX14QAAAAAAEHN1cHBsaWVyRGlzY291bnQAAAAAAAAAAAwAAAAABE5PTkUCAAAABG5vbmUAAAAAC093bmVyUHViS2V5AQAAACBXg6Dz9iwxuW6OZN3ObCk6NCcw047cUbg0y/YmycTlFAAAAAAGaXNzdWVyCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUS0gVj7khTyyW8drcBieKY28h0dbnPZfaAAAAAARlQWRkCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUTBaoO/bGBDOBrm064MWNCsZzgwdlxMLyAAAAAARwQWRkCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUr4Vcn4wBB78CoLaGa2WDuKHfP9Hd98MyAAAAAANpZ3YAAAAAAAAAABIAAAAAA2NQQgAAAAAAAAAAWAAAAAADdUlQAAAAAAAAAAAFAAAAAANwSVAAAAAAAAAAAAoAAAAAA3NJUAAAAAAAAAAAAQAAAAADZUlQAAAAAAAAAAABAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAACmdldEtleUl0ZW0AAAACAAAACHN1cHBsaWVyAAAABGl0ZW0JAAEsAAAAAgIAAAAbUmVzZXJ2YSBGb3Jlc3RhbCBBbWF6w7NuaWNhCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAARpdGVtAQAAABVnZXRLZXlQcm9qZWN0Q2F0ZWdvcnkAAAABAAAABGl0ZW0CAAAAC0NhdGVnb3LDrWE6AQAAABdnZXRWYWx1ZVByb2plY3RDYXRlZ29yeQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAFWdldEtleVByb2plY3RDYXRlZ29yeQAAAAEFAAAABGl0ZW0BAAAAEWdldEtleVByb2plY3RUeXBlAAAAAQAAAARpdGVtAgAAABFUaXBvIGRlIFByb3llY3RvOgEAAAATZ2V0VmFsdWVQcm9qZWN0VHlwZQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEWdldEtleVByb2plY3RUeXBlAAAAAQUAAAAEaXRlbQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkAASwAAAACBQAAAAhzdXBwbGllcgIAAAAjQ29tdW5pZGFkIEFjaHVhciBLYXBhd2kgZGVsIEVjdWFkb3IBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyAQAAABFnZXRLZXlQcm9qZWN0Q29kZQAAAAEAAAAEaXRlbQIAAAAIQ8OzZGlnbzoBAAAAE2dldFZhbHVlUHJvamVjdENvZGUAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABFnZXRLZXlQcm9qZWN0Q29kZQAAAAEFAAAABGl0ZW0BAAAAEWdldEtleVByb2plY3ROYW1lAAAAAQAAAARpdGVtAgAAABROb21icmUgZGVsIFByb3llY3RvOgEAAAATZ2V0VmFsdWVQcm9qZWN0TmFtZQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEWdldEtleVByb2plY3ROYW1lAAAAAQUAAAAEaXRlbQEAAAASZ2V0S2V5UHJvamVjdEV0YXBhAAAAAQAAAA5wcm9qZWN0QWRkcmVzcwIAAAAdQWNodWFyS2FwYXdpLCBJIEV0YXBhOiBQcmVJQ08BAAAAFGdldFZhbHVlUHJvamVjdEV0YXBhAAAAAQAAAA5wcm9qZWN0QWRkcmVzcwkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleVByb2plY3RFdGFwYQAAAAEFAAAADnByb2plY3RBZGRyZXNzAQAAABRnZXRLZXlQcm9qZWN0Q291bnRyeQAAAAEAAAAEaXRlbQIAAAATUGHDrXMgLyBVYmljYWNpw7NuOgEAAAAWZ2V0VmFsdWVQcm9qZWN0Q291bnRyeQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAFGdldEtleVByb2plY3RDb3VudHJ5AAAAAQUAAAAEaXRlbQEAAAAQZ2V0S2V5UHJvamVjdERldgAAAAEAAAAIc3VwcGxpZXICAAAAHERlc2Fycm9sbGFkb3IgLyBSZXNwb25zYWJsZToBAAAAEmdldFZhbHVlUHJvamVjdERldgAAAAEAAAAIc3VwcGxpZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABBnZXRLZXlQcm9qZWN0RGV2AAAAAQUAAAAIc3VwcGxpZXIBAAAAE2dldEtleVRva2VuU3RhcnRRdHkAAAABAAAABGl0ZW0CAAAAFDE1NjkzIHRva2VucyBCaXQtQ08yAQAAABNnZXRLZXlOb21Ub2tlblByaWNlAAAAAQAAAARpdGVtAgAAAAsxMC4wMCBFdXJvcwEAAAAXZ2V0S2V5SXRlbVByaWNlU3VwcGxpZXIAAAABAAAABGl0ZW0CAAAABl93YXZlcwEAAAAZZ2V0VmFsdWVJdGVtUHJpY2VTdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAF2dldEtleUl0ZW1QcmljZVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAASZ2V0S2V5TWF4RGVzY3VlbnRvAAAAAQAAAARpdGVtAgAAAClNw6F4aW1vIERlc2N1ZW50byBPZnJlY2lkbyBlbiBJIEV0YXBhLCAlOgEAAAAUZ2V0VmFsdWVNYXhEZXNjdWVudG8AAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRLZXlNYXhEZXNjdWVudG8AAAABBQAAAARpdGVtAQAAABNnZXRLZXlNaW5Ub2tlblByaWNlAAAAAQAAAARpdGVtAgAAAB44LjgwIEV1cm9zIHBvciAxIHRva2VuIEJpdC1DTzIBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtAgAAAApPcmRlcl/ihJY6AQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAAOZ2V0S2V5VXNlck5hbWUAAAABAAAABGl0ZW0CAAAAE05vbWJyZSBkZWwgVXN1YXJpbzoBAAAAEGdldFZhbHVlVXNlck5hbWUAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAA5nZXRLZXlVc2VyTmFtZQAAAAEFAAAABGl0ZW0BAAAAEmdldEtleVVzZXJEb2N1bWVudAAAAAEAAAAEaXRlbQIAAAA54oSWIGRlIERvY3VtZW50byBOYWNpb25hbCBkZSBJZGVudGlkYWQgLyBETkkgZGVsIFVzdWFyaW86AQAAABRnZXRWYWx1ZVVzZXJEb2N1bWVudAAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleVVzZXJEb2N1bWVudAAAAAEFAAAABGl0ZW0BAAAAEWdldEtleVVzZXJDb3VudHJ5AAAAAQAAAARpdGVtAgAAABJQYcOtcyBkZWwgVXN1YXJpbzoBAAAAE2dldFZhbHVlVXNlckNvdW50cnkAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEFAAAABGl0ZW0BAAAAFmdldEtleUl0ZW1EaXNjb3VudFVzZXIAAAABAAAABGl0ZW0CAAAAJERlc2N1ZW50byBlbGVqaWRvIHBvciBlbCBVc3VhcmlvLCAlOgEAAAAYZ2V0VmFsdWVJdGVtRGlzY291bnRVc2VyAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAWZ2V0S2V5SXRlbURpc2NvdW50VXNlcgAAAAEFAAAABGl0ZW0BAAAAGmdldEtleUl0ZW1EaXNjb3VudFN1cHBsaWVyAAAAAQAAAARpdGVtAgAAABhTdXBwbGllckRpc2NvdW50LCBtYXhfJToBAAAAHGdldFZhbHVlSXRlbURpc2NvdW50U3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABpnZXRLZXlJdGVtRGlzY291bnRTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0CAAAAJU9yZGVuIGRlIENvbXByYSwgY2FudGlkYWQgc29saWNpdGFkYToBAAAAGGdldFZhbHVlSXRlbVVzZXJPcmRlclF0eQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABBQAAAARpdGVtAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEAAAAEaXRlbQIAAAAuVG9rZW5zIE9mZXJ0YWRvcyBlbiBsYSBwcmVzZW50ZSBldGFwYSAvIFNhbGRvOgEAAAAfZ2V0VmFsdWVTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAHWdldEtleVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQUAAAAEaXRlbQEAAAAYZ2V0S2V5QmFsYW5jZVF0eVN1cHBsaWVyAAAAAQAAAARpdGVtAgAAABZCYWxhbmNlL1NhbGRvLCB0b2tlbnM6AQAAABpnZXRWYWx1ZUJhbGFuY2VRdHlTdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGGdldEtleUJhbGFuY2VRdHlTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEAAAAIc3VwcGxpZXICAAAAKEluZ3Jlc29zIHBvciBW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AgAAACZUb3RhbCB0b2tlbnMgZW1pdGlkb3MsIEkgRXRhcGEgUHJlLUlDTwUAAAAIc3RhcnRRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlVc2VyTmFtZQAAAAEFAAAABGl0ZW0FAAAACHVzZXJOYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0S2V5VXNlckNvdW50cnkAAAABBQAAAARpdGVtBQAAAAt1c2VyQ291bnRyeQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFmdldEtleUl0ZW1EaXNjb3VudFVzZXIAAAABBQAAAARpdGVtBQAAAAx1c2VyRGlzY291bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQUAAAAEaXRlbQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAGHRva2VuUHJpY2UvU3VwcGxpZXIsIHd2cwkAAGgAAAACBQAAAAhub21QcmljZQUAAAADd3ZzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABR0b2tlblByaWNlL1VzZXIsIHd2cwUAAAARY3VycmVudFRva2VuUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAGGludmVzdGVkQW1vdW50L1VzZXIsIHd2cwUAAAALdG90YWxBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAFXB1cmNoYXNlT3JkZXIvU3RhdHVzOgIAAAAawqFBZHF1aXNpY2nDs24gQ29uZmlybWFkYSEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtCQAAZQAAAAIFAAAACXByZUljb1F0eQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0JAABlAAAAAgUAAAAJcHJlSWNvUXR5BQAAAAhvcmRlclF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyCQAAZAAAAAIFAAAAD2JhbGFuY2VTdXBwbGllcggFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAAJAQAAAApnZXRLZXlJdGVtAAAAAgUAAAAIc3VwcGxpZXIFAAAABGl0ZW0CAAAAAAIAAAAjM041djluZGJrR1NXeTFTZmVKU3o5NHRZVThxVk5UVUpWMnEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAI0FkZHJlc3MgZGVsIFByb3llY3RvIGVuIEJsb2NrQ2hhaW46AgAAACUgM041djluZGJrR1NXeTFTZmVKU3o5NHRZVThxVk5UVUpWMnEgBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAAIb3JkZXJRdHkFAAAAB3hCaXRDTzIFAAAAA25pbAAAAAFpAQAAABBBZGRTdXBwbGllclRva2VuAAAABgAAAAV0aXRsZQAAAARuYW1lAAAAB2NvdW50cnkAAAAJcHJlSWNvUXR5AAAAEHN1cHBsaWVyRGlzY291bnQAAAAMc3VwcGxpZXJEYXRhBAAAAAhzdXBwbGllcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAARpdGVtCQEAAAAKZ2V0S2V5SXRlbQAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQMJAABnAAAAAgAAAAAAAAAAAAUAAAAJcHJlSWNvUXR5CQAAAgAAAAECAAAAH1NvcnJ5LCBpbnN1ZmZpY2llbnQgdG9rZW4gb2ZmZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAKU3VwcGxpZXI6XwkBAAAAEGdldEtleVByb2plY3REZXYAAAABBQAAAARpdGVt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", "chainId": 84, "height": 1116474, "spentComplexity": 0 } View: original | compacted Prev: HQvEdVY6Qn5x6HERgesKCpDABeeQ7Gka47kRGwg86kt Next: XHKofwjzd4h99XTAjKRacEucoTZ9Hv32KzLrp7JBvRX Diff:
OldNewDifferences
7676 func getValueItemSupplier (supplier) = getStrByKey(getKeyItemSupplier(supplier))
7777
7878
79-func getKeyProjectCode (item) = "Código en el Ecosistema:"
79+func getKeyProjectCode (item) = "Código:"
8080
8181
8282 func getValueProjectCode (item) = getStrByKey(getKeyProjectCode(item))
118118 func getValueItemPriceSupplier (item) = getNumberByKey(getKeyItemPriceSupplier(item))
119119
120120
121-func getKeyMaxDescuento (item) = "12.00% del Precio Nominal de 1 token Bit-CO2"
121+func getKeyMaxDescuento (item) = "Máximo Descuento Ofrecido en I Etapa, %:"
122+
123+
124+func getValueMaxDescuento (item) = getNumberByKey(getKeyMaxDescuento(item))
122125
123126
124127 func getKeyMinTokenPrice (item) = "8.80 Euros por 1 token Bit-CO2"
258261 then throw("Payment Amount can't be less than item Purchase Order")
259262 else if ((pmt.amount > totalAmount))
260263 then throw("Payment Amount can't be higher than item Purchase Order")
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)]))
264+ else ScriptResult(WriteSet([DataEntry(getKeyProjectCategory(item), " Reserva Forestal Amazónica"), DataEntry(getKeyProjectType(item), " Conservación / Emisión de CO2 Evitada"), DataEntry(getKeyProjectCountry(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(getKeyMaxDescuento(item), " 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("Address del Proyecto en BlockChain:", " 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q ")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
262265 }
263266 }
264267
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
6161 func getKeyProjectCategory (item) = "Categoría:"
6262
6363
6464 func getValueProjectCategory (item) = getStrByKey(getKeyProjectCategory(item))
6565
6666
6767 func getKeyProjectType (item) = "Tipo de Proyecto:"
6868
6969
7070 func getValueProjectType (item) = getStrByKey(getKeyProjectType(item))
7171
7272
7373 func getKeyItemSupplier (supplier) = (supplier + "Comunidad Achuar Kapawi del Ecuador")
7474
7575
7676 func getValueItemSupplier (supplier) = getStrByKey(getKeyItemSupplier(supplier))
7777
7878
79-func getKeyProjectCode (item) = "Código en el Ecosistema:"
79+func getKeyProjectCode (item) = "Código:"
8080
8181
8282 func getValueProjectCode (item) = getStrByKey(getKeyProjectCode(item))
8383
8484
8585 func getKeyProjectName (item) = "Nombre del Proyecto:"
8686
8787
8888 func getValueProjectName (item) = getStrByKey(getKeyProjectName(item))
8989
9090
9191 func getKeyProjectEtapa (projectAddress) = "AchuarKapawi, I Etapa: PreICO"
9292
9393
9494 func getValueProjectEtapa (projectAddress) = getStrByKey(getKeyProjectEtapa(projectAddress))
9595
9696
9797 func getKeyProjectCountry (item) = "País / Ubicación:"
9898
9999
100100 func getValueProjectCountry (item) = getStrByKey(getKeyProjectCountry(item))
101101
102102
103103 func getKeyProjectDev (supplier) = "Desarrollador / Responsable:"
104104
105105
106106 func getValueProjectDev (supplier) = getStrByKey(getKeyProjectDev(supplier))
107107
108108
109109 func getKeyTokenStartQty (item) = "15693 tokens Bit-CO2"
110110
111111
112112 func getKeyNomTokenPrice (item) = "10.00 Euros"
113113
114114
115115 func getKeyItemPriceSupplier (item) = "_waves"
116116
117117
118118 func getValueItemPriceSupplier (item) = getNumberByKey(getKeyItemPriceSupplier(item))
119119
120120
121-func getKeyMaxDescuento (item) = "12.00% del Precio Nominal de 1 token Bit-CO2"
121+func getKeyMaxDescuento (item) = "Máximo Descuento Ofrecido en I Etapa, %:"
122+
123+
124+func getValueMaxDescuento (item) = getNumberByKey(getKeyMaxDescuento(item))
122125
123126
124127 func getKeyMinTokenPrice (item) = "8.80 Euros por 1 token Bit-CO2"
125128
126129
127130 func getKeyUserItemCounter (user,item) = "Order_№:"
128131
129132
130133 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
131134
132135
133136 func getKeyUserName (item) = "Nombre del Usuario:"
134137
135138
136139 func getValueUserName (item) = getStrByKey(getKeyUserName(item))
137140
138141
139142 func getKeyUserDocument (item) = "№ de Documento Nacional de Identidad / DNI del Usuario:"
140143
141144
142145 func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item))
143146
144147
145148 func getKeyUserCountry (item) = "País del Usuario:"
146149
147150
148151 func getValueUserCountry (item) = getStrByKey(getKeyUserCountry(item))
149152
150153
151154 func getKeyItemDiscountUser (item) = "Descuento elejido por el Usuario, %:"
152155
153156
154157 func getValueItemDiscountUser (item) = getNumberByKey(getKeyItemDiscountUser(item))
155158
156159
157160 func getKeyItemDiscountSupplier (item) = "SupplierDiscount, max_%:"
158161
159162
160163 func getValueItemDiscountSupplier (item) = getNumberByKey(getKeyItemDiscountSupplier(item))
161164
162165
163166 func getKeyItemUserOrderQty (item) = "Orden de Compra, cantidad solicitada:"
164167
165168
166169 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
167170
168171
169172 func getKeySaldoTokenQtyStartEtapa (item) = "Tokens Ofertados en la presente etapa / Saldo:"
170173
171174
172175 func getValueSaldoTokenQtyStartEtapa (item) = getNumberByKey(getKeySaldoTokenQtyStartEtapa(item))
173176
174177
175178 func getKeyBalanceQtySupplier (item) = "Balance/Saldo, tokens:"
176179
177180
178181 func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
179182
180183
181184 func getKeyBalanceSupplier (supplier) = "Ingresos por Venta Directa / BlockChain:"
182185
183186
184187 func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
185188
186189
187190 func getKeyUI (item) = "UI,_wvs:"
188191
189192
190193 func getValueUI (item) = getNumberByKey(getKeyUI(item))
191194
192195
193196 func getKeyPI (item) = "PI,_%:"
194197
195198
196199 func getValuePI (item) = getNumberByKey(getKeyPI(item))
197200
198201
199202 func getKeySI (item) = "SI,_%:"
200203
201204
202205 func getValueSI (item) = getNumberByKey(getKeySI(item))
203206
204207
205208 func getKeyItemData (item) = "description: "
206209
207210
208211 @Callable(i)
209212 func deposit (title,supplierData) = {
210213 let pmt = extract(i.payment)
211214 if ((pmt.assetId != xBitCO2))
212215 then throw("deposito permitido solo en xBitCO2 tokens")
213216 else {
214217 let supplier = toBase58String(i.caller.bytes)
215218 let currentAmount = match getInteger(this, supplier) {
216219 case a: Int =>
217220 a
218221 case _ =>
219222 startQty
220223 }
221224 let newAmount = (currentAmount + pmt.amount)
222225 if ((0 >= newAmount))
223226 then throw("No hay xBitCO2 en su balance")
224227 else WriteSet([DataEntry(supplier, newAmount)])
225228 }
226229 }
227230
228231
229232
230233 @Callable(i)
231234 func purchase (item,userName,userCountry,userDiscount,orderQty) = {
232235 let pmt = extract(i.payment)
233236 if (isDefined(pmt.assetId))
234237 then throw("En la presente Plastaforma Ud. puede adquirir sus tokens xBitCO2 usando WavesKeeper y su token de pago Waves.")
235238 else {
236239 let supplier = match getString(this, getKeyItemSupplier(item)) {
237240 case a: String =>
238241 a
239242 case _ =>
240243 NONE
241244 }
242245 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
243246 case a: Int =>
244247 a
245248 case _ =>
246249 startQty
247250 }
248251 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
249252 case a: Int =>
250253 a
251254 case _ =>
252255 0
253256 }
254257 let userAddress = toBase58String(i.caller.bytes)
255258 let currentTokenPrice = ((((100 - userDiscount) * nomPrice) * wvs) / 100)
256259 let totalAmount = (orderQty * currentTokenPrice)
257260 if ((totalAmount > pmt.amount))
258261 then throw("Payment Amount can't be less than item Purchase Order")
259262 else if ((pmt.amount > totalAmount))
260263 then throw("Payment Amount can't be higher than item Purchase Order")
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)]))
264+ else ScriptResult(WriteSet([DataEntry(getKeyProjectCategory(item), " Reserva Forestal Amazónica"), DataEntry(getKeyProjectType(item), " Conservación / Emisión de CO2 Evitada"), DataEntry(getKeyProjectCountry(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(getKeyMaxDescuento(item), " 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("Address del Proyecto en BlockChain:", " 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q ")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, xBitCO2)]))
262265 }
263266 }
264267
265268
266269
267270 @Callable(i)
268271 func AddSupplierToken (title,name,country,preIcoQty,supplierDiscount,supplierData) = {
269272 let supplier = toBase58String(i.caller.bytes)
270273 let item = getKeyItem(supplier, title)
271274 if ((0 >= preIcoQty))
272275 then throw("Sorry, insufficient token offer")
273276 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)])
274277 }
275278
276279
277280
278281 @Callable(i)
279282 func purchaseGTS (item,userName,userDocument,totalAmount) = {
280283 let pmt = extract(i.payment)
281284 if (isDefined(pmt.assetId))
282285 then throw("El Precio de los aves.")
283286 else {
284287 let supplier = match getString(this, getKeyItemSupplier(item)) {
285288 case a: String =>
286289 a
287290 case _ =>
288291 NONE
289292 }
290293 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
291294 case a: Int =>
292295 a
293296 case _ =>
294297 startQty
295298 }
296299 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
297300 case a: Int =>
298301 a
299302 case _ =>
300303 0
301304 }
302305 let userAddress = toBase58String(i.caller.bytes)
303306 let subTotal = (totalAmount - ((igv * totalAmount) / 100))
304307 let uI = ((subTotal * uIP) / 100)
305308 let uBI = (uI / cPB)
306309 let pI = ((subTotal * pIP) / 100)
307310 let eI = ((subTotal * eIP) / 100)
308311 let eBI = ((subTotal * eIP) / (cPB * 100))
309312 let sI = ((totalAmount - pI) - eI)
310313 let sBI = ((subTotal * sIP) / (cPB * 100))
311314 if ((totalAmount > pmt.amount))
312315 then throw("Payment Amount can't be less than item Purchase Order")
313316 else if ((pmt.amount > totalAmount))
314317 then throw("Payment Amount can't be higher than item Purchase Order")
315318 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)]))
316319 }
317320 }
318321
319322
320323
321324 @Callable(i)
322325 func AddVendedorGTS (title,name,country,preIcoQty,supplierDiscount,supplierData) = {
323326 let supplier = toBase58String(i.caller.bytes)
324327 let item = getKeyItem(supplier, title)
325328 if ((0 >= preIcoQty))
326329 then throw("Sorry, insufficient token offer")
327330 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)])
328331 }
329332
330333
331334
332335 @Callable(i)
333336 func withdraw (item,amount) = {
334337 let userAddress = toBase58String(i.caller.bytes)
335338 let supplier = match getString(this, getKeyItemSupplier(item)) {
336339 case a: String =>
337340 a
338341 case _ =>
339342 NONE
340343 }
341344 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
342345 case a: Int =>
343346 a
344347 case _ =>
345348 startQty
346349 }
347350 let newAmount = (preIcoQty - amount)
348351 if ((0 > amount))
349352 then throw("El balance de retiro no puede ser negativo!")
350353 else if ((0 >= newAmount))
351354 then throw("Ooppss.. Insuficiente balance!")
352355 else ScriptResult(WriteSet([DataEntry(item, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, xBitCO2)]))
353356 }
354357
355358
356359 @Verifier(tx)
357360 func verify () = match tx {
358361 case t: SetScriptTransaction =>
359362 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
360363 case d: DataTransaction|ReissueTransaction =>
361364 true
362365 case tx: TransferTransaction =>
363366 true
364367 case tx: ExchangeTransaction =>
365368 let withWaves = if (!(isDefined(tx.sellOrder.assetPair.priceAsset)))
366369 then true
367370 else !(isDefined(tx.sellOrder.assetPair.amountAsset))
368371 withWaves
369372 case _ =>
370373 false
371374 }
372375

github/deemru/w8io/c3f4982 
65.08 ms