tx · FaDN7BV4vpR5HWzoGRQJ4HegNHdmTyuaA2p3z4FpkVrP 3Mu5pJ9Uu3L2tFnR7qxnzmkLNQ8uw8TWkgf: -0.05000000 Waves 2023.10.06 13:19 [2786632] smart account 3Mu5pJ9Uu3L2tFnR7qxnzmkLNQ8uw8TWkgf > SELF 0.00000000 Waves
{ "type": 13, "id": "FaDN7BV4vpR5HWzoGRQJ4HegNHdmTyuaA2p3z4FpkVrP", "fee": 5000000, "feeAssetId": null, "timestamp": 1696587674294, "version": 1, "sender": "3Mu5pJ9Uu3L2tFnR7qxnzmkLNQ8uw8TWkgf", "senderPublicKey": "4iYC6E8AYCEfvjyYp5RTp27apDX1YUZxfkfWrGrGyq1T", "proofs": [ "3C5q57RsPm3iZW9L5zSUuHfDzLGQvcT9KdFbLkxsxjT37mCSHpYURWAmDfvm94biS4nBXRSwe9uPui669Qs53TnR" ], "script": "base64:BgIkCAISCwoJAQEBAQEBCAgIEgQKAggBEgMKAQgSAwoBCBIDCgEIDAEFYXNJbnQBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgNJbnQEA2ludAUHJG1hdGNoMAUDaW50CQACAQIZd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludAEQd3JpdGVDb25zdFN0cmluZwIDa2V5BXZhbHVlAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQNrZXkJAQtTdHJpbmdFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5ABJjb25maWdBZGRyZXNzU3RvcmUCBmNvbmZpZwANY29uZmlnQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBRJjb25maWdBZGRyZXNzU3RvcmUCJ2NoaWxkcmVuLm1haW46IGNvbmZpZyBhZGRyZXNzIG5vdCBmb3VuZAIWaW52YWxpZCBjb25maWcgYWRkcmVzcwAGSEVJR0hUBQZoZWlnaHQBB2FsbG93ZWQBAm9wCQD8BwQFDWNvbmZpZ0FkZHJlc3MCCW9wQWxsb3dlZAkAzAgCBQJvcAUDbmlsBQNuaWwACnB3ckFzc2V0SWQJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCDHBvd2VyQXNzZXRJZAIWcHdyIGFzc2V0IGlkIG5vdCBmb3VuZAAPc3Rha2luZ0NvbnRyYWN0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCEGNvbnRyYWN0X3N0YWtpbmcCE25vIHN0YWtpbmdfY29udHJhY3QCF2ludmFsaWQgc3Rha2luZyBhZGRyZXNzAAhtaW5Qb3dlcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDWNvbmZpZ0FkZHJlc3MJAKwCAgkApQgBBQR0aGlzAh5fbWluX3Bvd2VyX3JlcXVpcmVkX3RvX3Byb2plY3QCIW5vIF9taW5fcG93ZXJfcmVxdWlyZWRfdG9fcHJvamVjdAAQY2hpbGRyZW5Db250cmFjdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAhFjb250cmFjdF9jaGlsZHJlbgIUbm8gY2hpbGRyZW5fY29udHJhY3QCGGludmFsaWQgY2hpbGRyZW4gYWRkcmVzcwAId2F2ZXNEQU8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwIId2F2ZXNEQU8CIzNQRXdSY1lOQVV0b0Z2S3BCaEtvaXdham5aZmRvRFI2aDRoAAdmYWN0b3J5CQELdmFsdWVPckVsc2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCDm1pbmVyc19mYWN0b3J5AiMzUEpWbTd4TFBhYm1Zb2hibnZkZ0dEWUhNd25aeEYyeDE4bQUBaQEHcHJvamVjdAkEc2tpbgdtYXhTa2luDW1pbkNvbW1pdG1lbnQIbG9ja1RpbWULaW52ZXN0bWVudHMObWF4SW52ZXN0bWVudHMQaW52ZXN0bWVudHNUb2tlbgtjb21taXRtZW50cwh0cmVhc3VyZQQBYQkBB2FsbG93ZWQBAgdwcm9qZWN0AwkAAAIFAWEFAWEEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAVwb3dlcgkBBWFzSW50AQkA/AcEBQ9zdGFraW5nQ29udHJhY3QCCXVzZXJQb3dlcgkAzAgCBQR1c2VyBQNuaWwFA25pbAMJAAACBQVwb3dlcgUFcG93ZXIDCQBmAgUIbWluUG93ZXIFBXBvd2VyCQACAQkArAICAjZOb3QgZW5vdWdoIHN0YWtlZCBwb3dlciB0byBjcmVhdGUgYSBwcm9qZWN0LiBSZXF1aXJlZCAJAKQDAQUIbWluUG93ZXIEAXAJAPwHBAUQY2hpbGRyZW5Db250cmFjdAIKcHJvamVjdEZvcgkAzAgCBQR1c2VyCQDMCAIFBHNraW4JAMwIAgUHbWF4U2tpbgkAzAgCBQ1taW5Db21taXRtZW50CQDMCAIFCGxvY2tUaW1lCQDMCAIFC2ludmVzdG1lbnRzCQDMCAIFDm1heEludmVzdG1lbnRzCQDMCAIFEGludmVzdG1lbnRzVG9rZW4JAMwIAgULY29tbWl0bWVudHMJAMwIAgUIdHJlYXN1cmUFA25pbAUDbmlsAwkAAAIFAXAFAXAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQZjb21taXQCBWNoaWxkBmFtb3VudAQBYQkBB2FsbG93ZWQBAgZjb21taXQDCQAAAgUBYQUBYQQHYWNjb3VudAkApQgBCAUBaQZjYWxsZXIEAXMJAPwHBAUPc3Rha2luZ0NvbnRyYWN0Agt1bnN0YWtlRnJvbQkAzAgCBQdhY2NvdW50CQDMCAIFBmFtb3VudAUDbmlsBQNuaWwDCQAAAgUBcwUBcwQBYwkA/AcEBRBjaGlsZHJlbkNvbnRyYWN0Agljb21taXRGb3IJAMwIAgUFY2hpbGQJAMwIAgUHYWNjb3VudAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQpwd3JBc3NldElkBQZhbW91bnQFA25pbAMJAAACBQFjBQFjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY29tbWl0Rm9yTWluZXIBA2ZvcgMJAQIhPQIJAKUIAQgFAWkGY2FsbGVyBQdmYWN0b3J5CQACAQIGZGVuaWVkBAFjCQD8BwQFEGNoaWxkcmVuQ29udHJhY3QCDmNvbW1pdEZvck1pbmVyCQDMCAIFCHdhdmVzREFPCQDMCAIFA2ZvcgUDbmlsCAUBaQhwYXltZW50cwMJAAACBQFjBQFjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKdW5kb0NvbW1pdAEFY2hpbGQEBnBhdXNlZAkBB2FsbG93ZWQBAgp1bmRvQ29tbWl0AwkAAAIFBnBhdXNlZAUGcGF1c2VkBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQEc2tpbgkBBWFzSW50AQkA/AcEBRBjaGlsZHJlbkNvbnRyYWN0Ag11bmRvQ29tbWl0Rm9yCQDMCAIFBWNoaWxkCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsAwkAAAIFBHNraW4FBHNraW4EAXMJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AghzdGFrZUZvcgkAzAgCBQdhZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCnB3ckFzc2V0SWQFBHNraW4FA25pbAMJAAACBQFzBQFzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEEaW5pdAEEY29uZgkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwIFEmNvbmZpZ0FkZHJlc3NTdG9yZQUEY29uZgUDbmlsAD3DIrc=", "chainId": 84, "height": 2786632, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func a (b) = { | |
5 | + | let c = b | |
6 | + | if ($isInstanceOf(c, "Int")) | |
7 | + | then { | |
8 | + | let d = c | |
9 | + | d | |
10 | + | } | |
11 | + | else throw("wrong type, expected: Int") | |
12 | + | } | |
13 | + | ||
14 | + | ||
15 | + | func e (f,b) = if (!(isDefined(getString(this, f)))) | |
16 | + | then StringEntry(f, b) | |
17 | + | else throw(("already initialized: " + f)) | |
18 | + | ||
19 | + | ||
20 | + | let g = "config" | |
21 | + | ||
22 | + | let h = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, g), "children.main: config address not found")), "invalid config address") | |
23 | + | ||
24 | + | let i = height | |
25 | + | ||
26 | + | func j (k) = invoke(h, "opAllowed", [k], nil) | |
27 | + | ||
28 | + | ||
29 | + | let l = fromBase58String(valueOrErrorMessage(getString(h, "powerAssetId"), "pwr asset id not found")) | |
30 | + | ||
31 | + | let m = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(h, "contract_staking"), "no staking_contract")), "invalid staking address") | |
32 | + | ||
33 | + | let n = valueOrErrorMessage(getInteger(h, (toString(this) + "_min_power_required_to_project")), "no _min_power_required_to_project") | |
34 | + | ||
35 | + | let o = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(h, "contract_children"), "no children_contract")), "invalid children address") | |
36 | + | ||
37 | + | let p = valueOrElse(getString(h, "wavesDAO"), "3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h") | |
38 | + | ||
39 | + | let q = valueOrElse(getString(h, "miners_factory"), "3PJVm7xLPabmYohbnvdgGDYHMwnZxF2x18m") | |
40 | + | ||
41 | + | @Callable(r) | |
42 | + | func project (s,t,u,v,w,x,y,z,A) = { | |
43 | + | let B = j("project") | |
44 | + | if ((B == B)) | |
45 | + | then { | |
46 | + | let C = toString(r.caller) | |
47 | + | let D = a(invoke(m, "userPower", [C], nil)) | |
48 | + | if ((D == D)) | |
49 | + | then if ((n > D)) | |
50 | + | then throw(("Not enough staked power to create a project. Required " + toString(n))) | |
51 | + | else { | |
52 | + | let E = invoke(o, "projectFor", [C, s, t, u, v, w, x, y, z, A], nil) | |
53 | + | if ((E == E)) | |
54 | + | then nil | |
55 | + | else throw("Strict value is not equal to itself.") | |
56 | + | } | |
57 | + | else throw("Strict value is not equal to itself.") | |
58 | + | } | |
59 | + | else throw("Strict value is not equal to itself.") | |
60 | + | } | |
61 | + | ||
62 | + | ||
63 | + | ||
64 | + | @Callable(r) | |
65 | + | func commit (F,G) = { | |
66 | + | let B = j("commit") | |
67 | + | if ((B == B)) | |
68 | + | then { | |
69 | + | let H = toString(r.caller) | |
70 | + | let I = invoke(m, "unstakeFrom", [H, G], nil) | |
71 | + | if ((I == I)) | |
72 | + | then { | |
73 | + | let J = invoke(o, "commitFor", [F, H], [AttachedPayment(l, G)]) | |
74 | + | if ((J == J)) | |
75 | + | then nil | |
76 | + | else throw("Strict value is not equal to itself.") | |
77 | + | } | |
78 | + | else throw("Strict value is not equal to itself.") | |
79 | + | } | |
80 | + | else throw("Strict value is not equal to itself.") | |
81 | + | } | |
82 | + | ||
83 | + | ||
84 | + | ||
85 | + | @Callable(r) | |
86 | + | func commitForMiner (K) = if ((toString(r.caller) != q)) | |
87 | + | then throw("denied") | |
88 | + | else { | |
89 | + | let J = invoke(o, "commitForMiner", [p, K], r.payments) | |
90 | + | if ((J == J)) | |
91 | + | then nil | |
92 | + | else throw("Strict value is not equal to itself.") | |
93 | + | } | |
94 | + | ||
95 | + | ||
96 | + | ||
97 | + | @Callable(r) | |
98 | + | func undoCommit (F) = { | |
99 | + | let L = j("undoCommit") | |
100 | + | if ((L == L)) | |
101 | + | then { | |
102 | + | let M = toString(r.caller) | |
103 | + | let s = a(invoke(o, "undoCommitFor", [F, M], nil)) | |
104 | + | if ((s == s)) | |
105 | + | then { | |
106 | + | let I = invoke(m, "stakeFor", [M], [AttachedPayment(l, s)]) | |
107 | + | if ((I == I)) | |
108 | + | then nil | |
109 | + | else throw("Strict value is not equal to itself.") | |
110 | + | } | |
111 | + | else throw("Strict value is not equal to itself.") | |
112 | + | } | |
113 | + | else throw("Strict value is not equal to itself.") | |
114 | + | } | |
115 | + | ||
116 | + | ||
117 | + | ||
118 | + | @Callable(r) | |
119 | + | func init (N) = [e(g, N)] | |
120 | + | ||
121 | + |
github/deemru/w8io/fabc49c 27.62 ms ◑