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:
Old | New | Differences | |
---|---|---|---|
5 | 5 | ||
6 | 6 | let b = 150000 | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = 1 | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = 100000000 | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = "none" | |
13 | 13 | ||
14 | - | let f = | |
14 | + | let f = base58'BjzUYgMDny7cYArZdjtnVo62UoVZKiCEeCoKYFnevrWU' | |
15 | 15 | ||
16 | - | func g (h) = { | |
17 | - | let i = { | |
18 | - | let j = getInteger(this, h) | |
19 | - | if ($isInstanceOf(j, "Int")) | |
16 | + | let g = Address(base58'3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm') | |
17 | + | ||
18 | + | let h = 18 | |
19 | + | ||
20 | + | let i = 5 | |
21 | + | ||
22 | + | let j = 10 | |
23 | + | ||
24 | + | let k = 1 | |
25 | + | ||
26 | + | let l = 1 | |
27 | + | ||
28 | + | let m = 2 | |
29 | + | ||
30 | + | func n (o) = { | |
31 | + | let p = { | |
32 | + | let q = getInteger(this, o) | |
33 | + | if ($isInstanceOf(q, "Int")) | |
20 | 34 | then { | |
21 | - | let | |
22 | - | | |
35 | + | let r = q | |
36 | + | r | |
23 | 37 | } | |
24 | 38 | else 0 | |
25 | 39 | } | |
26 | - | | |
40 | + | p | |
27 | 41 | } | |
28 | 42 | ||
29 | 43 | ||
30 | - | func | |
31 | - | let | |
32 | - | let | |
33 | - | if ($isInstanceOf( | |
44 | + | func s (o) = { | |
45 | + | let t = { | |
46 | + | let q = getString(this, o) | |
47 | + | if ($isInstanceOf(q, "String")) | |
34 | 48 | then { | |
35 | - | let | |
36 | - | | |
49 | + | let r = q | |
50 | + | r | |
37 | 51 | } | |
38 | - | else | |
52 | + | else e | |
39 | 53 | } | |
40 | - | | |
54 | + | t | |
41 | 55 | } | |
42 | 56 | ||
43 | 57 | ||
44 | - | func | |
58 | + | func u (v,w) = ("Aceites y Grasas de:" + toBase58String(sha256(toBytes((v + w))))) | |
45 | 59 | ||
46 | 60 | ||
47 | - | func | |
61 | + | func x (y) = (y + "_Prestec SAC") | |
48 | 62 | ||
49 | 63 | ||
50 | - | func | |
64 | + | func z (y) = s(x(y)) | |
51 | 65 | ||
52 | 66 | ||
53 | - | func | |
67 | + | func A (B,y) = "Order_№:" | |
54 | 68 | ||
55 | 69 | ||
56 | - | func | |
70 | + | func C (B,y) = n(A(B, y)) | |
57 | 71 | ||
58 | 72 | ||
59 | - | func | |
73 | + | func D (y) = "UserName:" | |
60 | 74 | ||
61 | 75 | ||
62 | - | func | |
76 | + | func E (y) = s(D(y)) | |
63 | 77 | ||
64 | 78 | ||
65 | - | func | |
79 | + | func F (y) = "UserDNI:" | |
66 | 80 | ||
67 | 81 | ||
68 | - | func | |
82 | + | func G (v) = "Seller_Balance,_aBitCO2" | |
69 | 83 | ||
70 | 84 | ||
71 | - | func | |
85 | + | func H (v) = n(G(v)) | |
72 | 86 | ||
73 | 87 | ||
74 | - | func | |
88 | + | func I (y) = "UserIncome,_%:" | |
75 | 89 | ||
76 | 90 | ||
77 | - | func | |
91 | + | func J (y) = n(I(y)) | |
78 | 92 | ||
79 | 93 | ||
80 | - | func | |
94 | + | func K (y) = "ProjectIncome,_%:" | |
81 | 95 | ||
82 | 96 | ||
83 | - | func | |
97 | + | func L (y) = n(K(y)) | |
84 | 98 | ||
85 | 99 | ||
86 | - | func | |
100 | + | func M (y) = "AgentIncome,_%:" | |
87 | 101 | ||
88 | 102 | ||
89 | - | func | |
103 | + | func N (y) = n(M(y)) | |
90 | 104 | ||
91 | 105 | ||
92 | - | @Callable(H) | |
93 | - | func deposit (I) = { | |
94 | - | let J = extract(H.payment) | |
95 | - | if ((J.assetId != a)) | |
106 | + | func O (y) = "SupplierIncome,_%:" | |
107 | + | ||
108 | + | ||
109 | + | func P (y) = n(O(y)) | |
110 | + | ||
111 | + | ||
112 | + | func Q (y) = "PlatformIncome,_%:" | |
113 | + | ||
114 | + | ||
115 | + | func R (y) = n(Q(y)) | |
116 | + | ||
117 | + | ||
118 | + | func S (y) = "UserCountry:" | |
119 | + | ||
120 | + | ||
121 | + | func T (y) = "UserDiscount, %:" | |
122 | + | ||
123 | + | ||
124 | + | func U (y) = n(T(y)) | |
125 | + | ||
126 | + | ||
127 | + | func V (y) = "Order_qty,_tokens:" | |
128 | + | ||
129 | + | ||
130 | + | func W (y) = n(V(y)) | |
131 | + | ||
132 | + | ||
133 | + | func X (y) = "Balance/Saldo, tokens:" | |
134 | + | ||
135 | + | ||
136 | + | func Y (y) = n(X(y)) | |
137 | + | ||
138 | + | ||
139 | + | @Callable(Z) | |
140 | + | func deposit (aa) = { | |
141 | + | let ab = extract(Z.payment) | |
142 | + | if ((ab.assetId != a)) | |
96 | 143 | then throw("Use cBitCO2 tokens only for the wallet deposit") | |
97 | 144 | else { | |
98 | - | let | |
99 | - | let | |
100 | - | let | |
101 | - | if ($isInstanceOf( | |
145 | + | let v = toBase58String(Z.caller.bytes) | |
146 | + | let ac = { | |
147 | + | let q = getInteger(this, v) | |
148 | + | if ($isInstanceOf(q, "Int")) | |
102 | 149 | then { | |
103 | - | let | |
104 | - | | |
150 | + | let r = q | |
151 | + | r | |
105 | 152 | } | |
106 | 153 | else b | |
107 | 154 | } | |
108 | - | let | |
109 | - | WriteSet([DataEntry( | |
155 | + | let ad = (ac + ab.amount) | |
156 | + | WriteSet([DataEntry(v, ad)]) | |
110 | 157 | } | |
111 | 158 | } | |
112 | 159 | ||
113 | 160 | ||
114 | 161 | ||
115 | - | @Callable( | |
116 | - | func | |
117 | - | let | |
118 | - | if (isDefined( | |
119 | - | then throw("you can adquire | |
162 | + | @Callable(Z) | |
163 | + | func purchaseGTS (y,ae,af,ag,ah) = { | |
164 | + | let ab = extract(Z.payment) | |
165 | + | if (isDefined((ab.assetId != a))) | |
166 | + | then throw("you can adquire these products only by BitCO2 tokens") | |
120 | 167 | else { | |
121 | - | let | |
122 | - | let | |
123 | - | if ($isInstanceOf( | |
168 | + | let v = { | |
169 | + | let q = getString(this, x(y)) | |
170 | + | if ($isInstanceOf(q, "String")) | |
124 | 171 | then { | |
125 | - | let | |
126 | - | | |
172 | + | let r = q | |
173 | + | r | |
127 | 174 | } | |
128 | - | else | |
175 | + | else e | |
129 | 176 | } | |
130 | - | let | |
131 | - | let | |
132 | - | if ($isInstanceOf( | |
177 | + | let ai = { | |
178 | + | let q = getInteger(this, G(v)) | |
179 | + | if ($isInstanceOf(q, "Int")) | |
133 | 180 | then { | |
134 | - | let k = j | |
135 | - | k | |
136 | - | } | |
137 | - | else b | |
138 | - | } | |
139 | - | let R = { | |
140 | - | let j = getInteger(this, v(o)) | |
141 | - | if ($isInstanceOf(j, "Int")) | |
142 | - | then { | |
143 | - | let k = j | |
144 | - | k | |
181 | + | let r = q | |
182 | + | r | |
145 | 183 | } | |
146 | 184 | else 0 | |
147 | 185 | } | |
148 | - | let S = toBase58String(H.caller.bytes) | |
149 | - | let T = ((c * (100 - O)) / 100) | |
150 | - | let U = (P * T) | |
151 | - | if ((U > J.amount)) | |
152 | - | then throw("Payment Amount cannot be less than item Purchase Order") | |
153 | - | else if ((J.amount > U)) | |
186 | + | let aj = toBase58String(Z.caller.bytes) | |
187 | + | let ak = (ag - ((h * ag) / 100)) | |
188 | + | let al = ((ak * i) / 100) | |
189 | + | let am = ((ak * j) / 100) | |
190 | + | let an = ((ak * k) / 100) | |
191 | + | let ao = ((ak * l) / 100) | |
192 | + | let ap = ((ak * m) / 100) | |
193 | + | if ((ag > ab.amount)) | |
194 | + | then throw("Payment Amount can't be less than item Purchase Order") | |
195 | + | else if ((ab.amount > ag)) | |
154 | 196 | then throw("Payment Amount can't be higher than item Purchase Order") | |
155 | - | else ScriptResult(WriteSet([DataEntry( | |
197 | + | else ScriptResult(WriteSet([DataEntry(A(aj, y), (C(aj, y) + 1)), DataEntry(D(y), ae), DataEntry(F(y), af), DataEntry("Payment_amount,_waves", ag), DataEntry("IGV, %", h), DataEntry("SubTotal, gcc/wvs/euros", ak), DataEntry(I(y), al), DataEntry(K(y), am), DataEntry(M(y), an), DataEntry(O(y), ao), DataEntry(Q(y), ap), DataEntry(("Order_Status:_" + aj), "confirmed"), DataEntry(G(v), (ai + ab.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(aj), al, a), ScriptTransfer(addressFromStringValue(v), ao, a)])) | |
156 | 198 | } | |
157 | 199 | } | |
158 | 200 | ||
159 | 201 | ||
160 | 202 | ||
161 | - | @Callable(H) | |
162 | - | func withdraw (r,I) = { | |
163 | - | let S = toBase58String(H.caller.bytes) | |
164 | - | let o = { | |
165 | - | let j = getString(this, q(r)) | |
166 | - | if ($isInstanceOf(j, "String")) | |
203 | + | @Callable(Z) | |
204 | + | func purchase (y,ae,aq,ar,as) = { | |
205 | + | let ab = extract(Z.payment) | |
206 | + | if (isDefined(ab.assetId)) | |
207 | + | then throw("you can adquire cBitCO2 only by Waves tokens") | |
208 | + | else { | |
209 | + | let v = { | |
210 | + | let q = getString(this, x(y)) | |
211 | + | if ($isInstanceOf(q, "String")) | |
212 | + | then { | |
213 | + | let r = q | |
214 | + | r | |
215 | + | } | |
216 | + | else e | |
217 | + | } | |
218 | + | let at = { | |
219 | + | let q = getInteger(this, X(y)) | |
220 | + | if ($isInstanceOf(q, "Int")) | |
221 | + | then { | |
222 | + | let r = q | |
223 | + | r | |
224 | + | } | |
225 | + | else b | |
226 | + | } | |
227 | + | let ai = { | |
228 | + | let q = getInteger(this, G(v)) | |
229 | + | if ($isInstanceOf(q, "Int")) | |
230 | + | then { | |
231 | + | let r = q | |
232 | + | r | |
233 | + | } | |
234 | + | else 0 | |
235 | + | } | |
236 | + | let aj = toBase58String(Z.caller.bytes) | |
237 | + | let au = ((((100 - ar) * c) * d) / 100) | |
238 | + | let ag = (as * au) | |
239 | + | if ((ag > ab.amount)) | |
240 | + | then throw("Payment Amount can't be less than item Purchase Order") | |
241 | + | else if ((ab.amount > ag)) | |
242 | + | then throw("Payment Amount can't be higher than item Purchase Order") | |
243 | + | else ScriptResult(WriteSet([DataEntry(A(aj, y), (C(aj, y) + 1)), DataEntry(X(y), (at - as)), DataEntry(D(y), ae), DataEntry(S(y), aq), DataEntry(T(y), ar), DataEntry(V(y), as), DataEntry("tokenPrice/Supplier, wvs", (c * d)), DataEntry("tokenPrice/User, wvs", au), DataEntry("investedAmount/User, wvs", ag), DataEntry("purchaseOrder/Status:", "confirmed"), DataEntry(G(v), (ai + ab.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(aj), as, a)])) | |
244 | + | } | |
245 | + | } | |
246 | + | ||
247 | + | ||
248 | + | ||
249 | + | @Callable(Z) | |
250 | + | func withdraw (y,aa) = { | |
251 | + | let aj = toBase58String(Z.caller.bytes) | |
252 | + | let v = { | |
253 | + | let q = getString(this, x(y)) | |
254 | + | if ($isInstanceOf(q, "String")) | |
167 | 255 | then { | |
168 | - | let | |
169 | - | | |
256 | + | let r = q | |
257 | + | r | |
170 | 258 | } | |
171 | - | else | |
259 | + | else e | |
172 | 260 | } | |
173 | - | let | |
174 | - | let | |
175 | - | if ($isInstanceOf( | |
261 | + | let at = { | |
262 | + | let q = getInteger(this, X(y)) | |
263 | + | if ($isInstanceOf(q, "Int")) | |
176 | 264 | then { | |
177 | - | let | |
178 | - | | |
265 | + | let r = q | |
266 | + | r | |
179 | 267 | } | |
180 | 268 | else b | |
181 | 269 | } | |
182 | - | let | |
183 | - | if ((0 > | |
270 | + | let ad = (at - aa) | |
271 | + | if ((0 > aa)) | |
184 | 272 | then throw("Can't withdraw negative amount") | |
185 | - | else if ((0 > | |
273 | + | else if ((0 > ad)) | |
186 | 274 | then throw("Not enought /suficiente balance") | |
187 | - | else ScriptResult(WriteSet([DataEntry( | |
275 | + | else ScriptResult(WriteSet([DataEntry(y, ad)]), TransferSet([ScriptTransfer(Z.caller, aa, a)])) | |
188 | 276 | } | |
189 | 277 | ||
190 | 278 | ||
191 | - | @Verifier( | |
192 | - | func | |
193 | - | let | |
194 | - | if ($isInstanceOf( | |
279 | + | @Verifier(av) | |
280 | + | func aw () = { | |
281 | + | let q = av | |
282 | + | if ($isInstanceOf(q, "SetScriptTransaction")) | |
195 | 283 | then { | |
196 | - | let | |
197 | - | sigVerify( | |
284 | + | let ax = q | |
285 | + | sigVerify(av.bodyBytes, av.proofs[0], f) | |
198 | 286 | } | |
199 | - | else if ($isInstanceOf( | |
287 | + | else if ($isInstanceOf(q, "DataTransaction")) | |
200 | 288 | then { | |
201 | - | let | |
289 | + | let ay = q | |
202 | 290 | true | |
203 | 291 | } | |
204 | - | else if ($isInstanceOf( | |
292 | + | else if ($isInstanceOf(q, "TransferTransaction")) | |
205 | 293 | then { | |
206 | - | let | |
207 | - | let | |
208 | - | if (( | |
294 | + | let av = q | |
295 | + | let az = toBase58String(addressFromRecipient(av.recipient).bytes) | |
296 | + | if ((av.sender == g)) | |
209 | 297 | then true | |
210 | 298 | else throw("You can't transferred this token") | |
211 | 299 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'ETbtNp6MBuSM9EfjmLDwctrYEBBiq8CZ7ti7zbwTktry' | |
5 | 5 | ||
6 | 6 | let b = 150000 | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = 1 | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = 100000000 | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = "none" | |
13 | 13 | ||
14 | - | let f = | |
14 | + | let f = base58'BjzUYgMDny7cYArZdjtnVo62UoVZKiCEeCoKYFnevrWU' | |
15 | 15 | ||
16 | - | func g (h) = { | |
17 | - | let i = { | |
18 | - | let j = getInteger(this, h) | |
19 | - | if ($isInstanceOf(j, "Int")) | |
16 | + | let g = Address(base58'3N9GKCsktAL7oPFmaKsgPBoDfu3ijk23Vmm') | |
17 | + | ||
18 | + | let h = 18 | |
19 | + | ||
20 | + | let i = 5 | |
21 | + | ||
22 | + | let j = 10 | |
23 | + | ||
24 | + | let k = 1 | |
25 | + | ||
26 | + | let l = 1 | |
27 | + | ||
28 | + | let m = 2 | |
29 | + | ||
30 | + | func n (o) = { | |
31 | + | let p = { | |
32 | + | let q = getInteger(this, o) | |
33 | + | if ($isInstanceOf(q, "Int")) | |
20 | 34 | then { | |
21 | - | let | |
22 | - | | |
35 | + | let r = q | |
36 | + | r | |
23 | 37 | } | |
24 | 38 | else 0 | |
25 | 39 | } | |
26 | - | | |
40 | + | p | |
27 | 41 | } | |
28 | 42 | ||
29 | 43 | ||
30 | - | func | |
31 | - | let | |
32 | - | let | |
33 | - | if ($isInstanceOf( | |
44 | + | func s (o) = { | |
45 | + | let t = { | |
46 | + | let q = getString(this, o) | |
47 | + | if ($isInstanceOf(q, "String")) | |
34 | 48 | then { | |
35 | - | let | |
36 | - | | |
49 | + | let r = q | |
50 | + | r | |
37 | 51 | } | |
38 | - | else | |
52 | + | else e | |
39 | 53 | } | |
40 | - | | |
54 | + | t | |
41 | 55 | } | |
42 | 56 | ||
43 | 57 | ||
44 | - | func | |
58 | + | func u (v,w) = ("Aceites y Grasas de:" + toBase58String(sha256(toBytes((v + w))))) | |
45 | 59 | ||
46 | 60 | ||
47 | - | func | |
61 | + | func x (y) = (y + "_Prestec SAC") | |
48 | 62 | ||
49 | 63 | ||
50 | - | func | |
64 | + | func z (y) = s(x(y)) | |
51 | 65 | ||
52 | 66 | ||
53 | - | func | |
67 | + | func A (B,y) = "Order_№:" | |
54 | 68 | ||
55 | 69 | ||
56 | - | func | |
70 | + | func C (B,y) = n(A(B, y)) | |
57 | 71 | ||
58 | 72 | ||
59 | - | func | |
73 | + | func D (y) = "UserName:" | |
60 | 74 | ||
61 | 75 | ||
62 | - | func | |
76 | + | func E (y) = s(D(y)) | |
63 | 77 | ||
64 | 78 | ||
65 | - | func | |
79 | + | func F (y) = "UserDNI:" | |
66 | 80 | ||
67 | 81 | ||
68 | - | func | |
82 | + | func G (v) = "Seller_Balance,_aBitCO2" | |
69 | 83 | ||
70 | 84 | ||
71 | - | func | |
85 | + | func H (v) = n(G(v)) | |
72 | 86 | ||
73 | 87 | ||
74 | - | func | |
88 | + | func I (y) = "UserIncome,_%:" | |
75 | 89 | ||
76 | 90 | ||
77 | - | func | |
91 | + | func J (y) = n(I(y)) | |
78 | 92 | ||
79 | 93 | ||
80 | - | func | |
94 | + | func K (y) = "ProjectIncome,_%:" | |
81 | 95 | ||
82 | 96 | ||
83 | - | func | |
97 | + | func L (y) = n(K(y)) | |
84 | 98 | ||
85 | 99 | ||
86 | - | func | |
100 | + | func M (y) = "AgentIncome,_%:" | |
87 | 101 | ||
88 | 102 | ||
89 | - | func | |
103 | + | func N (y) = n(M(y)) | |
90 | 104 | ||
91 | 105 | ||
92 | - | @Callable(H) | |
93 | - | func deposit (I) = { | |
94 | - | let J = extract(H.payment) | |
95 | - | if ((J.assetId != a)) | |
106 | + | func O (y) = "SupplierIncome,_%:" | |
107 | + | ||
108 | + | ||
109 | + | func P (y) = n(O(y)) | |
110 | + | ||
111 | + | ||
112 | + | func Q (y) = "PlatformIncome,_%:" | |
113 | + | ||
114 | + | ||
115 | + | func R (y) = n(Q(y)) | |
116 | + | ||
117 | + | ||
118 | + | func S (y) = "UserCountry:" | |
119 | + | ||
120 | + | ||
121 | + | func T (y) = "UserDiscount, %:" | |
122 | + | ||
123 | + | ||
124 | + | func U (y) = n(T(y)) | |
125 | + | ||
126 | + | ||
127 | + | func V (y) = "Order_qty,_tokens:" | |
128 | + | ||
129 | + | ||
130 | + | func W (y) = n(V(y)) | |
131 | + | ||
132 | + | ||
133 | + | func X (y) = "Balance/Saldo, tokens:" | |
134 | + | ||
135 | + | ||
136 | + | func Y (y) = n(X(y)) | |
137 | + | ||
138 | + | ||
139 | + | @Callable(Z) | |
140 | + | func deposit (aa) = { | |
141 | + | let ab = extract(Z.payment) | |
142 | + | if ((ab.assetId != a)) | |
96 | 143 | then throw("Use cBitCO2 tokens only for the wallet deposit") | |
97 | 144 | else { | |
98 | - | let | |
99 | - | let | |
100 | - | let | |
101 | - | if ($isInstanceOf( | |
145 | + | let v = toBase58String(Z.caller.bytes) | |
146 | + | let ac = { | |
147 | + | let q = getInteger(this, v) | |
148 | + | if ($isInstanceOf(q, "Int")) | |
102 | 149 | then { | |
103 | - | let | |
104 | - | | |
150 | + | let r = q | |
151 | + | r | |
105 | 152 | } | |
106 | 153 | else b | |
107 | 154 | } | |
108 | - | let | |
109 | - | WriteSet([DataEntry( | |
155 | + | let ad = (ac + ab.amount) | |
156 | + | WriteSet([DataEntry(v, ad)]) | |
110 | 157 | } | |
111 | 158 | } | |
112 | 159 | ||
113 | 160 | ||
114 | 161 | ||
115 | - | @Callable( | |
116 | - | func | |
117 | - | let | |
118 | - | if (isDefined( | |
119 | - | then throw("you can adquire | |
162 | + | @Callable(Z) | |
163 | + | func purchaseGTS (y,ae,af,ag,ah) = { | |
164 | + | let ab = extract(Z.payment) | |
165 | + | if (isDefined((ab.assetId != a))) | |
166 | + | then throw("you can adquire these products only by BitCO2 tokens") | |
120 | 167 | else { | |
121 | - | let | |
122 | - | let | |
123 | - | if ($isInstanceOf( | |
168 | + | let v = { | |
169 | + | let q = getString(this, x(y)) | |
170 | + | if ($isInstanceOf(q, "String")) | |
124 | 171 | then { | |
125 | - | let | |
126 | - | | |
172 | + | let r = q | |
173 | + | r | |
127 | 174 | } | |
128 | - | else | |
175 | + | else e | |
129 | 176 | } | |
130 | - | let | |
131 | - | let | |
132 | - | if ($isInstanceOf( | |
177 | + | let ai = { | |
178 | + | let q = getInteger(this, G(v)) | |
179 | + | if ($isInstanceOf(q, "Int")) | |
133 | 180 | then { | |
134 | - | let k = j | |
135 | - | k | |
136 | - | } | |
137 | - | else b | |
138 | - | } | |
139 | - | let R = { | |
140 | - | let j = getInteger(this, v(o)) | |
141 | - | if ($isInstanceOf(j, "Int")) | |
142 | - | then { | |
143 | - | let k = j | |
144 | - | k | |
181 | + | let r = q | |
182 | + | r | |
145 | 183 | } | |
146 | 184 | else 0 | |
147 | 185 | } | |
148 | - | let S = toBase58String(H.caller.bytes) | |
149 | - | let T = ((c * (100 - O)) / 100) | |
150 | - | let U = (P * T) | |
151 | - | if ((U > J.amount)) | |
152 | - | then throw("Payment Amount cannot be less than item Purchase Order") | |
153 | - | else if ((J.amount > U)) | |
186 | + | let aj = toBase58String(Z.caller.bytes) | |
187 | + | let ak = (ag - ((h * ag) / 100)) | |
188 | + | let al = ((ak * i) / 100) | |
189 | + | let am = ((ak * j) / 100) | |
190 | + | let an = ((ak * k) / 100) | |
191 | + | let ao = ((ak * l) / 100) | |
192 | + | let ap = ((ak * m) / 100) | |
193 | + | if ((ag > ab.amount)) | |
194 | + | then throw("Payment Amount can't be less than item Purchase Order") | |
195 | + | else if ((ab.amount > ag)) | |
154 | 196 | then throw("Payment Amount can't be higher than item Purchase Order") | |
155 | - | else ScriptResult(WriteSet([DataEntry( | |
197 | + | else ScriptResult(WriteSet([DataEntry(A(aj, y), (C(aj, y) + 1)), DataEntry(D(y), ae), DataEntry(F(y), af), DataEntry("Payment_amount,_waves", ag), DataEntry("IGV, %", h), DataEntry("SubTotal, gcc/wvs/euros", ak), DataEntry(I(y), al), DataEntry(K(y), am), DataEntry(M(y), an), DataEntry(O(y), ao), DataEntry(Q(y), ap), DataEntry(("Order_Status:_" + aj), "confirmed"), DataEntry(G(v), (ai + ab.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(aj), al, a), ScriptTransfer(addressFromStringValue(v), ao, a)])) | |
156 | 198 | } | |
157 | 199 | } | |
158 | 200 | ||
159 | 201 | ||
160 | 202 | ||
161 | - | @Callable(H) | |
162 | - | func withdraw (r,I) = { | |
163 | - | let S = toBase58String(H.caller.bytes) | |
164 | - | let o = { | |
165 | - | let j = getString(this, q(r)) | |
166 | - | if ($isInstanceOf(j, "String")) | |
203 | + | @Callable(Z) | |
204 | + | func purchase (y,ae,aq,ar,as) = { | |
205 | + | let ab = extract(Z.payment) | |
206 | + | if (isDefined(ab.assetId)) | |
207 | + | then throw("you can adquire cBitCO2 only by Waves tokens") | |
208 | + | else { | |
209 | + | let v = { | |
210 | + | let q = getString(this, x(y)) | |
211 | + | if ($isInstanceOf(q, "String")) | |
212 | + | then { | |
213 | + | let r = q | |
214 | + | r | |
215 | + | } | |
216 | + | else e | |
217 | + | } | |
218 | + | let at = { | |
219 | + | let q = getInteger(this, X(y)) | |
220 | + | if ($isInstanceOf(q, "Int")) | |
221 | + | then { | |
222 | + | let r = q | |
223 | + | r | |
224 | + | } | |
225 | + | else b | |
226 | + | } | |
227 | + | let ai = { | |
228 | + | let q = getInteger(this, G(v)) | |
229 | + | if ($isInstanceOf(q, "Int")) | |
230 | + | then { | |
231 | + | let r = q | |
232 | + | r | |
233 | + | } | |
234 | + | else 0 | |
235 | + | } | |
236 | + | let aj = toBase58String(Z.caller.bytes) | |
237 | + | let au = ((((100 - ar) * c) * d) / 100) | |
238 | + | let ag = (as * au) | |
239 | + | if ((ag > ab.amount)) | |
240 | + | then throw("Payment Amount can't be less than item Purchase Order") | |
241 | + | else if ((ab.amount > ag)) | |
242 | + | then throw("Payment Amount can't be higher than item Purchase Order") | |
243 | + | else ScriptResult(WriteSet([DataEntry(A(aj, y), (C(aj, y) + 1)), DataEntry(X(y), (at - as)), DataEntry(D(y), ae), DataEntry(S(y), aq), DataEntry(T(y), ar), DataEntry(V(y), as), DataEntry("tokenPrice/Supplier, wvs", (c * d)), DataEntry("tokenPrice/User, wvs", au), DataEntry("investedAmount/User, wvs", ag), DataEntry("purchaseOrder/Status:", "confirmed"), DataEntry(G(v), (ai + ab.amount))]), TransferSet([ScriptTransfer(addressFromStringValue(aj), as, a)])) | |
244 | + | } | |
245 | + | } | |
246 | + | ||
247 | + | ||
248 | + | ||
249 | + | @Callable(Z) | |
250 | + | func withdraw (y,aa) = { | |
251 | + | let aj = toBase58String(Z.caller.bytes) | |
252 | + | let v = { | |
253 | + | let q = getString(this, x(y)) | |
254 | + | if ($isInstanceOf(q, "String")) | |
167 | 255 | then { | |
168 | - | let | |
169 | - | | |
256 | + | let r = q | |
257 | + | r | |
170 | 258 | } | |
171 | - | else | |
259 | + | else e | |
172 | 260 | } | |
173 | - | let | |
174 | - | let | |
175 | - | if ($isInstanceOf( | |
261 | + | let at = { | |
262 | + | let q = getInteger(this, X(y)) | |
263 | + | if ($isInstanceOf(q, "Int")) | |
176 | 264 | then { | |
177 | - | let | |
178 | - | | |
265 | + | let r = q | |
266 | + | r | |
179 | 267 | } | |
180 | 268 | else b | |
181 | 269 | } | |
182 | - | let | |
183 | - | if ((0 > | |
270 | + | let ad = (at - aa) | |
271 | + | if ((0 > aa)) | |
184 | 272 | then throw("Can't withdraw negative amount") | |
185 | - | else if ((0 > | |
273 | + | else if ((0 > ad)) | |
186 | 274 | then throw("Not enought /suficiente balance") | |
187 | - | else ScriptResult(WriteSet([DataEntry( | |
275 | + | else ScriptResult(WriteSet([DataEntry(y, ad)]), TransferSet([ScriptTransfer(Z.caller, aa, a)])) | |
188 | 276 | } | |
189 | 277 | ||
190 | 278 | ||
191 | - | @Verifier( | |
192 | - | func | |
193 | - | let | |
194 | - | if ($isInstanceOf( | |
279 | + | @Verifier(av) | |
280 | + | func aw () = { | |
281 | + | let q = av | |
282 | + | if ($isInstanceOf(q, "SetScriptTransaction")) | |
195 | 283 | then { | |
196 | - | let | |
197 | - | sigVerify( | |
284 | + | let ax = q | |
285 | + | sigVerify(av.bodyBytes, av.proofs[0], f) | |
198 | 286 | } | |
199 | - | else if ($isInstanceOf( | |
287 | + | else if ($isInstanceOf(q, "DataTransaction")) | |
200 | 288 | then { | |
201 | - | let | |
289 | + | let ay = q | |
202 | 290 | true | |
203 | 291 | } | |
204 | - | else if ($isInstanceOf( | |
292 | + | else if ($isInstanceOf(q, "TransferTransaction")) | |
205 | 293 | then { | |
206 | - | let | |
207 | - | let | |
208 | - | if (( | |
294 | + | let av = q | |
295 | + | let az = toBase58String(addressFromRecipient(av.recipient).bytes) | |
296 | + | if ((av.sender == g)) | |
209 | 297 | then true | |
210 | 298 | else throw("You can't transferred this token") | |
211 | 299 | } | |
212 | 300 | else false | |
213 | 301 | } | |
214 | 302 |
github/deemru/w8io/169f3d6 76.80 ms ◑![]()