2022.07.25 22:59 [3221319] smart account 3P6bRMoFNxhnDewqQxcrW6A36Y2AVCPtxki > SELF 0.00000000 Waves

{ "type": 13, "id": "Dye6MD2DL8vJ5foMvm3RZRroHiqcpJ7VKKztpwZioLJv", "fee": 600000, "feeAssetId": null, "timestamp": 1658779185721, "version": 2, "chainId": 87, "sender": "3P6bRMoFNxhnDewqQxcrW6A36Y2AVCPtxki", "senderPublicKey": "2QpC7DhyDZJhCUH9zxHkr8VW9zayNHJ7EYyVpKTVDeQQ", "proofs": [ "97KYEu8ZZDirgwBUFXKfZNiunpyzY7cdQczVVoHYWy9mT1mSXUQFgnAvy614ozRJL7kFNefn9CTEyyqjygtdNNe" ], "script": "base64:AAIDAAAAAAAAAAsIARIHCgUICAgBAQAAACEAAAAAA1ZHVAEAAAAgH3APaNXgemmuxgIF8GLVZs9OZCNQv4VnpgAL8IZcgr8AAAAADXN0YXJ0VG90YWxRdHkAAAAAAAAPQkAAAAAAA3d2cwAAAAAABfXhAAAAAAAETk9ORQIAAAAEbm9uZQAAAAAHbm9tdmd0dQAAAAAAAAAACgAAAAAFdXNkbncAAAAAAAAAAd4AAAAAC093bmVyUHViS2V5AQAAACAU9We3Kml6s0Jum54I7OlT6ksdjFLGOCVUMQ2treizYQAAAAAKYWRtTjA4VkdUVwkBAAAAB0FkZHJlc3MAAAABAQAAABoBV/3biCSaEmPwoHq75mzaCx+XtM5RcqklbQAAAAARYWRtTjA4c3lzVkdUUGFpc1cJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVfg2oNUnZEk+dm+DEZSikioGRjbo7emwyABAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAMZ2V0S2V5RW1pc29yAAAAAQAAAARpdGVtAgAAAAdFbWlzb3I6AQAAAA5nZXRWYWx1ZUVtaXNvcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADGdldEtleUVtaXNvcgAAAAEFAAAABGl0ZW0BAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEAAAAIc3VwcGxpZXIJAAEsAAAAAgUAAAAIc3VwcGxpZXICAAAAB05vZG8tMDgBAAAAFGdldEtleUVtaXNpb25Db3VudHJ5AAAAAQAAAARpdGVtAgAAAAtOb2RvLVBhw61zOgEAAAAWZ2V0VmFsdWVFbWlzaW9uQ291bnRyeQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAFGdldEtleUVtaXNpb25Db3VudHJ5AAAAAQUAAAAEaXRlbQEAAAARZ2V0S2V5RW1pc2lvbkNvZGUAAAABAAAABGl0ZW0CAAAACEPDs2RpZ286AQAAABNnZXRWYWx1ZUVtaXNpb25Db2RlAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAARZ2V0S2V5RW1pc2lvbkNvZGUAAAABBQAAAARpdGVtAQAAABNnZXRLZXlOb21Ub2tlblByaWNlAAAAAQAAAARpdGVtAgAAABZQcmVjaW8gTm9taW5hbCwgMSBWR1Q6AQAAABNnZXRLZXlzdGFydFRvdGFsUXR5AAAAAQAAAARpdGVtAgAAABxDYW50aWRhZCBkZSB0b2tlbnMgZW1pdGlkb3M6AQAAABVnZXRWYWx1ZXN0YXJ0VG90YWxRdHkAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABNnZXRLZXlzdGFydFRvdGFsUXR5AAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgIAAAAdRm9uZG9zIHwgTW9udG8gcmVjYXVkYWRvLCB3dnMBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQAAAAhzdXBwbGllcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQIAAAAKT3JkZXJf4oSWOgEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACAAAABHVzZXIAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAABHVzZXIFAAAABGl0ZW0BAAAAEmdldEtleVVzZXJEb2N1bWVudAAAAAEAAAAEaXRlbQIAAAAlRG9jdW1lbnRvIE5hY2lvbmFsIGRlIElkZW50aWRhZCwgRE5JOgEAAAAUZ2V0VmFsdWVVc2VyRG9jdW1lbnQAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlVc2VyRG9jdW1lbnQAAAABBQAAAARpdGVtAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEAAAAEaXRlbQIAAAAgUGHDrXMgZGUgUmVzaWRlbmNpYSBkZWwgVXN1YXJpbzoBAAAAE2dldFZhbHVlVXNlckNvdW50cnkAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABFnZXRLZXlVc2VyQ291bnRyeQAAAAEFAAAABGl0ZW0BAAAAFmdldEtleUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0CAAAAHkNhbnRpZGFkIGRlIHRva2VucyBhZHF1aXJpZG9zOgEAAAAYZ2V0VmFsdWVJdGVtVXNlck9yZGVyUXR5AAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAWZ2V0S2V5SXRlbVVzZXJPcmRlclF0eQAAAAEFAAAABGl0ZW0BAAAAHWdldEtleVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQAAAARpdGVtAgAAACJDYW50aWRhZCBkZSB0b2tlbnMgVkdUIHJlYWxpemFkb3M6AQAAAB9nZXRWYWx1ZVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAdZ2V0S2V5U2FsZG9Ub2tlblF0eVN0YXJ0RXRhcGEAAAABBQAAAARpdGVtAAAAAQAAAAFpAQAAAAtwdXJjaGFzZVZHVAAAAAUAAAAEaXRlbQAAAAx1c2VyRG9jdW1lbnQAAAALdXNlckNvdW50cnkAAAAIb3JkZXJRdHkAAAALdG90YWxBbW91bnQEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAAE1VZC4gcHVlZGUgYWRxdWlyaXIgdG9rZW5zIFZHVCB1c2FuZG8gV2F2ZXNLZWVwZXIgeSBzdSB0b2tlbiBkZSBwYWdvIGVuIFdhdmVzLgQAAAAIc3VwcGxpZXIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQQAAAAJcHJlSWNvUXR5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAPYmFsYW5jZVN1cHBsaWVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAhzdXBwbGllcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAt1c2VyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABFjdXJyZW50VG9rZW5QcmljZQkAAGkAAAACCQAAaAAAAAIFAAAAB25vbXZndHUFAAAAA3d2cwUAAAAFdXNkbncDCQAAZwAAAAIAAAAAAAAAAAAJAABlAAAAAgkAAGUAAAACBQAAAA1zdGFydFRvdGFsUXR5BQAAAAlwcmVJY29RdHkFAAAACG9yZGVyUXR5CQAAAgAAAAECAAAAQ0xvIHNlbnRpbW9zLCBwb3IgYWhvcmEgbm8gaGF5IG9mZXJ0YSBkZSB0b2tlbnMgcGFyYSBzdSB0cmFuc2FjY2nDs24DCQAAZgAAAAIFAAAAC3RvdGFsQW1vdW50CAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAAElFbCBtb250byBkZWwgcGFnbyBubyBwdWVkZSBzZXIgbWVub3IgcXVlIGxhIG9yZGVuIGRlIGNvbXByYSBkZWwgYXJ0w61jdWxvAwkAAGYAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAALdG90YWxBbW91bnQJAAACAAAAAQIAAABJRWwgbW9udG8gZGVsIHBhZ28gbm8gcHVlZGUgc2VyIG1heW9yIHF1ZSBsYSBvcmRlbiBkZSBjb21wcmEgZGVsIGFydMOtY3VsbwkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAAxnZXRLZXlFbWlzb3IAAAABBQAAAARpdGVtAgAAABJFY29zaXN0ZW1hIEJpdC1DTzIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABRnZXRLZXlFbWlzaW9uQ291bnRyeQAAAAEFAAAABGl0ZW0CAAAACUUyRS9OMDhQRQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldEtleUVtaXNpb25Db2RlAAAAAQUAAAAEaXRlbQIAAAAORTJFX04wMC1WR1QtMDEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABNnZXRLZXlOb21Ub2tlblByaWNlAAAAAQUAAAAEaXRlbQIAAAAJMTAuMDAgVVNECQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAATZ2V0S2V5c3RhcnRUb3RhbFF0eQAAAAEFAAAABGl0ZW0FAAAADXN0YXJ0VG90YWxRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQkAAGQAAAACCQEAAAAXZ2V0VmFsdWVVc2VySXRlbUNvdW50ZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAEaXRlbQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleVVzZXJEb2N1bWVudAAAAAEFAAAABGl0ZW0FAAAADHVzZXJEb2N1bWVudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldEtleVVzZXJDb3VudHJ5AAAAAQUAAAAEaXRlbQUAAAALdXNlckNvdW50cnkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQUAAAAEaXRlbQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAKU1vbnRvIGRlIEludmVyc2nDs24gfCBQYXJ0aWNpcGFjacOzbiwgd3ZzBQAAAAt0b3RhbEFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAcRXN0YWRvIGRlIHN1IHBlZGlkbywgdG9rZW5zOgIAAAAawqFBZHF1aXNpY2nDs24gQ29uZmlybWFkYSEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0JAABkAAAAAgkBAAAAH2dldFZhbHVlU2FsZG9Ub2tlblF0eVN0YXJ0RXRhcGEAAAABBQAAAARpdGVtBQAAAAhvcmRlclF0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAATU2FsZG8gZGUgVG9rZW5zIFZHVAkAAGUAAAACCQAAZQAAAAIFAAAADXN0YXJ0VG90YWxRdHkJAQAAAB9nZXRWYWx1ZVNhbGRvVG9rZW5RdHlTdGFydEV0YXBhAAAAAQUAAAAEaXRlbQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAhzdXBwbGllcgkAAGQAAAACCQEAAAAXZ2V0VmFsdWVCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAhzdXBwbGllcggFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAJUN0YS4gVkdUIEFkbWluIGRlbCBOMDgtUEUsIGJsb2NrY2hhaW4CAAAAIzNQTlJvcm1RVHcxODZhOTFtclVxTHh0c1lwd3hjN2hnM3c1CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAACZDdGEuIFZHVCBBZG1pbiBkZWwgRTJFIE4wOCwgYmxvY2tjaGFpbgIAAAAjM1BSNUFnN2pQQkdwZnI3VVVVYWNCUlQ1VzVXZVBDOTFCTVcFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAC3VzZXJBZGRyZXNzCQAAaAAAAAIAAAAAAAAAAGQFAAAACG9yZGVyUXR5BQAAAANWR1QJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAKYWRtTjA4VkdUVwkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAEsIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAAABkBQAAAAR1bml0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEWFkbU4wOHN5c1ZHVFBhaXNXCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAABQgFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAAGQFAAAABHVuaXQFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAC093bmVyUHViS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAAAWQFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAYHBzhTtg==", "height": 3221319, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ENLZ1jLAfnU3sQqvLmAAxLAxD3ayg5okNAJo1ghCUypb Next: none Diff:
OldNewDifferences
136136 if ((0 >= ((startTotalQty - preIcoQty) - orderQty)))
137137 then throw("Lo sentimos, por ahora no hay oferta de tokens para su transacción")
138138 else if ((totalAmount > pmt.amount))
139- then throw("Payment Amount can't be less than item Purchase Order")
139+ then throw("El monto del pago no puede ser menor que la orden de compra del artículo")
140140 else if ((pmt.amount > totalAmount))
141- then throw("Payment Amount can't be higher than item Purchase Order")
142- else ScriptResult(WriteSet([DataEntry(getKeyEmisor(item), "Ecosistema Bit-CO2"), DataEntry(getKeyEmisionCountry(item), "E2E/N08PE"), DataEntry(getKeyEmisionCode(item), "E2E_N00-VGT-01"), DataEntry(getKeyNomTokenPrice(item), "10.00 USD"), DataEntry("Estado de su pedido, tokens:", "¡Adquisición Confirmada!"), DataEntry(getKeystartTotalQty(item), startTotalQty), DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyUserDocument(item), userDocument), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry("Monto de Inversión | Participación, wvs", totalAmount), DataEntry("Estado de su pedido, tokens:", "¡Adquisición Confirmada!"), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (getValueSaldoTokenQtyStartEtapa(item) + orderQty)), DataEntry("Saldo de Tokens VGT", ((startTotalQty - getValueSaldoTokenQtyStartEtapa(item)) - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (getValueBalanceSupplier(supplier) + pmt.amount)), DataEntry("Cta. del System VGT del N08PE, blockchain:", "3PNRormQTw186a91mrUqLxtsYpwxc7hg3w5"), DataEntry("Cta. del Admin VGT del N08, blockchain:", "3PR5Ag7jPBGpfr7UUUacBRT5W5WePC91BMW")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), (100 * orderQty), VGT), ScriptTransfer(admN08VGTW, ((75 * pmt.amount) / 100), unit), ScriptTransfer(admN08sysVGTPaisW, ((5 * pmt.amount) / 100), unit)]))
141+ then throw("El monto del pago no puede ser mayor que la orden de compra del artículo")
142+ else ScriptResult(WriteSet([DataEntry(getKeyEmisor(item), "Ecosistema Bit-CO2"), DataEntry(getKeyEmisionCountry(item), "E2E/N08PE"), DataEntry(getKeyEmisionCode(item), "E2E_N00-VGT-01"), DataEntry(getKeyNomTokenPrice(item), "10.00 USD"), DataEntry(getKeystartTotalQty(item), startTotalQty), DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyUserDocument(item), userDocument), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry("Monto de Inversión | Participación, wvs", totalAmount), DataEntry("Estado de su pedido, tokens:", "¡Adquisición Confirmada!"), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (getValueSaldoTokenQtyStartEtapa(item) + orderQty)), DataEntry("Saldo de Tokens VGT", ((startTotalQty - getValueSaldoTokenQtyStartEtapa(item)) - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (getValueBalanceSupplier(supplier) + pmt.amount)), DataEntry("Cta. VGT Admin del N08-PE, blockchain", "3PNRormQTw186a91mrUqLxtsYpwxc7hg3w5"), DataEntry("Cta. VGT Admin del E2E N08, blockchain", "3PR5Ag7jPBGpfr7UUUacBRT5W5WePC91BMW")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), (100 * orderQty), VGT), ScriptTransfer(admN08VGTW, ((75 * pmt.amount) / 100), unit), ScriptTransfer(admN08sysVGTPaisW, ((5 * pmt.amount) / 100), unit)]))
143143 }
144144 }
145145
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let VGT = base58'37ikDy3W9yf7LxF9CgQmXQbLpsnCZNgVYz36U29NR5LJ'
55
66 let startTotalQty = 1000000
77
88 let wvs = 100000000
99
1010 let NONE = "none"
1111
1212 let nomvgtu = 10
1313
1414 let usdnw = 478
1515
1616 let OwnerPubKey = base58'2QpC7DhyDZJhCUH9zxHkr8VW9zayNHJ7EYyVpKTVDeQQ'
1717
1818 let admN08VGTW = Address(base58'3PR5Ag7jPBGpfr7UUUacBRT5W5WePC91BMW')
1919
2020 let admN08sysVGTPaisW = Address(base58'3PNRormQTw186a91mrUqLxtsYpwxc7hg3w5')
2121
2222 func getNumberByKey (key) = {
2323 let num = match getInteger(this, key) {
2424 case a: Int =>
2525 a
2626 case _ =>
2727 0
2828 }
2929 num
3030 }
3131
3232
3333 func getStrByKey (key) = {
3434 let str = match getString(this, key) {
3535 case a: String =>
3636 a
3737 case _ =>
3838 NONE
3939 }
4040 str
4141 }
4242
4343
4444 func getKeyEmisor (item) = "Emisor:"
4545
4646
4747 func getValueEmisor (item) = getStrByKey(getKeyEmisor(item))
4848
4949
5050 func getKeyItemSupplier (supplier) = (supplier + "Nodo-08")
5151
5252
5353 func getKeyEmisionCountry (item) = "Nodo-País:"
5454
5555
5656 func getValueEmisionCountry (item) = getStrByKey(getKeyEmisionCountry(item))
5757
5858
5959 func getKeyEmisionCode (item) = "Código:"
6060
6161
6262 func getValueEmisionCode (item) = getStrByKey(getKeyEmisionCode(item))
6363
6464
6565 func getKeyNomTokenPrice (item) = "Precio Nominal, 1 VGT:"
6666
6767
6868 func getKeystartTotalQty (item) = "Cantidad de tokens emitidos:"
6969
7070
7171 func getValuestartTotalQty (item) = getStrByKey(getKeystartTotalQty(item))
7272
7373
7474 func getKeyBalanceSupplier (supplier) = "Fondos | Monto recaudado, wvs"
7575
7676
7777 func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
7878
7979
8080 func getKeyUserItemCounter (user,item) = "Order_№:"
8181
8282
8383 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
8484
8585
8686 func getKeyUserDocument (item) = "Documento Nacional de Identidad, DNI:"
8787
8888
8989 func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item))
9090
9191
9292 func getKeyUserCountry (item) = "País de Residencia del Usuario:"
9393
9494
9595 func getValueUserCountry (item) = getStrByKey(getKeyUserCountry(item))
9696
9797
9898 func getKeyItemUserOrderQty (item) = "Cantidad de tokens adquiridos:"
9999
100100
101101 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
102102
103103
104104 func getKeySaldoTokenQtyStartEtapa (item) = "Cantidad de tokens VGT realizados:"
105105
106106
107107 func getValueSaldoTokenQtyStartEtapa (item) = getNumberByKey(getKeySaldoTokenQtyStartEtapa(item))
108108
109109
110110 @Callable(i)
111111 func purchaseVGT (item,userDocument,userCountry,orderQty,totalAmount) = {
112112 let pmt = extract(i.payment)
113113 if (isDefined(pmt.assetId))
114114 then throw("Ud. puede adquirir tokens VGT usando WavesKeeper y su token de pago en Waves.")
115115 else {
116116 let supplier = match getString(this, getKeyItemSupplier(item)) {
117117 case a: String =>
118118 a
119119 case _ =>
120120 NONE
121121 }
122122 let preIcoQty = match getInteger(this, getKeySaldoTokenQtyStartEtapa(item)) {
123123 case a: Int =>
124124 a
125125 case _ =>
126126 0
127127 }
128128 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
129129 case a: Int =>
130130 a
131131 case _ =>
132132 0
133133 }
134134 let userAddress = toBase58String(i.caller.bytes)
135135 let currentTokenPrice = ((nomvgtu * wvs) / usdnw)
136136 if ((0 >= ((startTotalQty - preIcoQty) - orderQty)))
137137 then throw("Lo sentimos, por ahora no hay oferta de tokens para su transacción")
138138 else if ((totalAmount > pmt.amount))
139- then throw("Payment Amount can't be less than item Purchase Order")
139+ then throw("El monto del pago no puede ser menor que la orden de compra del artículo")
140140 else if ((pmt.amount > totalAmount))
141- then throw("Payment Amount can't be higher than item Purchase Order")
142- else ScriptResult(WriteSet([DataEntry(getKeyEmisor(item), "Ecosistema Bit-CO2"), DataEntry(getKeyEmisionCountry(item), "E2E/N08PE"), DataEntry(getKeyEmisionCode(item), "E2E_N00-VGT-01"), DataEntry(getKeyNomTokenPrice(item), "10.00 USD"), DataEntry("Estado de su pedido, tokens:", "¡Adquisición Confirmada!"), DataEntry(getKeystartTotalQty(item), startTotalQty), DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyUserDocument(item), userDocument), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry("Monto de Inversión | Participación, wvs", totalAmount), DataEntry("Estado de su pedido, tokens:", "¡Adquisición Confirmada!"), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (getValueSaldoTokenQtyStartEtapa(item) + orderQty)), DataEntry("Saldo de Tokens VGT", ((startTotalQty - getValueSaldoTokenQtyStartEtapa(item)) - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (getValueBalanceSupplier(supplier) + pmt.amount)), DataEntry("Cta. del System VGT del N08PE, blockchain:", "3PNRormQTw186a91mrUqLxtsYpwxc7hg3w5"), DataEntry("Cta. del Admin VGT del N08, blockchain:", "3PR5Ag7jPBGpfr7UUUacBRT5W5WePC91BMW")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), (100 * orderQty), VGT), ScriptTransfer(admN08VGTW, ((75 * pmt.amount) / 100), unit), ScriptTransfer(admN08sysVGTPaisW, ((5 * pmt.amount) / 100), unit)]))
141+ then throw("El monto del pago no puede ser mayor que la orden de compra del artículo")
142+ else ScriptResult(WriteSet([DataEntry(getKeyEmisor(item), "Ecosistema Bit-CO2"), DataEntry(getKeyEmisionCountry(item), "E2E/N08PE"), DataEntry(getKeyEmisionCode(item), "E2E_N00-VGT-01"), DataEntry(getKeyNomTokenPrice(item), "10.00 USD"), DataEntry(getKeystartTotalQty(item), startTotalQty), DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyUserDocument(item), userDocument), DataEntry(getKeyUserCountry(item), userCountry), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry("Monto de Inversión | Participación, wvs", totalAmount), DataEntry("Estado de su pedido, tokens:", "¡Adquisición Confirmada!"), DataEntry(getKeySaldoTokenQtyStartEtapa(item), (getValueSaldoTokenQtyStartEtapa(item) + orderQty)), DataEntry("Saldo de Tokens VGT", ((startTotalQty - getValueSaldoTokenQtyStartEtapa(item)) - orderQty)), DataEntry(getKeyBalanceSupplier(supplier), (getValueBalanceSupplier(supplier) + pmt.amount)), DataEntry("Cta. VGT Admin del N08-PE, blockchain", "3PNRormQTw186a91mrUqLxtsYpwxc7hg3w5"), DataEntry("Cta. VGT Admin del E2E N08, blockchain", "3PR5Ag7jPBGpfr7UUUacBRT5W5WePC91BMW")]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), (100 * orderQty), VGT), ScriptTransfer(admN08VGTW, ((75 * pmt.amount) / 100), unit), ScriptTransfer(admN08sysVGTPaisW, ((5 * pmt.amount) / 100), unit)]))
143143 }
144144 }
145145
146146
147147 @Verifier(tx)
148148 func verify () = match tx {
149149 case t: SetScriptTransaction =>
150150 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
151151 case d: DataTransaction =>
152152 true
153153 case tx: TransferTransaction =>
154154 true
155155 case _ =>
156156 false
157157 }
158158

github/deemru/w8io/786bc32 
45.56 ms