tx · AVRuaY6wd6t3rQnEPRjug8hgk5VhLCGZmXRwnaGysHRL

3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q:  -0.01400000 Waves

2020.07.31 23:24 [1112281] smart account 3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q > SELF 0.00000000 Waves

{ "type": 13, "id": "AVRuaY6wd6t3rQnEPRjug8hgk5VhLCGZmXRwnaGysHRL", "fee": 1400000, "feeAssetId": null, "timestamp": 1596227084052, "version": 1, "sender": "3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q", "senderPublicKey": "6tctCnkRasXYuZWRpzZz9ogLri6aifJ19LTtx9uFQv67", "proofs": [ "5PrGFiEMyMX6YoiY5k2rbLiYEJoQB8GKQ2MHRuyQZndVU4rgTDwq5QqvVTq9mni515WHiu5wq3jhdE5HFsqpTYhV" ], "script": "base64:AAIDAAAAAAAAABAIARIDCgEBEgcKBQgICAEBAAAAKAAAAAAHeEJpdENPMgEAAAAgIARkpqoDew1vpqr6lyVYs5aJelMM/++6xmiHbINU3I0AAAAACHN0YXJ0UXR5AAAAAAAAADqYAAAAAAhub21QcmljZQAAAAAAAAAAAQAAAAADd3ZzAAAAAAAAmJaAAAAAAAROT05FAgAAAARub25lAAAAAAtPd25lclB1YktleQEAAAAgV4Og8/YsMblujmTdzmwpOjQnMNOO3FG4NMv2JsnE5RQAAAAABmlzc3VlcgkBAAAAB0FkZHJlc3MAAAABAQAAABoBVK+FXJ+MAQe/AqC2hmtlg7ih3z/R3ffDMgAAAAAOcHJvamVjdEFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVS4OUE9ySb5EI+tMmuD1pt1+pssRqAnnqMBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAKZ2V0S2V5SXRlbQAAAAIAAAAIc3VwcGxpZXIAAAAFdGl0bGUJAAEsAAAAAgIAAAAbUmVzZXJ2YSBGb3Jlc3RhbCBBbWF6w7NuaWNhCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHN1cHBsaWVyBQAAAAV0aXRsZQEAAAARZ2V0S2V5UHJvcGlldGFyaW8AAAABAAAACHN1cHBsaWVyCQABLAAAAAIFAAAACHN1cHBsaWVyAgAAACNDb211bmlkYWQgQWNodWFyIEthcGF3aSBkZWwgRWN1YWRvcgEAAAATZ2V0VmFsdWVQcm9waWV0YXJpbwAAAAEAAAAIc3VwcGxpZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABFnZXRLZXlQcm9waWV0YXJpbwAAAAEFAAAACHN1cHBsaWVyAQAAABFnZXRLZXlQcm9qZWN0Q29kZQAAAAEAAAALcHJvamVjdENvZGUCAAAAGzAxLUVDL1NHVCAtIEFDSFVBUktBUEFXSS0wMQEAAAARZ2V0S2V5UHJvamVjdE5hbWUAAAABAAAAC3Byb2plY3ROYW1lAgAAACBSZXNlcnZhIEFtYXrDs25pY2EgQWNodWFyLUthcGF3aQEAAAATZ2V0VmFsdWVQcm9qZWN0TmFtZQAAAAEAAAALcHJvamVjdE5hbWUJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABFnZXRLZXlQcm9qZWN0TmFtZQAAAAEFAAAAC3Byb2plY3ROYW1lAQAAABJnZXRLZXlQcm9qZWN0RXRhcGEAAAABAAAADnByb2plY3RBZGRyZXNzAgAAAB1BY2h1YXJLYXBhd2ksIEkgRXRhcGE6IFByZUlDTwEAAAAUZ2V0VmFsdWVQcm9qZWN0RXRhcGEAAAABAAAADnByb2plY3RBZGRyZXNzCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5UHJvamVjdEV0YXBhAAAAAQUAAAAOcHJvamVjdEFkZHJlc3MBAAAAFGdldEtleVByb2plY3RDb3VudHJ5AAAAAQAAAARpdGVtAgAAABZSZXDDumJsaWNhIGRlbCBFY3VhZG9yAQAAABBnZXRLZXlQcm9qZWN0RGV2AAAAAQAAAARpdGVtAgAAABxGdW5kYWNpw7NuIEVjb2zDs2dpY2EgJ05BU0UnAQAAABNnZXRLZXlUb2tlblN0YXJ0UXR5AAAAAQAAAARpdGVtAgAAABQxNTAwMCB0b2tlbnMgQml0LUNPMgEAAAATZ2V0S2V5Tm9tVG9rZW5QcmljZQAAAAEAAAAEaXRlbQIAAAALMTAuMDAgRXVyb3MBAAAAEmdldEtleU1heERlc2N1ZW50bwAAAAEAAAAEaXRlbQIAAAAsMTIuMDAlIGRlbCBQcmVjaW8gTm9taW5hbCBkZSAxIHRva2VuIEJpdC1DTzIBAAAAE2dldEtleU1pblRva2VuUHJpY2UAAAABAAAABGl0ZW0CAAAAHjguODAgRXVyb3MgcG9yIDEgdG9rZW4gQml0LUNPMgEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0CAAAACk9yZGVyX+KEljoBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgAAAAR1c2VyAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRLZXlVc2VySXRlbUNvdW50ZXIAAAACBQAAAAR1c2VyBQAAAARpdGVtAQAAAA5nZXRLZXlVc2VyTmFtZQAAAAEAAAAEaXRlbQIAAAATTm9tYnJlIGRlbCBVc3VhcmlvOgEAAAAQZ2V0VmFsdWVVc2VyTmFtZQAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADmdldEtleVVzZXJOYW1lAAAAAQUAAAAEaXRlbQEAAAASZ2V0S2V5VXNlckRvY3VtZW50AAAAAQAAAARpdGVtAgAAADnihJYgZGUgRG9jdW1lbnRvIE5hY2lvbmFsIGRlIElkZW50aWRhZCAvIEROSSBkZWwgVXN1YXJpbzoBAAAAFGdldFZhbHVlVXNlckRvY3VtZW50AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5VXNlckRvY3VtZW50AAAAAQUAAAAEaXRlbQEAAAARZ2V0S2V5VXNlckNvdW50cnkAAAABAAAABGl0ZW0CAAAAIFBhw61zIGRlIFJlc2lkZW5jaWEgZGVsIFVzdWFyaW86AQAAABNnZXRWYWx1ZVVzZXJDb3VudHJ5AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAARZ2V0S2V5VXNlckNvdW50cnkAAAABBQAAAARpdGVtAQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQAAAARpdGVtAgAAACREZXNjdWVudG8gZWxlamlkbyBwb3IgZWwgVXN1YXJpbywgJToBAAAAGGdldFZhbHVlSXRlbURpc2NvdW50VXNlcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1EaXNjb3VudFVzZXIAAAABBQAAAARpdGVtAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQAAAARpdGVtAgAAACVPcmRlbiBkZSBDb21wcmEsIGNhbnRpZGFkIHNvbGljaXRhZGE6AQAAABhnZXRWYWx1ZUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQUAAAAEaXRlbQEAAAAdZ2V0S2V5U2FsZG9Ub2tlblF0eVN0YXJ0RXRhcGEAAAABAAAABGl0ZW0CAAAALlRva2VucyBPZmVydGFkb3MgZW4gbGEgcHJlc2VudGUgZXRhcGEgLyBTYWxkbzoBAAAAH2dldFZhbHVlU2FsZG9Ub2tlblF0eVN0YXJ0RXRhcGEAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAB1nZXRLZXlTYWxkb1Rva2VuUXR5U3RhcnRFdGFwYQAAAAEFAAAABGl0ZW0BAAAAH2dldEtleUJhbGFuY2VTdXBwbGllclNlbGxJbmNvbWUAAAABAAAACHN1cHBsaWVyAgAAAChJbmdyZXNvcyBwb3IgVmVudGEgRGlyZWN0YSAvIEJsb2NrQ2hhaW46AQAAACFnZXRWYWx1ZUJhbGFuY2VTdXBwbGllclNlbGxJbmNvbWUAAAABAAAACHN1cHBsaWVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAfZ2V0S2V5QmFsYW5jZVN1cHBsaWVyU2VsbEluY29tZQAAAAEFAAAACHN1cHBsaWVyAAAAAgAAAAFpAQAAAAdkZXBvc2l0AAAAAQAAAAZhbW91bnQEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAAd4Qml0Q08yCQAAAgAAAAECAAAALlVzZSBjQml0Q08yIHRva2VucyBvbmx5IGZvciB0aGUgd2FsbGV0IGRlcG9zaXQEAAAACHN1cHBsaWVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWN1cnJlbnRBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAIc3VwcGxp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b3I6AgAAABdDb211bmlkYWQgQWNodWFyIEthcGF3aQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAaRGVzYXJyb2xsYWRvci9SZXNwb25zYWJsZToCAAAAHEZ1bmRhY2nDs24gRWNvbMOzZ2ljYSAnTkFTRScJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAHUV0YXBhcyBkZWwgUHJveWVjdG8sIFByZS1JQ086AgAAAAgyIEV0YXBhcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAjRXRhcGFzIGRlbCBQcm95ZWN0bywgZW4gRWplY3VjacOzbjoCAAAAGkEgRGVmaW5pciwgRnVuZGFjacOzbiBSRURECQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAADhDYW50aWRhZCBUb3RhbCBkZSBUb2tlbnMgYSBFbWl0aXIsIEkgeSBJSSBFdGFwYSBQcmUtSUNPOgIAAAAVMzA1NjkzIHRva2VucyBCaXQtQ08yCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAACBQcmVjaW8gTm9taW5hbCwgMSB0b2tlbiBCaXQtQ08yOgIAAAALMTAuMDAgRXVyb3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAJE3DoXhpbW8gRGVzY3VlbnRvIG9mcmVjaWRvLCBJIEV0YXBhOgIAAAAHMTIuMDAgJQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAARpdGVtCQAAZAAAAAIJAQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAARpdGVtAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAACZUb3RhbCBUb2tlbnMgRW1pdGlkb3MsIEkgRXRhcGEgUHJlLUlDTwUAAAAIc3RhcnRRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlVc2VyTmFtZQAAAAEFAAAABGl0ZW0FAAAACHVzZXJOYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0S2V5VXNlckNvdW50cnkAAAABBQAAAARpdGVtBQAAAAt1c2VyQ291bnRyeQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFmdldEtleUl0ZW1EaXNjb3VudFVzZXIAAAABBQAAAARpdGVtBQAAAAx1c2VyRGlzY291bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRLZXlJdGVtVXNlck9yZGVyUXR5AAAAAQUAAAAEaXRlbQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAGHRva2VuUHJpY2UvU3VwcGxpZXIsIHd2cwkAAGgAAAACBQAAAAhub21QcmljZQUAAAADd3ZzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABR0b2tlblByaWNlL1VzZXIsIHd2cwUAAAAPYnV5ZXJUb2tlblByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABhpbnZlc3RlZEFtb3VudC9Vc2VyLCB3dnMFAAAAC3RvdGFsQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABVwdXJjaGFzZU9yZGVyL1N0YXR1czoCAAAAGsKhQWRxdWlzaWNpw7NuIENvbmZpcm1hZGEhCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAdZ2V0S2V5U2FsZG9Ub2tlblF0eVN0YXJ0RXRhcGEAAAABBQAAAARpdGVtCQAAZQAAAAIFAAAACXByZUljb1F0eQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAB9nZXRLZXlCYWxhbmNlU3VwcGxpZXJTZWxsSW5jb21lAAAAAQUAAAAIc3VwcGxpZXIJAABkAAAAAgUAAAAPYmFsYW5jZVN1cHBsaWVyCAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAiQ3VlbnRhIGRlbCBQcm95ZWN0byBlbiBCbG9ja0NoYWluOgUAAAAIc3VwcGxpZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAIkN1ZW50YSBkZWwgUHJveWVjdG8gZW4gQmxvY2tDaGFpbjoBAAAAGgFUuDlBPckm+RCPrTJrg9abdfqbLEagJ56jBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAAIb3JkZXJRdHkFAAAAB3hCaXRDTzIFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAC093bmVyUHViS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAAAWQFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAQAAAAJcmVjaXBpZW50CQACWAAAAAEICQAEJAAAAAEIBQAAAAJ0eAAAAAlyZWNpcGllbnQAAAAFYnl0ZXMDCQAAAAAAAAIIBQAAAAJ0eAAAAAZzZW5kZXIFAAAABmlzc3VlcgYJAAACAAAAAQIAAAAgWW91IGNhbid0IHRyYW5zZmVycmVkIHRoaXMgdG9rZW4HwL6MVA==", "chainId": 84, "height": 1112281, "spentComplexity": 0 } View: original | compacted Prev: 8rEiqyXLbKBGuXdk8z8iDDEbkq7FVWbKR4e1GGGVNPuh Next: 5rKvEDcTQFXin9hZoLrexok6syP4XpTfcV8XHpngutzz Diff:
OldNewDifferences
55
66 let startQty = 15000
77
8-let nomPrice = 10
8+let nomPrice = 1
99
1010 let wvs = 10000000
1111
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let xBitCO2 = base58'39yw38hm342hiK43SqELTaZRkTWJoBc22XpxmsSiBrsN'
55
66 let startQty = 15000
77
8-let nomPrice = 10
8+let nomPrice = 1
99
1010 let wvs = 10000000
1111
1212 let NONE = "none"
1313
1414 let OwnerPubKey = base58'6tctCnkRasXYuZWRpzZz9ogLri6aifJ19LTtx9uFQv67'
1515
1616 let issuer = Address(base58'3N5v9ndbkGSWy1SfeJSz94tYU8qVNTUJV2q')
1717
1818 let projectAddress = Address(base58'3N6iAhMV5VZ31hJSJT4e3DoaBoiHCPxbZNa')
1919
2020 func getNumberByKey (key) = {
2121 let num = match getInteger(this, key) {
2222 case a: Int =>
2323 a
2424 case _ =>
2525 0
2626 }
2727 num
2828 }
2929
3030
3131 func getStrByKey (key) = {
3232 let str = match getString(this, key) {
3333 case a: String =>
3434 a
3535 case _ =>
3636 NONE
3737 }
3838 str
3939 }
4040
4141
4242 func getKeyItem (supplier,title) = ("Reserva Forestal Amazónica" + toBase58String(sha256(toBytes((supplier + title)))))
4343
4444
4545 func getKeyPropietario (supplier) = (supplier + "Comunidad Achuar Kapawi del Ecuador")
4646
4747
4848 func getValuePropietario (supplier) = getStrByKey(getKeyPropietario(supplier))
4949
5050
5151 func getKeyProjectCode (projectCode) = "01-EC/SGT - ACHUARKAPAWI-01"
5252
5353
5454 func getKeyProjectName (projectName) = "Reserva Amazónica Achuar-Kapawi"
5555
5656
5757 func getValueProjectName (projectName) = getStrByKey(getKeyProjectName(projectName))
5858
5959
6060 func getKeyProjectEtapa (projectAddress) = "AchuarKapawi, I Etapa: PreICO"
6161
6262
6363 func getValueProjectEtapa (projectAddress) = getStrByKey(getKeyProjectEtapa(projectAddress))
6464
6565
6666 func getKeyProjectCountry (item) = "República del Ecuador"
6767
6868
6969 func getKeyProjectDev (item) = "Fundación Ecológica 'NASE'"
7070
7171
7272 func getKeyTokenStartQty (item) = "15000 tokens Bit-CO2"
7373
7474
7575 func getKeyNomTokenPrice (item) = "10.00 Euros"
7676
7777
7878 func getKeyMaxDescuento (item) = "12.00% del Precio Nominal de 1 token Bit-CO2"
7979
8080
8181 func getKeyMinTokenPrice (item) = "8.80 Euros por 1 token Bit-CO2"
8282
8383
8484 func getKeyUserItemCounter (user,item) = "Order_№:"
8585
8686
8787 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
8888
8989
9090 func getKeyUserName (item) = "Nombre del Usuario:"
9191
9292
9393 func getValueUserName (item) = getStrByKey(getKeyUserName(item))
9494
9595
9696 func getKeyUserDocument (item) = "№ de Documento Nacional de Identidad / DNI del Usuario:"
9797
9898
9999 func getValueUserDocument (item) = getStrByKey(getKeyUserDocument(item))
100100
101101
102102 func getKeyUserCountry (item) = "País de Residencia del Usuario:"
103103
104104
105105 func getValueUserCountry (item) = getStrByKey(getKeyUserCountry(item))
106106
107107
108108 func getKeyItemDiscountUser (item) = "Descuento elejido por el Usuario, %:"
109109
110110
111111 func getValueItemDiscountUser (item) = getNumberByKey(getKeyItemDiscountUser(item))
112112
113113
114114 func getKeyItemUserOrderQty (item) = "Orden de Compra, cantidad solicitada:"
115115
116116
117117 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
118118
119119
120120 func getKeySaldoTokenQtyStartEtapa (item) = "Tokens Ofertados en la presente etapa / Saldo:"
121121
122122
123123 func getValueSaldoTokenQtyStartEtapa (item) = getNumberByKey(getKeySaldoTokenQtyStartEtapa(item))
124124
125125
126126 func getKeyBalanceSupplierSellIncome (supplier) = "Ingresos por Venta Directa / BlockChain:"
127127
128128
129129 func getValueBalanceSupplierSellIncome (supplier) = getNumberByKey(getKeyBalanceSupplierSellIncome(supplier))
130130
131131
132132 @Callable(i)
133133 func deposit (amount) = {
134134 let pmt = extract(i.payment)
135135 if ((pmt.assetId != xBitCO2))
136136 then throw("Use cBitCO2 tokens only for the wallet deposit")
137137 else {
138138 let supplier = toBase58String(i.caller.bytes)
139139 let currentAmount = match getInteger(this, supplier) {
140140 case a: Int =>
141141 a
142142 case _ =>
143143 startQty
144144 }
145145 let newAmount = (currentAmount + pmt.amount)
146146 WriteSet([DataEntry(supplier, newAmount)])
147147 }
148148 }
149149
150150
151151
152152 @Callable(i)
153153 func purchase (item,userName,userCountry,userDiscount,orderQty) = {
154154 let pmt = extract(i.payment)
155155 if (isDefined(pmt.assetId))
156156 then throw("you can adquire xBitCO2 only by Waves tokens")
157157 else {
158158 let supplier = match getString(this, getKeyPropietario(item)) {
159159 case a: String =>
160160 a
161161 case _ =>
162162 NONE
163163 }
164164 let preIcoQty = match getInteger(this, getKeySaldoTokenQtyStartEtapa(item)) {
165165 case a: Int =>
166166 a
167167 case _ =>
168168 startQty
169169 }
170170 let balanceSupplier = match getInteger(this, getKeyBalanceSupplierSellIncome(supplier)) {
171171 case a: Int =>
172172 a
173173 case _ =>
174174 0
175175 }
176176 let userAddress = toBase58String(i.caller.bytes)
177177 let buyerTokenPrice = ((((100 - userDiscount) * nomPrice) * wvs) / 100)
178178 let totalAmount = (orderQty * buyerTokenPrice)
179179 if ((totalAmount > pmt.amount))
180180 then throw("Payment Amount can't be less than item Purchase Order")
181181 else if ((pmt.amount > totalAmount))
182182 then throw("Payment Amount can't be higher than item Purchase Order")
183183 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)]))
184184 }
185185 }
186186
187187
188188 @Verifier(tx)
189189 func verify () = match tx {
190190 case t: SetScriptTransaction =>
191191 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
192192 case d: DataTransaction =>
193193 true
194194 case tx: TransferTransaction =>
195195 let recipient = toBase58String(addressFromRecipient(tx.recipient).bytes)
196196 if ((tx.sender == issuer))
197197 then true
198198 else throw("You can't transferred this token")
199199 case _ =>
200200 false
201201 }
202202

github/deemru/w8io/873ac7e 
47.19 ms