tx · GQR1RoRHSo1EKfzS98opH8XYSfUAqDMocru71ApSoKSY

3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm:  -0.01400000 Waves

2020.04.02 08:10 [936100] smart account 3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm > SELF 0.00000000 Waves

{ "type": 13, "id": "GQR1RoRHSo1EKfzS98opH8XYSfUAqDMocru71ApSoKSY", "fee": 1400000, "feeAssetId": null, "timestamp": 1585800636191, "version": 1, "sender": "3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm", "senderPublicKey": "BjzUYgMDny7cYArZdjtnVo62UoVZKiCEeCoKYFnevrWU", "proofs": [ "ZA8qAKK4v2VyRNLphsuw5JSpMdrscspHnF4a7dFuwjieFXSKoxw31yEykVgfFXeSAyoLW7pNqijUtkyRtiLV2JR" ], "script": "base64:AAIDAAAAAAAAAB8IARIDCgEBEgcKBQgICAEIEgcKBQgICAEBEgQKAggBAAAAKgAAAAAHYUJpdENPMgEAAAAgx/h6AJ03UJ8qMmy7JIhz3VjOE4OL3ofCGi0oG2fBKJYAAAAACHN0YXJ0UXR5AAAAAAAAAknwAAAAAAhub21QcmljZQAAAAAAAAAAAQAAAAADd3ZzAAAAAAAF9eEAAAAAAAROT05FAgAAAARub25lAAAAAAtPd25lclB1YktleQEAAAAgn5hAF5XTH/wY2Uluv2RH+5Oa9M+LYrB/BsNZzRqthEkAAAAABmlzc3VlcgkBAAAAB0FkZHJlc3MAAAABAQAAABoBVNQ9647ZjWnZOkr44fXhawO5UJXaNwwUVAAAAAADaWd2AAAAAAAAAAASAAAAABF1c2VySW5jb21lUGVyY2VudAAAAAAAAAAABQAAAAAUcHJvamVjdEluY29tZVBlcmNlbnQAAAAAAAAAAAoAAAAAEmFnZW50SW5jb21lUGVyY2VudAAAAAAAAAAAAQAAAAAVc3VwcGxpZXJJbmNvbWVQZXJjZW50AAAAAAAAAAABAAAAABVwbGF0Zm9ybUluY29tZVBlcmNlbnQAAAAAAAAAAAIBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAKZ2V0S2V5SXRlbQAAAAIAAAAIc3VwcGxpZXIAAAAFdGl0bGUJAAEsAAAAAgIAAAAUQWNlaXRlcyB5IEdyYXNhcyBkZToJAAJYAAAAAQkAAfcAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAIc3VwcGxpZXIFAAAABXRpdGxlAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAMX1ByZXN0ZWMgU0FDAQAAABRnZXRWYWx1ZUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtAgAAAApPcmRlcl/ihJY6AQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAAOZ2V0S2V5SXRlbVVzZXIAAAABAAAABGl0ZW0CAAAACVVzZXJOYW1lOgEAAAAQZ2V0VmFsdWVJdGVtVXNlcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAADmdldEtleUl0ZW1Vc2VyAAAAAQUAAAAEaXRlbQEAAAAWZ2V0S2V5SXRlbVVzZXJEb2N1bWVudAAAAAEAAAAEaXRlbQIAAAAIVXNlckROSToBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEAAAAIc3VwcGxpZXICAAAAF1NlbGxlcl9CYWxhbmNlLF9hQml0Q08yAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAIc3VwcGxpZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAAhzdXBwbGllcgEAAAAQZ2V0S2V5SW5jb21lVXNlcgAAAAEAAAAEaXRlbQIAAAAOVXNlckluY29tZSxfJToBAAAAEmdldFZhbHVlSW5jb21lVXNlcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEGdldEtleUluY29tZVVzZXIAAAABBQAAAARpdGVtAQAAABNnZXRLZXlJbmNvbWVQcm9qZWN0AAAAAQAAAARpdGVtAgAAABFQcm9qZWN0SW5jb21lLF8lOgEAAAAVZ2V0VmFsdWVJbmNvbWVQcm9qZWN0AAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAATZ2V0S2V5SW5jb21lUHJvamVjdAAAAAEFAAAABGl0ZW0BAAAAEWdldEtleUluY29tZUFnZW50AAAAAQAAAARpdGVtAgAAAA9BZ2VudEluY29tZSxfJToBAAAAE2dldFZhbHVlSW5jb21lQWdlbnQAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABFnZXRLZXlJbmNvbWVBZ2VudAAAAAEFAAAABGl0ZW0BAAAAFGdldEtleUluY29tZVN1cHBsaWVyAAAAAQAAAARpdGVtAgAAABJTdXBwbGllckluY29tZSxfJToBAAAAFmdldFZhbHVlSW5jb21lU3VwcGxpZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABRnZXRLZXlJbmNvbWVTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAAFGdldEtleUluY29tZVBsYXRmb3JtAAAAAQAAAARpdGVtAgAAABJQbGF0Zm9ybUluY29tZSxfJToBAAAAFmdldFZhbHVlSW5jb21lUGxhdGZvcm0AAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABRnZXRLZXlJbmNvbWVQbGF0Zm9ybQAAAAEFAAAABGl0ZW0BAAAAEmdldEtleUl0ZW1Vc2VyRGF0YQAAAAEAAAAEaXRlbQIAAAAMVXNlckNvdW50cnk6AQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQAAAARpdGVtAgAAABBVc2VyRGlzY291bnQsICU6AQAAABhnZXRWYWx1ZUl0ZW1EaXNjb3VudFVzZXIAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQUAAAAEaXRlbQEAAAAWZ2V0S2V5SXRlbVVzZXJPcmRlclF0eQAAAAEAAAAEaXRlbQIAAAAST3JkZXJfcXR5LF90b2tlbnM6AQAAABhnZXRWYWx1ZUl0ZW1Vc2VyT3JkZXJRdHkAAAABAAAABGl0ZW0J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Zm9ybUluY29tZVBlcmNlbnQAAAAAAAAAAGQDCQAAZgAAAAIFAAAAC3RvdGFsQW1vdW50CAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAADVQYXltZW50IEFtb3VudCBjYW4ndCBiZSBsZXNzIHRoYW4gaXRlbSBQdXJjaGFzZSBPcmRlcgMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAAC3RvdGFsQW1vdW50CQAAAgAAAAECAAAAN1BheW1lbnQgQW1vdW50IGNhbid0IGJlIGhpZ2hlciB0aGFuIGl0ZW0gUHVyY2hhc2UgT3JkZXIJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0JAABkAAAAAgkBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0AAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlJdGVtVXNlcgAAAAEFAAAABGl0ZW0FAAAACHVzZXJOYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAWZ2V0S2V5SXRlbVVzZXJEb2N1bWVudAAAAAEFAAAABGl0ZW0FAAAAB3VzZXJETkkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAFVBheW1lbnRfYW1vdW50LF93YXZlcwUAAAALdG90YWxBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAABklHViwgJQUAAAADaWd2CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABdTdWJUb3RhbCwgZ2NjL3d2cy9ldXJvcwUAAAAIc3ViVG90YWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABBnZXRLZXlJbmNvbWVVc2VyAAAAAQUAAAAEaXRlbQUAAAAKdXNlckluY29tZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAE2dldEtleUluY29tZVByb2plY3QAAAABBQAAAARpdGVtBQAAAA1wcm9qZWN0SW5jb21lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0S2V5SW5jb21lQWdlbnQAAAABBQAAAARpdGVtBQAAAAthZ2VudEluY29tZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFGdldEtleUluY29tZVN1cHBsaWVyAAAAAQUAAAAEaXRlbQUAAAAOc3VwcGxpZXJJbmNvbWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABRnZXRLZXlJbmNvbWVQbGF0Zm9ybQAAAAEFAAAABGl0ZW0FAAAADnBsYXRmb3JtSW5jb21lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAADk9yZGVyX1N0YXR1czpfBQAAAAt1c2VyQWRkcmVzcwIAAAAJY29uZmlybWVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAIc3VwcGxpZXIJAABkAAAAAgUAAAAPYmFsYW5jZVN1cHBsaWVyCAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAALdXNlckFkZHJlc3MFAAAACnVzZXJJbmNvbWUFAAAAB2FCaXRDTzIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAhzdXBwbGllcgUAAAAOc3VwcGxpZXJJbmNvbWUFAAAAB2FCaXRDTzIFAAAAA25pbAAAAAFpAQAAAAhwdXJjaGFzZQAAAAUAAAAEaXRlbQAAAAh1c2VyTmFtZQAAAAt1c2VyQ291bnRyeQAAAAx1c2VyRGlzY291bnQAAAAIb3JkZXJRdHkEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACx5b3UgY2FuIGFkcXVpcmUgY0JpdENPMiBvbmx5IGJ5IFdhdmVzIHRva2VucwQAAAAIc3VwcGxpZXIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwkBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEFAAAABGl0ZW0DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQQAAAAJcHJlSWNvUXR5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAACHN0YXJ0UXR5BAAAAA9iYWxhbmNlU3VwcGxpZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAACHN1cHBsaWVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAD2J1eWVyVG9rZW5QcmljZQkAAGkAAAACCQAAaAAAAAIJAABoAAAAAgkAAGUAAAACAAAAAAAAAABkBQAAAAx1c2VyRGlzY291bnQFAAAACG5vbVByaWNlBQAAAAN3dnMAAAAAAAAAAGQEAAAAC3RvdGFsQW1vdW50CQAAaAAAAAIFAAAACG9yZGVyUXR5BQAAAA9idXllclRva2VuUHJpY2UDCQAAZgAAAAIFAAAAC3RvdGFsQW1vdW50CAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAADVQYXltZW50IEFtb3VudCBjYW4ndCBiZSBsZXNzIHRoYW4gaXRlbSBQdXJjaGFzZSBPcmRlcgMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAAC3RvdGFsQW1vdW50CQAAAgAAAAECAAAAN1BheW1lbnQgQW1vdW50IGNhbid0IGJlIGhpZ2hlciB0aGFuIGl0ZW0gUHVyY2hhc2UgT3JkZXIJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0JAABkAAAAAgkBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0AAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRLZXlCYWxhbmNlUXR5U3VwcGxpZXIAAAABBQAAAARpdGVtCQAAZQAAAAIFAAAACXByZUljb1F0eQUAAAAIb3JkZXJRdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlJdGVtVXNlcgAAAAEFAAAABGl0ZW0FAAAACHVzZXJOYW1lCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVVzZXJEYXRhAAAAAQUAAAAEaXRlbQUAAAALdXNlckNvdW50cnkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRLZXlJdGVtRGlzY291bnRVc2VyAAAAAQUAAAAEaXRlbQUAAAAMdXNlckRpc2NvdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAWZ2V0S2V5SXRlbVVzZXJPcmRlclF0eQAAAAEFAAAABGl0ZW0FAAAACG9yZGVyUXR5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABh0b2tlblByaWNlL1N1cHBsaWVyLCB3dnMJAABoAAAAAgUAAAAIbm9tUHJpY2UFAAAAA3d2cwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAUdG9rZW5QcmljZS9Vc2VyLCB3dnMFAAAAD2J1eWVyVG9rZW5QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAYaW52ZXN0ZWRBbW91bnQvVXNl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", "chainId": 84, "height": 936100, "spentComplexity": 0 } View: original | compacted Prev: BbqMRkVoNxEV9oUmRXZ9Ckq3bJeDafhEF46b81ngcdiu Next: DWo4uXVErK9w38XKceA9CLwmbHRFfYRwMNfrZwWkymt8 Diff:
OldNewDifferences
55
66 let startQty = 150000
77
8-let nomPrice = 100000000
8+let nomPrice = 1
9+
10+let wvs = 100000000
911
1012 let NONE = "none"
1113
1214 let OwnerPubKey = base58'BjzUYgMDny7cYArZdjtnVo62UoVZKiCEeCoKYFnevrWU'
1315
1416 let issuer = Address(base58'3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm')
17+
18+let igv = 18
19+
20+let userIncomePercent = 5
21+
22+let projectIncomePercent = 10
23+
24+let agentIncomePercent = 1
25+
26+let supplierIncomePercent = 1
27+
28+let platformIncomePercent = 2
1529
1630 func getNumberByKey (key) = {
1731 let num = match getInteger(this, key) {
3549 }
3650
3751
38-func getKeyItem (supplier,title) = ("Bit-CO2_token: " + toBase58String(sha256(toBytes((supplier + title)))))
52+func getKeyItem (supplier,title) = ("Aceites y Grasas de:" + toBase58String(sha256(toBytes((supplier + title)))))
3953
4054
41-func getKeyItemSupplier (item) = (item + "_to_Amazonian_Conservation")
55+func getKeyItemSupplier (item) = (item + "_Prestec SAC")
4256
4357
4458 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
45-
46-
47-func getKeyBalanceQtySupplier (item) = "Offered_Qty, balance:"
48-
49-
50-func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
51-
52-
53-func getKeyBalanceSupplier (supplier) = "Seller_Balance,_waves:"
54-
55-
56-func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
5759
5860
5961 func getKeyUserItemCounter (user,item) = "Order_№:"
6870 func getValueItemUser (item) = getStrByKey(getKeyItemUser(item))
6971
7072
73+func getKeyItemUserDocument (item) = "UserDNI:"
74+
75+
76+func getKeyBalanceSupplier (supplier) = "Seller_Balance,_aBitCO2"
77+
78+
79+func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
80+
81+
82+func getKeyIncomeUser (item) = "UserIncome,_%:"
83+
84+
85+func getValueIncomeUser (item) = getNumberByKey(getKeyIncomeUser(item))
86+
87+
88+func getKeyIncomeProject (item) = "ProjectIncome,_%:"
89+
90+
91+func getValueIncomeProject (item) = getNumberByKey(getKeyIncomeProject(item))
92+
93+
94+func getKeyIncomeAgent (item) = "AgentIncome,_%:"
95+
96+
97+func getValueIncomeAgent (item) = getNumberByKey(getKeyIncomeAgent(item))
98+
99+
100+func getKeyIncomeSupplier (item) = "SupplierIncome,_%:"
101+
102+
103+func getValueIncomeSupplier (item) = getNumberByKey(getKeyIncomeSupplier(item))
104+
105+
106+func getKeyIncomePlatform (item) = "PlatformIncome,_%:"
107+
108+
109+func getValueIncomePlatform (item) = getNumberByKey(getKeyIncomePlatform(item))
110+
111+
71112 func getKeyItemUserData (item) = "UserCountry:"
72113
73114
74-func getKeyItemDiscountUser (item) = "UserDiscount,_%:"
115+func getKeyItemDiscountUser (item) = "UserDiscount, %:"
75116
76117
77118 func getValueItemDiscountUser (item) = getNumberByKey(getKeyItemDiscountUser(item))
81122
82123
83124 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
125+
126+
127+func getKeyBalanceQtySupplier (item) = "Balance/Saldo, tokens:"
128+
129+
130+func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
84131
85132
86133 @Callable(i)
104151
105152
106153 @Callable(i)
107-func purchase (item,userName,userData,userDiscount,orderQty) = {
154+func purchaseGTS (item,userName,userDNI,totalAmount,project) = {
155+ let pmt = extract(i.payment)
156+ if (isDefined((pmt.assetId != aBitCO2)))
157+ then throw("you can adquire these products only by BitCO2 tokens")
158+ else {
159+ let supplier = match getString(this, getKeyItemSupplier(item)) {
160+ case a: String =>
161+ a
162+ case _ =>
163+ NONE
164+ }
165+ let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
166+ case a: Int =>
167+ a
168+ case _ =>
169+ 0
170+ }
171+ let userAddress = toBase58String(i.caller.bytes)
172+ let subTotal = (totalAmount - ((igv * totalAmount) / 100))
173+ let userIncome = ((subTotal * userIncomePercent) / 100)
174+ let projectIncome = ((subTotal * projectIncomePercent) / 100)
175+ let agentIncome = ((subTotal * agentIncomePercent) / 100)
176+ let supplierIncome = ((subTotal * supplierIncomePercent) / 100)
177+ let platformIncome = ((subTotal * platformIncomePercent) / 100)
178+ if ((totalAmount > pmt.amount))
179+ then throw("Payment Amount can't be less than item Purchase Order")
180+ else if ((pmt.amount > totalAmount))
181+ then throw("Payment Amount can't be higher than item Purchase Order")
182+ else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyItemUserDocument(item), userDNI), DataEntry("Payment_amount,_waves", totalAmount), DataEntry("IGV, %", igv), DataEntry("SubTotal, gcc/wvs/euros", subTotal), DataEntry(getKeyIncomeUser(item), userIncome), DataEntry(getKeyIncomeProject(item), projectIncome), DataEntry(getKeyIncomeAgent(item), agentIncome), DataEntry(getKeyIncomeSupplier(item), supplierIncome), DataEntry(getKeyIncomePlatform(item), platformIncome), DataEntry(("Order_Status:_" + userAddress), "confirmed"), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), userIncome, aBitCO2), ScriptTransfer(addressFromStringValue(supplier), supplierIncome, aBitCO2)]))
183+ }
184+ }
185+
186+
187+
188+@Callable(i)
189+func purchase (item,userName,userCountry,userDiscount,orderQty) = {
108190 let pmt = extract(i.payment)
109191 if (isDefined(pmt.assetId))
110192 then throw("you can adquire cBitCO2 only by Waves tokens")
128210 0
129211 }
130212 let userAddress = toBase58String(i.caller.bytes)
131- let buyerTokenPrice = ((nomPrice * (100 - userDiscount)) / 100)
213+ let buyerTokenPrice = ((((100 - userDiscount) * nomPrice) * wvs) / 100)
132214 let totalAmount = (orderQty * buyerTokenPrice)
133215 if ((totalAmount > pmt.amount))
134- then throw("Payment Amount cannot be less than item Purchase Order")
216+ then throw("Payment Amount can't be less than item Purchase Order")
135217 else if ((pmt.amount > totalAmount))
136218 then throw("Payment Amount can't be higher than item Purchase Order")
137- else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyItemUserData(item), userData), DataEntry(getKeyItemDiscountUser(item), userDiscount), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry(("UserPrice_1_token,_waves:_" + userAddress), buyerTokenPrice), DataEntry(("Payment_amount,_waves:_" + userAddress), totalAmount), DataEntry(("Order_Status:_" + userAddress), "confirmed"), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, aBitCO2)]))
219+ else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyItemUserData(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:", "confirmed"), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, aBitCO2)]))
138220 }
139221 }
140222
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let aBitCO2 = base58'ETbtNp6MBuSM9EfjmLDwctrYEBBiq8CZ7ti7zbwTktry'
55
66 let startQty = 150000
77
8-let nomPrice = 100000000
8+let nomPrice = 1
9+
10+let wvs = 100000000
911
1012 let NONE = "none"
1113
1214 let OwnerPubKey = base58'BjzUYgMDny7cYArZdjtnVo62UoVZKiCEeCoKYFnevrWU'
1315
1416 let issuer = Address(base58'3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm')
17+
18+let igv = 18
19+
20+let userIncomePercent = 5
21+
22+let projectIncomePercent = 10
23+
24+let agentIncomePercent = 1
25+
26+let supplierIncomePercent = 1
27+
28+let platformIncomePercent = 2
1529
1630 func getNumberByKey (key) = {
1731 let num = match getInteger(this, key) {
1832 case a: Int =>
1933 a
2034 case _ =>
2135 0
2236 }
2337 num
2438 }
2539
2640
2741 func getStrByKey (key) = {
2842 let str = match getString(this, key) {
2943 case a: String =>
3044 a
3145 case _ =>
3246 NONE
3347 }
3448 str
3549 }
3650
3751
38-func getKeyItem (supplier,title) = ("Bit-CO2_token: " + toBase58String(sha256(toBytes((supplier + title)))))
52+func getKeyItem (supplier,title) = ("Aceites y Grasas de:" + toBase58String(sha256(toBytes((supplier + title)))))
3953
4054
41-func getKeyItemSupplier (item) = (item + "_to_Amazonian_Conservation")
55+func getKeyItemSupplier (item) = (item + "_Prestec SAC")
4256
4357
4458 func getValueItemSupplier (item) = getStrByKey(getKeyItemSupplier(item))
45-
46-
47-func getKeyBalanceQtySupplier (item) = "Offered_Qty, balance:"
48-
49-
50-func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
51-
52-
53-func getKeyBalanceSupplier (supplier) = "Seller_Balance,_waves:"
54-
55-
56-func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
5759
5860
5961 func getKeyUserItemCounter (user,item) = "Order_№:"
6062
6163
6264 func getValueUserItemCounter (user,item) = getNumberByKey(getKeyUserItemCounter(user, item))
6365
6466
6567 func getKeyItemUser (item) = "UserName:"
6668
6769
6870 func getValueItemUser (item) = getStrByKey(getKeyItemUser(item))
6971
7072
73+func getKeyItemUserDocument (item) = "UserDNI:"
74+
75+
76+func getKeyBalanceSupplier (supplier) = "Seller_Balance,_aBitCO2"
77+
78+
79+func getValueBalanceSupplier (supplier) = getNumberByKey(getKeyBalanceSupplier(supplier))
80+
81+
82+func getKeyIncomeUser (item) = "UserIncome,_%:"
83+
84+
85+func getValueIncomeUser (item) = getNumberByKey(getKeyIncomeUser(item))
86+
87+
88+func getKeyIncomeProject (item) = "ProjectIncome,_%:"
89+
90+
91+func getValueIncomeProject (item) = getNumberByKey(getKeyIncomeProject(item))
92+
93+
94+func getKeyIncomeAgent (item) = "AgentIncome,_%:"
95+
96+
97+func getValueIncomeAgent (item) = getNumberByKey(getKeyIncomeAgent(item))
98+
99+
100+func getKeyIncomeSupplier (item) = "SupplierIncome,_%:"
101+
102+
103+func getValueIncomeSupplier (item) = getNumberByKey(getKeyIncomeSupplier(item))
104+
105+
106+func getKeyIncomePlatform (item) = "PlatformIncome,_%:"
107+
108+
109+func getValueIncomePlatform (item) = getNumberByKey(getKeyIncomePlatform(item))
110+
111+
71112 func getKeyItemUserData (item) = "UserCountry:"
72113
73114
74-func getKeyItemDiscountUser (item) = "UserDiscount,_%:"
115+func getKeyItemDiscountUser (item) = "UserDiscount, %:"
75116
76117
77118 func getValueItemDiscountUser (item) = getNumberByKey(getKeyItemDiscountUser(item))
78119
79120
80121 func getKeyItemUserOrderQty (item) = "Order_qty,_tokens:"
81122
82123
83124 func getValueItemUserOrderQty (item) = getNumberByKey(getKeyItemUserOrderQty(item))
125+
126+
127+func getKeyBalanceQtySupplier (item) = "Balance/Saldo, tokens:"
128+
129+
130+func getValueBalanceQtySupplier (item) = getNumberByKey(getKeyBalanceQtySupplier(item))
84131
85132
86133 @Callable(i)
87134 func deposit (amount) = {
88135 let pmt = extract(i.payment)
89136 if ((pmt.assetId != aBitCO2))
90137 then throw("Use cBitCO2 tokens only for the wallet deposit")
91138 else {
92139 let supplier = toBase58String(i.caller.bytes)
93140 let currentAmount = match getInteger(this, supplier) {
94141 case a: Int =>
95142 a
96143 case _ =>
97144 startQty
98145 }
99146 let newAmount = (currentAmount + pmt.amount)
100147 WriteSet([DataEntry(supplier, newAmount)])
101148 }
102149 }
103150
104151
105152
106153 @Callable(i)
107-func purchase (item,userName,userData,userDiscount,orderQty) = {
154+func purchaseGTS (item,userName,userDNI,totalAmount,project) = {
155+ let pmt = extract(i.payment)
156+ if (isDefined((pmt.assetId != aBitCO2)))
157+ then throw("you can adquire these products only by BitCO2 tokens")
158+ else {
159+ let supplier = match getString(this, getKeyItemSupplier(item)) {
160+ case a: String =>
161+ a
162+ case _ =>
163+ NONE
164+ }
165+ let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
166+ case a: Int =>
167+ a
168+ case _ =>
169+ 0
170+ }
171+ let userAddress = toBase58String(i.caller.bytes)
172+ let subTotal = (totalAmount - ((igv * totalAmount) / 100))
173+ let userIncome = ((subTotal * userIncomePercent) / 100)
174+ let projectIncome = ((subTotal * projectIncomePercent) / 100)
175+ let agentIncome = ((subTotal * agentIncomePercent) / 100)
176+ let supplierIncome = ((subTotal * supplierIncomePercent) / 100)
177+ let platformIncome = ((subTotal * platformIncomePercent) / 100)
178+ if ((totalAmount > pmt.amount))
179+ then throw("Payment Amount can't be less than item Purchase Order")
180+ else if ((pmt.amount > totalAmount))
181+ then throw("Payment Amount can't be higher than item Purchase Order")
182+ else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyItemUserDocument(item), userDNI), DataEntry("Payment_amount,_waves", totalAmount), DataEntry("IGV, %", igv), DataEntry("SubTotal, gcc/wvs/euros", subTotal), DataEntry(getKeyIncomeUser(item), userIncome), DataEntry(getKeyIncomeProject(item), projectIncome), DataEntry(getKeyIncomeAgent(item), agentIncome), DataEntry(getKeyIncomeSupplier(item), supplierIncome), DataEntry(getKeyIncomePlatform(item), platformIncome), DataEntry(("Order_Status:_" + userAddress), "confirmed"), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), userIncome, aBitCO2), ScriptTransfer(addressFromStringValue(supplier), supplierIncome, aBitCO2)]))
183+ }
184+ }
185+
186+
187+
188+@Callable(i)
189+func purchase (item,userName,userCountry,userDiscount,orderQty) = {
108190 let pmt = extract(i.payment)
109191 if (isDefined(pmt.assetId))
110192 then throw("you can adquire cBitCO2 only by Waves tokens")
111193 else {
112194 let supplier = match getString(this, getKeyItemSupplier(item)) {
113195 case a: String =>
114196 a
115197 case _ =>
116198 NONE
117199 }
118200 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
119201 case a: Int =>
120202 a
121203 case _ =>
122204 startQty
123205 }
124206 let balanceSupplier = match getInteger(this, getKeyBalanceSupplier(supplier)) {
125207 case a: Int =>
126208 a
127209 case _ =>
128210 0
129211 }
130212 let userAddress = toBase58String(i.caller.bytes)
131- let buyerTokenPrice = ((nomPrice * (100 - userDiscount)) / 100)
213+ let buyerTokenPrice = ((((100 - userDiscount) * nomPrice) * wvs) / 100)
132214 let totalAmount = (orderQty * buyerTokenPrice)
133215 if ((totalAmount > pmt.amount))
134- then throw("Payment Amount cannot be less than item Purchase Order")
216+ then throw("Payment Amount can't be less than item Purchase Order")
135217 else if ((pmt.amount > totalAmount))
136218 then throw("Payment Amount can't be higher than item Purchase Order")
137- else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyItemUserData(item), userData), DataEntry(getKeyItemDiscountUser(item), userDiscount), DataEntry(getKeyItemUserOrderQty(item), orderQty), DataEntry(("UserPrice_1_token,_waves:_" + userAddress), buyerTokenPrice), DataEntry(("Payment_amount,_waves:_" + userAddress), totalAmount), DataEntry(("Order_Status:_" + userAddress), "confirmed"), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, aBitCO2)]))
219+ else ScriptResult(WriteSet([DataEntry(getKeyUserItemCounter(userAddress, item), (getValueUserItemCounter(userAddress, item) + 1)), DataEntry(getKeyBalanceQtySupplier(item), (preIcoQty - orderQty)), DataEntry(getKeyItemUser(item), userName), DataEntry(getKeyItemUserData(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:", "confirmed"), DataEntry(getKeyBalanceSupplier(supplier), (balanceSupplier + pmt.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), orderQty, aBitCO2)]))
138220 }
139221 }
140222
141223
142224
143225 @Callable(i)
144226 func withdraw (item,amount) = {
145227 let userAddress = toBase58String(i.caller.bytes)
146228 let supplier = match getString(this, getKeyItemSupplier(item)) {
147229 case a: String =>
148230 a
149231 case _ =>
150232 NONE
151233 }
152234 let preIcoQty = match getInteger(this, getKeyBalanceQtySupplier(item)) {
153235 case a: Int =>
154236 a
155237 case _ =>
156238 startQty
157239 }
158240 let newAmount = (preIcoQty - amount)
159241 if ((0 > amount))
160242 then throw("Can't withdraw negative amount")
161243 else if ((0 > newAmount))
162244 then throw("Not enought /suficiente balance")
163245 else ScriptResult(WriteSet([DataEntry(item, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, aBitCO2)]))
164246 }
165247
166248
167249 @Verifier(tx)
168250 func verify () = match tx {
169251 case t: SetScriptTransaction =>
170252 sigVerify(tx.bodyBytes, tx.proofs[0], OwnerPubKey)
171253 case d: DataTransaction =>
172254 true
173255 case tx: TransferTransaction =>
174256 let recipient = toBase58String(addressFromRecipient(tx.recipient).bytes)
175257 if ((tx.sender == issuer))
176258 then true
177259 else throw("You can't transferred this token")
178260 case _ =>
179261 false
180262 }
181263

github/deemru/w8io/169f3d6 
69.43 ms