@prosopo/procaptcha-bundle 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/Captcha-Cx0ArXYl.js +112 -0
- package/dist/bundle/{ProcaptchaWidget-Boodb_xG.js → ProcaptchaWidget-DDAodo6R.js} +8 -4
- package/dist/bundle/{index-DNBOJlnJ.js → index-HgeMtpKw.js} +1 -1
- package/dist/bundle/procaptcha.bundle.js +1 -1
- package/dist/bundle/{utils-wnaO-SHm.js → utils-CfklpKIj.js} +3 -5
- package/dist/cjs/account/dist/extension/ExtensionWeb2.cjs +1 -1
- package/dist/cjs/procaptcha-pow/dist/Services/Manager.cjs +9 -6
- package/package.json +7 -7
- package/stats.html +1 -1
- package/dist/bundle/Captcha-CX9JR4o1.js +0 -108
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { A as f, P as I, j as n, C as W, W as _, a as C, c as k, e as P, f as R, g as O, i as G, L as H, k as U, m as L, n as j, l as F, d as B, r as b } from "./index-HgeMtpKw.js";
|
|
2
|
+
import { B as K, u as M, n as q, h as w, l as X, w as $, t as z, q as J, A as Q, W as V, K as Y, x as Z, C as ee, m as D, y as te, z as ne } from "./utils-CfklpKIj.js";
|
|
3
|
+
const oe = (a, e) => {
|
|
4
|
+
let o = 0;
|
|
5
|
+
const c = "0".repeat(e);
|
|
6
|
+
for (; ; ) {
|
|
7
|
+
const d = new TextEncoder().encode(o + a);
|
|
8
|
+
if (ae(K(d)).startsWith(c))
|
|
9
|
+
return o;
|
|
10
|
+
o += 1;
|
|
11
|
+
}
|
|
12
|
+
}, ae = (a) => Array.from(a).map((e) => e.toString(16).padStart(2, "0")).join(""), re = (a, e, o, c) => {
|
|
13
|
+
const d = () => ({
|
|
14
|
+
showModal: !1,
|
|
15
|
+
loading: !1,
|
|
16
|
+
index: 0,
|
|
17
|
+
challenge: void 0,
|
|
18
|
+
solutions: void 0,
|
|
19
|
+
isHuman: !1,
|
|
20
|
+
captchaApi: void 0,
|
|
21
|
+
account: void 0
|
|
22
|
+
}), r = () => {
|
|
23
|
+
window.clearTimeout(e.timeout), u({ timeout: void 0 });
|
|
24
|
+
}, i = () => {
|
|
25
|
+
const t = {
|
|
26
|
+
userAccountAddress: "",
|
|
27
|
+
...a
|
|
28
|
+
};
|
|
29
|
+
return I.parse(t);
|
|
30
|
+
}, p = (t) => {
|
|
31
|
+
const s = t.networks[t.defaultNetwork];
|
|
32
|
+
if (!s)
|
|
33
|
+
throw new w("DEVELOPER.NETWORK_NOT_FOUND", {
|
|
34
|
+
context: { error: `No network found for environment ${t.defaultEnvironment}` }
|
|
35
|
+
});
|
|
36
|
+
return s;
|
|
37
|
+
}, A = async () => {
|
|
38
|
+
const t = p(i()), s = await Q.create({
|
|
39
|
+
provider: new V(t.endpoint),
|
|
40
|
+
initWasm: !1,
|
|
41
|
+
noInitWarn: !0
|
|
42
|
+
}), h = "sr25519", m = new Y({ type: h, ss58Format: s.registry.chainSS58 });
|
|
43
|
+
return new Z(s, JSON.parse(ee), t.contract.address, "prosopo", 0, m.addFromAddress(i().account.address || ""));
|
|
44
|
+
}, x = () => {
|
|
45
|
+
if (!e.account)
|
|
46
|
+
throw new w("GENERAL.ACCOUNT_NOT_FOUND", { context: { error: "Account not loaded" } });
|
|
47
|
+
return e.account;
|
|
48
|
+
}, l = () => {
|
|
49
|
+
if (!e.dappAccount)
|
|
50
|
+
throw new w("GENERAL.SITE_KEY_MISSING");
|
|
51
|
+
return e.dappAccount;
|
|
52
|
+
}, u = D(e, o), N = () => {
|
|
53
|
+
r(), u(d());
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
start: async () => {
|
|
57
|
+
if (e.loading || e.isHuman)
|
|
58
|
+
return;
|
|
59
|
+
N();
|
|
60
|
+
const t = i(), s = new M(), h = t.userAccountAddress || (await s.getAccount(t)).account.address;
|
|
61
|
+
if (u({
|
|
62
|
+
loading: !0,
|
|
63
|
+
account: { account: { address: h } }
|
|
64
|
+
}), u({ dappAccount: t.account.address }), await q(100), !t.web2 && !t.userAccountAddress)
|
|
65
|
+
throw new w("GENERAL.ACCOUNT_NOT_FOUND", {
|
|
66
|
+
context: { error: "Account address has not been set for web3 mode" }
|
|
67
|
+
});
|
|
68
|
+
const m = await A(), S = X(o, e, c), v = await $(m.query.getRandomActiveProvider, m.query)(h, l()), y = z(v.provider.url.toString()), E = new J(p(i()), y, l()), g = await E.getPowCaptchaChallenge(h, l()), T = oe(g.challenge, g.difficulty);
|
|
69
|
+
(await E.submitPowCaptchaSolution(g, x().account.address, l(), v, T))[f.verified] && (u({
|
|
70
|
+
isHuman: !0,
|
|
71
|
+
loading: !1
|
|
72
|
+
}), S.onHuman({
|
|
73
|
+
providerUrl: y,
|
|
74
|
+
[f.user]: x().account.address,
|
|
75
|
+
[f.dapp]: l(),
|
|
76
|
+
[f.challenge]: g.challenge,
|
|
77
|
+
[f.blockNumber]: v.blockNumber
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}, le = (a) => {
|
|
82
|
+
const e = a.config, o = e.theme === "light" ? "light" : "dark", c = a.config.theme === "light" ? F : B, d = a.callbacks || {}, [r, i] = te(b.useState, b.useRef), p = D(r, i), A = re(e, r, p, d);
|
|
83
|
+
return n("div", { children: n("div", { style: { maxWidth: "100%", maxHeight: "100%", overflowX: "auto" }, children: n(W, { children: n(_, { children: C("div", { style: k, "data-cy": "button-human", children: [" ", C("div", { style: {
|
|
84
|
+
padding: P,
|
|
85
|
+
border: R,
|
|
86
|
+
backgroundColor: c.palette.background.default,
|
|
87
|
+
borderColor: c.palette.grey[300],
|
|
88
|
+
borderRadius: O,
|
|
89
|
+
display: "flex",
|
|
90
|
+
alignItems: "center",
|
|
91
|
+
flexWrap: "wrap",
|
|
92
|
+
justifyContent: "space-between",
|
|
93
|
+
minHeight: `${G}px`,
|
|
94
|
+
overflow: "hidden"
|
|
95
|
+
}, children: [n("div", { style: { display: "inline-flex", flexDirection: "column" }, children: n("div", { style: {
|
|
96
|
+
display: "flex",
|
|
97
|
+
justifyContent: "flex-start",
|
|
98
|
+
alignItems: "center",
|
|
99
|
+
flexWrap: "wrap"
|
|
100
|
+
}, children: n("div", { style: {
|
|
101
|
+
display: "flex",
|
|
102
|
+
alignItems: "center",
|
|
103
|
+
justifyContent: "center",
|
|
104
|
+
flexDirection: "column",
|
|
105
|
+
verticalAlign: "middle"
|
|
106
|
+
}, children: n("div", { style: {
|
|
107
|
+
display: "flex"
|
|
108
|
+
}, children: n("div", { style: { flex: 1 }, children: r.loading ? n(H, { themeColor: o }) : n(ne, { checked: r.isHuman, onChange: A.start, themeColor: o, labelText: "I am human" }) }) }) }) }) }), n("div", { style: { display: "inline-flex", flexDirection: "column" }, children: n("a", { href: U, target: "_blank", "aria-label": L, children: n("div", { style: { flex: 1 }, children: n(j, { themeColor: o }) }) }) })] })] }) }) }) }) });
|
|
109
|
+
};
|
|
110
|
+
export {
|
|
111
|
+
le as default
|
|
112
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as f, l as Q, d as Z, j as d, a as E, b as g, A as $, h as ce, P as Ie, R as Te, C as Ne, W as Se, c as Pe, e as Oe, f as De, g as _e, i as ke, L as Le, k as He, m as Re, n as Ue } from "./index-
|
|
2
|
-
import { _ as Me, a as We, b as je, I as Ge, R as Fe, g as ze, c as Be, d as $e, i as Ke, P as z, o as Ve, E as Ye, e as S, f as oe, h as v, j as V, k as le, s as Xe, l as qe, w as de, t as ne, m as Je, n as Qe, p as Ze, r as et, q as tt, u as nt, v as rt, A as ot, W as at, K as st, x as it, C as ct, y as lt, z as dt } from "./utils-
|
|
1
|
+
import { r as f, l as Q, d as Z, j as d, a as E, b as g, A as $, h as ce, P as Ie, R as Te, C as Ne, W as Se, c as Pe, e as Oe, f as De, g as _e, i as ke, L as Le, k as He, m as Re, n as Ue } from "./index-HgeMtpKw.js";
|
|
2
|
+
import { _ as Me, a as We, b as je, I as Ge, R as Fe, g as ze, c as Be, d as $e, i as Ke, P as z, o as Ve, E as Ye, e as S, f as oe, h as v, j as V, k as le, s as Xe, l as qe, w as de, t as ne, m as Je, n as Qe, p as Ze, r as et, q as tt, u as nt, v as rt, A as ot, W as at, K as st, x as it, C as ct, y as lt, z as dt } from "./utils-CfklpKIj.js";
|
|
3
3
|
function ut() {
|
|
4
4
|
if (console && console.warn) {
|
|
5
5
|
for (var t, e = arguments.length, n = new Array(e), r = 0; r < e; r++)
|
|
@@ -339,7 +339,7 @@ function St(t, e = []) {
|
|
|
339
339
|
return ge = Tt(() => n.then(() => Nt(t).then((r) => r.map((a) => (a.accounts.subscribe || (a.accounts.subscribe = (s) => (a.accounts.get().then(s).catch(console.error), () => {
|
|
340
340
|
})), a))).catch(() => []).then((r) => {
|
|
341
341
|
const a = r.map(({ name: s, version: o }) => `${s}/${o}`);
|
|
342
|
-
return be(),
|
|
342
|
+
return be(), `${r.length}`, r.length, `${a.join(", ")}`, r;
|
|
343
343
|
}))), ge;
|
|
344
344
|
}
|
|
345
345
|
class Pt extends Ye {
|
|
@@ -765,7 +765,11 @@ function $t(t, e, n, r) {
|
|
|
765
765
|
throw new v("ACCOUNT.NO_POLKADOT_EXTENSION", { context: { error: "Extension not loaded" } });
|
|
766
766
|
return i.extension;
|
|
767
767
|
}, x = async () => {
|
|
768
|
-
const i = c(), u = we(i), h = await ot.create({
|
|
768
|
+
const i = c(), u = we(i), h = await ot.create({
|
|
769
|
+
provider: new at(u.endpoint),
|
|
770
|
+
initWasm: !1,
|
|
771
|
+
noInitWarn: !0
|
|
772
|
+
}), y = "sr25519", C = new st({ type: y, ss58Format: h.registry.chainSS58 });
|
|
769
773
|
return new it(h, JSON.parse(ct), u.contract.address, "prosopo", 0, C.addFromAddress(b().account.address));
|
|
770
774
|
};
|
|
771
775
|
return {
|
|
@@ -4826,7 +4826,7 @@ function bu(e, t, n) {
|
|
|
4826
4826
|
throw new Error(`Index ${t} smaller than 0`);
|
|
4827
4827
|
return e[t];
|
|
4828
4828
|
}
|
|
4829
|
-
const iy = (e) => Array.isArray(e), N0 = (e) => iy(e) ? Lm(new Uint8Array(e)) : e.toString(), oy = Y.lazy(async () => import("./ProcaptchaWidget-
|
|
4829
|
+
const iy = (e) => Array.isArray(e), N0 = (e) => iy(e) ? Lm(new Uint8Array(e)) : e.toString(), oy = Y.lazy(async () => import("./ProcaptchaWidget-DDAodo6R.js")), ay = (e) => D(Y.Suspense, { fallback: D(Os, { darkMode: e.config.theme }), children: D(oy, { config: e.config, callbacks: e.callbacks }) }), Kd = ay, ly = Y.lazy(async () => import("./Captcha-Cx0ArXYl.js")), Gd = (e) => D(Y.Suspense, { fallback: D(Os, { darkMode: e.config.theme }), children: D(ly, { config: e.config, callbacks: e.callbacks }) });
|
|
4830
4830
|
var sy = "1.9.0", V = {
|
|
4831
4831
|
// Object is used instead of Typescript enum to avoid emitting IIFE which might be affected by further tree-shaking.
|
|
4832
4832
|
// See example of compiled enums https://stackoverflow.com/q/47363996)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var X_ = Object.defineProperty;
|
|
2
2
|
var G_ = (n, e, t) => e in n ? X_(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
|
|
3
3
|
var b = (n, e, t) => (G_(n, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
|
-
import { o as Vc, p as Ne, u as pe, z as X, r as is, q as Z_, s as J_, w as iM, T as sM, t as aM, v as oM, x as lM, y as cM, B as uM, l as K_, d as Y_, a as Q_, j as gd, b as H, _ as wa, D as Ur, E as Ci, F as cn, G as $_, H as On, I as Xo, J as Yn, K as ev, M as tv, N as nv, O as $p, Q as xa, S as Qn, U as rv, A as bn } from "./index-
|
|
4
|
+
import { o as Vc, p as Ne, u as pe, z as X, r as is, q as Z_, s as J_, w as iM, T as sM, t as aM, v as oM, x as lM, y as cM, B as uM, l as K_, d as Y_, a as Q_, j as gd, b as H, _ as wa, D as Ur, E as Ci, F as cn, G as $_, H as On, I as Xo, J as Yn, K as ev, M as tv, N as nv, O as $p, Q as xa, S as Qn, U as rv, A as bn } from "./index-HgeMtpKw.js";
|
|
5
5
|
function iv(n, e) {
|
|
6
6
|
for (var t = 0; t < e.length; t++) {
|
|
7
7
|
const r = e[t];
|
|
@@ -30182,7 +30182,7 @@ class OM extends aI {
|
|
|
30182
30182
|
maxShadowBlur: 50,
|
|
30183
30183
|
numberOfRounds: 5,
|
|
30184
30184
|
seed: 42
|
|
30185
|
-
}, r = await this.getFingerprint(), i = NS(t.numberOfRounds, t.seed, t), s = Fg([i, r].join(""), 128).slice(2), a = et(s), o = QC(a), l = await Xa.create({ provider: e, initWasm: !1 }), c = "ed25519", f = new Ic({ type: c, ss58Format: l.registry.chainSS58 }).addFromMnemonic(o), m = f.address.length === 42 ? f.address : oo($t(f.address), l.registry.chainSS58);
|
|
30185
|
+
}, r = await this.getFingerprint(), i = NS(t.numberOfRounds, t.seed, t), s = Fg([i, r].join(""), 128).slice(2), a = et(s), o = QC(a), l = await Xa.create({ provider: e, initWasm: !1, noInitWarn: !0 }), c = "ed25519", f = new Ic({ type: c, ss58Format: l.registry.chainSS58 }).addFromMnemonic(o), m = f.address.length === 42 ? f.address : oo($t(f.address), l.registry.chainSS58);
|
|
30186
30186
|
return {
|
|
30187
30187
|
address: m,
|
|
30188
30188
|
type: c,
|
|
@@ -30889,7 +30889,7 @@ let yO = class {
|
|
|
30889
30889
|
return N.buildSubmittableExtrinsic(this.__apiPromise, this.__nativeContract, "setCodeHash", [e], t);
|
|
30890
30890
|
}
|
|
30891
30891
|
};
|
|
30892
|
-
const Gp = '{"source":{"hash":"0x3f67bbf392cf02077fa30c908b8e7f9459938f4e27d9b58625e9a25b549a5c32","language":"ink! 4.3.0","compiler":"rustc 1.69.0","build_info":{"build_mode":"Debug","cargo_contract_version":"3.0.1","rust_toolchain":"stable-x86_64-unknown-linux-gnu","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"captcha","version":"0.3.4","authors":["Chris Taylor <chris@prosopo.io>","George Oastler <george@prosopo.io>","Vincenzo Ferrara","Siniša Čanak"]},"spec":{"constructors":[{"args":[],"default":false,"docs":["Constructor"],"label":"new","payable":true,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x9bae9d5e"},{"args":[],"default":false,"docs":[],"label":"new_panic","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":15},"selector":"0x794560e8"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":7},"balance":{"displayName":["Balance"],"type":0},"blockNumber":{"displayName":["BlockNumber"],"type":1},"chainExtension":{"displayName":["ChainExtension"],"type":65},"hash":{"displayName":["Hash"],"type":4},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":64}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":14},"messages":[{"args":[],"default":false,"docs":[" Get the git commit id from when this contract was built"],"label":"get_git_commit_id","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0x3685e994"},{"args":[],"default":false,"docs":[" the admin which can control this contract. set to author/instantiator by default"],"label":"get_admin","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":18},"selector":"0x57b8a8a7"},{"args":[],"default":false,"docs":[" Get all payee options"],"label":"get_payees","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0xf334a6d7"},{"args":[],"default":false,"docs":[" Get all dapp payee options"],"label":"get_dapp_payees","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":22},"selector":"0xcce851af"},{"args":[],"default":false,"docs":[" Get all status options"],"label":"get_statuses","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":25},"selector":"0xd39608f0"},{"args":[],"default":false,"docs":[" Get contract provider minimum stake default."],"label":"get_provider_stake_threshold","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0x3e7e8941"},{"args":[],"default":false,"docs":[" Get contract dapp minimum stake default."],"label":"get_dapp_stake_threshold","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0xc9834fee"},{"args":[],"default":false,"docs":[" the maximum fee a provider can charge for a commit"],"label":"get_max_provider_fee","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0xd799cf93"},{"args":[],"default":false,"docs":[" the minimum number of providers needed for the contract to function"],"label":"get_min_num_active_providers","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":30},"selector":"0xa200bea1"},{"args":[],"default":false,"docs":[" the time to complete a block, 6 seconds by default"],"label":"get_block_time","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":30},"selector":"0x8d3f151d"},{"args":[],"default":false,"docs":[" the max age of a commit for a user before it is removed from the history, in seconds"],"label":"get_max_user_history_age_seconds","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0xcab4fa0a"},{"args":[],"default":false,"docs":[" the max number of commits stored for a single user"],"label":"get_max_user_history_len","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":30},"selector":"0xfb715e71"},{"args":[],"default":false,"docs":[" the max age of a commit for a user before it is removed from the history, in blocks"],"label":"get_max_user_history_age_blocks","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0x6f3337c3"},{"args":[{"label":"url","type":{"displayName":["Vec"],"type":2}},{"label":"fee","type":{"displayName":["u32"],"type":1}},{"label":"payee","type":{"displayName":["Payee"],"type":21}}],"default":false,"docs":[" Register a provider, their url and fee"],"label":"provider_register","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xc66f9a2a"},{"args":[{"label":"url","type":{"displayName":["Vec"],"type":2}},{"label":"fee","type":{"displayName":["u32"],"type":1}},{"label":"payee","type":{"displayName":["Payee"],"type":21}}],"default":false,"docs":[" Update an existing provider, their url, fee and deposit funds"],"label":"provider_update","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xd2f70de8"},{"args":[],"default":false,"docs":[" De-activate a provider by setting their status to Deactivated"],"label":"provider_deactivate","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xa65232da"},{"args":[],"default":false,"docs":[" Unstake and deactivate the provider\'s service, returning stake"],"label":"provider_deregister","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x5eff53cf"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get an existing provider"],"label":"get_provider","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":32},"selector":"0x457c7444"},{"args":[],"default":false,"docs":[" Fund a provider"],"label":"provider_fund","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x54ee83bb"},{"args":[{"label":"dataset_id","type":{"displayName":["Hash"],"type":4}},{"label":"dataset_id_content","type":{"displayName":["Hash"],"type":4}}],"default":false,"docs":[" Add a new data set"],"label":"provider_set_dataset","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xb0e7ab99"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get an existing dapp"],"label":"get_dapp","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":35},"selector":"0xf96477c0"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}},{"label":"payee","type":{"displayName":["DappPayee"],"type":24}}],"default":false,"docs":[" Register a dapp"],"label":"dapp_register","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x42b45efa"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}},{"label":"payee","type":{"displayName":["DappPayee"],"type":24}},{"label":"owner","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Update a dapp with new funds, setting status as appropriate"],"label":"dapp_update","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x5dbfa904"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Fund dapp account to pay for services, if the Dapp caller is registered in self.dapps"],"label":"dapp_fund","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x55da62a9"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Cancel services as a dapp, returning remaining tokens"],"label":"dapp_deregister","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xdc7da4d5"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Deactivate a dapp, leaving stake intact"],"label":"dapp_deactivate","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x94718d6f"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[],"label":"get_user_history_summary","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":38},"selector":"0x3be12ad6"},{"args":[{"label":"commit","type":{"displayName":["Commit"],"type":41}}],"default":false,"docs":[" Provider submits a captcha solution commitment"],"label":"provider_commit","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x57876316"},{"args":[{"label":"commits","type":{"displayName":["Vec"],"type":44}}],"default":false,"docs":[" Provider submits 0-many captcha solution commitments"],"label":"provider_commit_many","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xc8d4b3b2"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}},{"label":"threshold","type":{"displayName":["u8"],"type":3}}],"default":false,"docs":[" Checks if the user is a human (true) as they have a solution rate higher than a % threshold or a bot (false)"," Threshold is decided by the calling user"," Threshold is between 0-200, i.e. 0-100% in 0.5% increments. E.g. 100 = 50%, 200 = 100%, 0 = 0%, 50 = 25%, etc."],"label":"dapp_operator_is_human_user","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":45},"selector":"0xbe7b6ef9"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get the last correct captcha for a user"],"label":"dapp_operator_last_correct_captcha","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":48},"selector":"0xbe930f18"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get a dapp user",""," Returns an error if the user does not exist"],"label":"get_user","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":51},"selector":"0xa4ca534e"},{"args":[{"label":"commit_id","type":{"displayName":["Hash"],"type":4}}],"default":false,"docs":[" Get a solution commitment",""," Returns an error if the commitment does not exist"],"label":"get_commit","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":54},"selector":"0x5329f551"},{"args":[{"label":"provider_accounts","type":{"displayName":["Vec"],"type":8}}],"default":false,"docs":[" List providers given an array of account id",""," Returns empty if none were matched"],"label":"list_providers_by_accounts","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":56},"selector":"0x52f0d2cb"},{"args":[{"label":"statuses","type":{"displayName":["Vec"],"type":26}}],"default":false,"docs":[" List providers given an array of status",""," Returns empty if none were matched"],"label":"list_providers_by_status","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":56},"selector":"0x54b28ab4"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}},{"label":"dapp_contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get a random active provider",""," Returns error if no active provider is found"],"label":"get_random_active_provider","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":59},"selector":"0x4aee5bad"},{"args":[],"default":false,"docs":[" Get the AccountIds of all Providers ever registered",""," Returns {Vec<AccountId>}"],"label":"get_all_provider_accounts","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":62},"selector":"0x5052021f"},{"args":[{"label":"len","type":{"displayName":["u128"],"type":0}},{"label":"user_account","type":{"displayName":["AccountId"],"type":7}},{"label":"dapp_contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get a random number from 0 to `len` - 1 inclusive. The user account is added to the seed for additional random entropy."],"label":"get_random_number","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0x2306aecd"},{"args":[],"default":false,"docs":[" Terminate this contract and return any/all funds in this contract to the destination"],"label":"terminate","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x476d839f"},{"args":[{"label":"amount","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Withdraw some funds from the contract to the specified destination"],"label":"withdraw","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x410fcc9d"},{"args":[{"label":"code_hash","type":{"displayName":[],"type":5}}],"default":false,"docs":[" Set the code hash for this contract"],"label":"set_code_hash","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x9e5c5758"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"enum":{"dispatchKey":"0x31f906a7","name":"GovernanceStatus","variants":{"0":{"fields":[],"name":"Active"},"1":{"fields":[],"name":"Inactive"}}}},"name":"status"},{"layout":{"leaf":{"key":"0x31f906a7","ty":0}},"name":"balance"},{"layout":{"leaf":{"key":"0x31f906a7","ty":1}},"name":"fee"},{"layout":{"enum":{"dispatchKey":"0x31f906a7","name":"Payee","variants":{"0":{"fields":[],"name":"Provider"},"1":{"fields":[],"name":"Dapp"}}}},"name":"payee"},{"layout":{"leaf":{"key":"0x31f906a7","ty":2}},"name":"url"},{"layout":{"leaf":{"key":"0x31f906a7","ty":4}},"name":"dataset_id"},{"layout":{"leaf":{"key":"0x31f906a7","ty":4}},"name":"dataset_id_content"}],"name":"Provider"}},"root_key":"0x31f906a7"}},"name":"providers"},{"layout":{"root":{"layout":{"leaf":{"key":"0x25c2603c","ty":6}},"root_key":"0x25c2603c"}},"name":"provider_accounts"},{"layout":{"root":{"layout":{"leaf":{"key":"0xd1b08cc7","ty":7}},"root_key":"0xd1b08cc7"}},"name":"urls"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"enum":{"dispatchKey":"0x14493d1d","name":"GovernanceStatus","variants":{"0":{"fields":[],"name":"Active"},"1":{"fields":[],"name":"Inactive"}}}},"name":"status"},{"layout":{"leaf":{"key":"0x14493d1d","ty":0}},"name":"balance"},{"layout":{"leaf":{"key":"0x14493d1d","ty":7}},"name":"owner"},{"layout":{"enum":{"dispatchKey":"0x14493d1d","name":"DappPayee","variants":{"0":{"fields":[],"name":"Provider"},"1":{"fields":[],"name":"Dapp"},"2":{"fields":[],"name":"Any"}}}},"name":"payee"}],"name":"Dapp"}},"root_key":"0x14493d1d"}},"name":"dapps"},{"layout":{"root":{"layout":{"leaf":{"key":"0x455ca62f","ty":6}},"root_key":"0x455ca62f"}},"name":"dapp_contracts"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x81a766df","ty":4}},"name":"id"},{"layout":{"leaf":{"key":"0x81a766df","ty":7}},"name":"user_account"},{"layout":{"leaf":{"key":"0x81a766df","ty":4}},"name":"dataset_id"},{"layout":{"enum":{"dispatchKey":"0x81a766df","name":"CaptchaStatus","variants":{"0":{"fields":[],"name":"Pending"},"1":{"fields":[],"name":"Approved"},"2":{"fields":[],"name":"Disapproved"}}}},"name":"status"},{"layout":{"leaf":{"key":"0x81a766df","ty":7}},"name":"dapp_contract"},{"layout":{"leaf":{"key":"0x81a766df","ty":7}},"name":"provider_account"},{"layout":{"leaf":{"key":"0x81a766df","ty":1}},"name":"requested_at"},{"layout":{"leaf":{"key":"0x81a766df","ty":1}},"name":"completed_at"},{"layout":{"array":{"layout":{"leaf":{"key":"0x81a766df","ty":3}},"len":64,"offset":"0x81a766df"}},"name":"user_signature"}],"name":"Commit"}},"root_key":"0x81a766df"}},"name":"commits"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x5a3119c3","ty":9}},"name":"history"}],"name":"User"}},"root_key":"0x5a3119c3"}},"name":"users"},{"layout":{"root":{"layout":{"leaf":{"key":"0x43f9649b","ty":6}},"root_key":"0x43f9649b"}},"name":"user_accounts"}],"name":"Captcha"}},"root_key":"0xabcdef01"}},"types":[{"id":0,"type":{"def":{"primitive":"u128"}}},{"id":1,"type":{"def":{"primitive":"u32"}}},{"id":2,"type":{"def":{"sequence":{"type":3}}}},{"id":3,"type":{"def":{"primitive":"u8"}}},{"id":4,"type":{"def":{"composite":{"fields":[{"type":5,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":5,"type":{"def":{"array":{"len":32,"type":3}}}},{"id":6,"type":{"def":{"composite":{"fields":[{"type":8}]}},"params":[{"name":"T","type":7}],"path":["BTreeSet"]}},{"id":7,"type":{"def":{"composite":{"fields":[{"type":5,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":8,"type":{"def":{"sequence":{"type":7}}}},{"id":9,"type":{"def":{"sequence":{"type":4}}}},{"id":10,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":14}],"path":["Result"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":12}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":12},{"name":"E","type":13}],"path":["Result"]}},{"id":12,"type":{"def":{"tuple":[]}}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAuthorised"},{"index":1,"name":"TransferFailed"},{"index":2,"name":"SetCodeHashFailed"},{"index":3,"name":"InvalidDestination"},{"index":4,"name":"UnknownMessage"},{"index":5,"name":"ProviderAccountExists"},{"index":6,"name":"ProviderExists"},{"index":7,"name":"ProviderAccountDoesNotExist"},{"index":8,"name":"ProviderDoesNotExist"},{"index":9,"name":"ProviderInsufficientFunds"},{"index":10,"name":"ProviderInactive"},{"index":11,"name":"ProviderUrlUsed"},{"index":12,"name":"DappExists"},{"index":13,"name":"DappDoesNotExist"},{"index":14,"name":"DappInactive"},{"index":15,"name":"DappInsufficientFunds"},{"index":16,"name":"CaptchaDataDoesNotExist"},{"index":17,"name":"CommitDoesNotExist"},{"index":18,"name":"DappUserDoesNotExist"},{"index":19,"name":"NoActiveProviders"},{"index":20,"name":"DatasetIdSolutionsSame"},{"index":21,"name":"CodeNotFound"},{"index":22,"name":"Unknown"},{"index":23,"name":"InvalidContract"},{"index":24,"name":"InvalidPayee"},{"index":25,"name":"InvalidCaptchaStatus"},{"index":26,"name":"NoCorrectCaptcha"},{"index":27,"name":"NotEnoughActiveProviders"},{"index":28,"name":"ProviderFeeTooHigh"},{"index":29,"name":"CommitAlreadyExists"},{"index":30,"name":"NotAuthor"},{"index":31,"name":"Math"}]}},"path":["common","common","Error"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":12}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":12},{"name":"E","type":14}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":14}],"path":["Result"]}},{"id":17,"type":{"def":{"array":{"len":20,"type":3}}}},{"id":18,"type":{"def":{"variant":{"variants":[{"fields":[{"type":7}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":7},{"name":"E","type":14}],"path":["Result"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":14}],"path":["Result"]}},{"id":20,"type":{"def":{"sequence":{"type":21}}}},{"id":21,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Provider"},{"index":1,"name":"Dapp"}]}},"path":["captcha","captcha","Payee"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"fields":[{"type":23}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":23},{"name":"E","type":14}],"path":["Result"]}},{"id":23,"type":{"def":{"sequence":{"type":24}}}},{"id":24,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Provider"},{"index":1,"name":"Dapp"},{"index":2,"name":"Any"}]}},"path":["captcha","captcha","DappPayee"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"fields":[{"type":26}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":26},{"name":"E","type":14}],"path":["Result"]}},{"id":26,"type":{"def":{"sequence":{"type":27}}}},{"id":27,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Active"},{"index":1,"name":"Inactive"}]}},"path":["captcha","captcha","GovernanceStatus"]}},{"id":28,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":14}],"path":["Result"]}},{"id":29,"type":{"def":{"variant":{"variants":[{"fields":[{"type":1}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":1},{"name":"E","type":14}],"path":["Result"]}},{"id":30,"type":{"def":{"variant":{"variants":[{"fields":[{"type":31}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":31},{"name":"E","type":14}],"path":["Result"]}},{"id":31,"type":{"def":{"primitive":"u16"}}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":33}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":33},{"name":"E","type":14}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":13}],"path":["Result"]}},{"id":34,"type":{"def":{"composite":{"fields":[{"name":"status","type":27,"typeName":"GovernanceStatus"},{"name":"balance","type":0,"typeName":"Balance"},{"name":"fee","type":1,"typeName":"u32"},{"name":"payee","type":21,"typeName":"Payee"},{"name":"url","type":2,"typeName":"Vec<u8>"},{"name":"dataset_id","type":4,"typeName":"Hash"},{"name":"dataset_id_content","type":4,"typeName":"Hash"}]}},"path":["captcha","captcha","Provider"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"fields":[{"type":36}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":36},{"name":"E","type":14}],"path":["Result"]}},{"id":36,"type":{"def":{"variant":{"variants":[{"fields":[{"type":37}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":37},{"name":"E","type":13}],"path":["Result"]}},{"id":37,"type":{"def":{"composite":{"fields":[{"name":"status","type":27,"typeName":"GovernanceStatus"},{"name":"balance","type":0,"typeName":"Balance"},{"name":"owner","type":7,"typeName":"AccountId"},{"name":"payee","type":24,"typeName":"DappPayee"}]}},"path":["captcha","captcha","Dapp"]}},{"id":38,"type":{"def":{"variant":{"variants":[{"fields":[{"type":39}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":39},{"name":"E","type":14}],"path":["Result"]}},{"id":39,"type":{"def":{"variant":{"variants":[{"fields":[{"type":40}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":40},{"name":"E","type":13}],"path":["Result"]}},{"id":40,"type":{"def":{"composite":{"fields":[{"name":"correct","type":31,"typeName":"u16"},{"name":"incorrect","type":31,"typeName":"u16"},{"name":"score","type":3,"typeName":"u8"}]}},"path":["captcha","captcha","UserHistorySummary"]}},{"id":41,"type":{"def":{"composite":{"fields":[{"name":"id","type":4,"typeName":"Hash"},{"name":"user_account","type":7,"typeName":"AccountId"},{"name":"dataset_id","type":4,"typeName":"Hash"},{"name":"status","type":42,"typeName":"CaptchaStatus"},{"name":"dapp_contract","type":7,"typeName":"AccountId"},{"name":"provider_account","type":7,"typeName":"AccountId"},{"name":"requested_at","type":1,"typeName":"BlockNumber"},{"name":"completed_at","type":1,"typeName":"BlockNumber"},{"name":"user_signature","type":43,"typeName":"[u8; 64]"}]}},"path":["captcha","captcha","Commit"]}},{"id":42,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Pending"},{"index":1,"name":"Approved"},{"index":2,"name":"Disapproved"}]}},"path":["captcha","captcha","CaptchaStatus"]}},{"id":43,"type":{"def":{"array":{"len":64,"type":3}}}},{"id":44,"type":{"def":{"sequence":{"type":41}}}},{"id":45,"type":{"def":{"variant":{"variants":[{"fields":[{"type":46}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":46},{"name":"E","type":14}],"path":["Result"]}},{"id":46,"type":{"def":{"variant":{"variants":[{"fields":[{"type":47}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":47},{"name":"E","type":13}],"path":["Result"]}},{"id":47,"type":{"def":{"primitive":"bool"}}},{"id":48,"type":{"def":{"variant":{"variants":[{"fields":[{"type":49}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":49},{"name":"E","type":14}],"path":["Result"]}},{"id":49,"type":{"def":{"variant":{"variants":[{"fields":[{"type":50}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":50},{"name":"E","type":13}],"path":["Result"]}},{"id":50,"type":{"def":{"composite":{"fields":[{"name":"before","type":1,"typeName":"BlockNumber"},{"name":"dapp_contract","type":7,"typeName":"AccountId"}]}},"path":["captcha","captcha","LastCorrectCaptcha"]}},{"id":51,"type":{"def":{"variant":{"variants":[{"fields":[{"type":52}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":52},{"name":"E","type":14}],"path":["Result"]}},{"id":52,"type":{"def":{"variant":{"variants":[{"fields":[{"type":53}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":53},{"name":"E","type":13}],"path":["Result"]}},{"id":53,"type":{"def":{"composite":{"fields":[{"name":"history","type":9,"typeName":"Vec<Hash>"}]}},"path":["captcha","captcha","User"]}},{"id":54,"type":{"def":{"variant":{"variants":[{"fields":[{"type":55}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":55},{"name":"E","type":14}],"path":["Result"]}},{"id":55,"type":{"def":{"variant":{"variants":[{"fields":[{"type":41}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":41},{"name":"E","type":13}],"path":["Result"]}},{"id":56,"type":{"def":{"variant":{"variants":[{"fields":[{"type":57}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":57},{"name":"E","type":14}],"path":["Result"]}},{"id":57,"type":{"def":{"variant":{"variants":[{"fields":[{"type":58}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":58},{"name":"E","type":13}],"path":["Result"]}},{"id":58,"type":{"def":{"sequence":{"type":34}}}},{"id":59,"type":{"def":{"variant":{"variants":[{"fields":[{"type":60}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":60},{"name":"E","type":14}],"path":["Result"]}},{"id":60,"type":{"def":{"variant":{"variants":[{"fields":[{"type":61}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":61},{"name":"E","type":13}],"path":["Result"]}},{"id":61,"type":{"def":{"composite":{"fields":[{"name":"provider_account","type":7,"typeName":"AccountId"},{"name":"provider","type":34,"typeName":"Provider"},{"name":"block_number","type":1,"typeName":"BlockNumber"}]}},"path":["captcha","captcha","RandomProvider"]}},{"id":62,"type":{"def":{"variant":{"variants":[{"fields":[{"type":63}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":63},{"name":"E","type":14}],"path":["Result"]}},{"id":63,"type":{"def":{"variant":{"variants":[{"fields":[{"type":8}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":8},{"name":"E","type":13}],"path":["Result"]}},{"id":64,"type":{"def":{"primitive":"u64"}}},{"id":65,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}';
|
|
30892
|
+
const Gp = '{"source":{"hash":"0x51a3d42da3fc226f62214bd208e3987e4685705e0c53e31c612e7455415c1a65","language":"ink! 4.3.0","compiler":"rustc 1.69.0","build_info":{"build_mode":"Debug","cargo_contract_version":"3.0.1","rust_toolchain":"stable-x86_64-unknown-linux-gnu","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"captcha","version":"0.3.5","authors":["Chris Taylor <chris@prosopo.io>","George Oastler <george@prosopo.io>","Vincenzo Ferrara","Siniša Čanak"]},"spec":{"constructors":[{"args":[],"default":false,"docs":["Constructor"],"label":"new","payable":true,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x9bae9d5e"},{"args":[],"default":false,"docs":[],"label":"new_panic","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":15},"selector":"0x794560e8"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":7},"balance":{"displayName":["Balance"],"type":0},"blockNumber":{"displayName":["BlockNumber"],"type":1},"chainExtension":{"displayName":["ChainExtension"],"type":65},"hash":{"displayName":["Hash"],"type":4},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":64}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":14},"messages":[{"args":[],"default":false,"docs":[" Get the git commit id from when this contract was built"],"label":"get_git_commit_id","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0x3685e994"},{"args":[],"default":false,"docs":[" the admin which can control this contract. set to author/instantiator by default"],"label":"get_admin","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":18},"selector":"0x57b8a8a7"},{"args":[],"default":false,"docs":[" Get all payee options"],"label":"get_payees","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0xf334a6d7"},{"args":[],"default":false,"docs":[" Get all dapp payee options"],"label":"get_dapp_payees","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":22},"selector":"0xcce851af"},{"args":[],"default":false,"docs":[" Get all status options"],"label":"get_statuses","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":25},"selector":"0xd39608f0"},{"args":[],"default":false,"docs":[" Get contract provider minimum stake default."],"label":"get_provider_stake_threshold","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0x3e7e8941"},{"args":[],"default":false,"docs":[" Get contract dapp minimum stake default."],"label":"get_dapp_stake_threshold","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0xc9834fee"},{"args":[],"default":false,"docs":[" the maximum fee a provider can charge for a commit"],"label":"get_max_provider_fee","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0xd799cf93"},{"args":[],"default":false,"docs":[" the minimum number of providers needed for the contract to function"],"label":"get_min_num_active_providers","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":30},"selector":"0xa200bea1"},{"args":[],"default":false,"docs":[" the time to complete a block, 6 seconds by default"],"label":"get_block_time","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":30},"selector":"0x8d3f151d"},{"args":[],"default":false,"docs":[" the max age of a commit for a user before it is removed from the history, in seconds"],"label":"get_max_user_history_age_seconds","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0xcab4fa0a"},{"args":[],"default":false,"docs":[" the max number of commits stored for a single user"],"label":"get_max_user_history_len","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":30},"selector":"0xfb715e71"},{"args":[],"default":false,"docs":[" the max age of a commit for a user before it is removed from the history, in blocks"],"label":"get_max_user_history_age_blocks","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0x6f3337c3"},{"args":[{"label":"url","type":{"displayName":["Vec"],"type":2}},{"label":"fee","type":{"displayName":["u32"],"type":1}},{"label":"payee","type":{"displayName":["Payee"],"type":21}}],"default":false,"docs":[" Register a provider, their url and fee"],"label":"provider_register","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xc66f9a2a"},{"args":[{"label":"url","type":{"displayName":["Vec"],"type":2}},{"label":"fee","type":{"displayName":["u32"],"type":1}},{"label":"payee","type":{"displayName":["Payee"],"type":21}}],"default":false,"docs":[" Update an existing provider, their url, fee and deposit funds"],"label":"provider_update","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xd2f70de8"},{"args":[],"default":false,"docs":[" De-activate a provider by setting their status to Deactivated"],"label":"provider_deactivate","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xa65232da"},{"args":[],"default":false,"docs":[" Unstake and deactivate the provider\'s service, returning stake"],"label":"provider_deregister","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x5eff53cf"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get an existing provider"],"label":"get_provider","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":32},"selector":"0x457c7444"},{"args":[],"default":false,"docs":[" Fund a provider"],"label":"provider_fund","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x54ee83bb"},{"args":[{"label":"dataset_id","type":{"displayName":["Hash"],"type":4}},{"label":"dataset_id_content","type":{"displayName":["Hash"],"type":4}}],"default":false,"docs":[" Add a new data set"],"label":"provider_set_dataset","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xb0e7ab99"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get an existing dapp"],"label":"get_dapp","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":35},"selector":"0xf96477c0"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}},{"label":"payee","type":{"displayName":["DappPayee"],"type":24}}],"default":false,"docs":[" Register a dapp"],"label":"dapp_register","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x42b45efa"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}},{"label":"payee","type":{"displayName":["DappPayee"],"type":24}},{"label":"owner","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Update a dapp with new funds, setting status as appropriate"],"label":"dapp_update","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x5dbfa904"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Fund dapp account to pay for services, if the Dapp caller is registered in self.dapps"],"label":"dapp_fund","mutates":true,"payable":true,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x55da62a9"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Cancel services as a dapp, returning remaining tokens"],"label":"dapp_deregister","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xdc7da4d5"},{"args":[{"label":"contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Deactivate a dapp, leaving stake intact"],"label":"dapp_deactivate","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x94718d6f"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[],"label":"get_user_history_summary","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":38},"selector":"0x3be12ad6"},{"args":[{"label":"commit","type":{"displayName":["Commit"],"type":41}}],"default":false,"docs":[" Provider submits a captcha solution commitment"],"label":"provider_commit","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x57876316"},{"args":[{"label":"commits","type":{"displayName":["Vec"],"type":44}}],"default":false,"docs":[" Provider submits 0-many captcha solution commitments"],"label":"provider_commit_many","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0xc8d4b3b2"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}},{"label":"threshold","type":{"displayName":["u8"],"type":3}}],"default":false,"docs":[" Checks if the user is a human (true) as they have a solution rate higher than a % threshold or a bot (false)"," Threshold is decided by the calling user"," Threshold is between 0-200, i.e. 0-100% in 0.5% increments. E.g. 100 = 50%, 200 = 100%, 0 = 0%, 50 = 25%, etc."],"label":"dapp_operator_is_human_user","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":45},"selector":"0xbe7b6ef9"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get the last correct captcha for a user"],"label":"dapp_operator_last_correct_captcha","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":48},"selector":"0xbe930f18"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get a dapp user",""," Returns an error if the user does not exist"],"label":"get_user","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":51},"selector":"0xa4ca534e"},{"args":[{"label":"commit_id","type":{"displayName":["Hash"],"type":4}}],"default":false,"docs":[" Get a solution commitment",""," Returns an error if the commitment does not exist"],"label":"get_commit","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":54},"selector":"0x5329f551"},{"args":[{"label":"provider_accounts","type":{"displayName":["Vec"],"type":8}}],"default":false,"docs":[" List providers given an array of account id",""," Returns empty if none were matched"],"label":"list_providers_by_accounts","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":56},"selector":"0x52f0d2cb"},{"args":[{"label":"statuses","type":{"displayName":["Vec"],"type":26}}],"default":false,"docs":[" List providers given an array of status",""," Returns empty if none were matched"],"label":"list_providers_by_status","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":56},"selector":"0x54b28ab4"},{"args":[{"label":"user_account","type":{"displayName":["AccountId"],"type":7}},{"label":"dapp_contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get a random active provider",""," Returns error if no active provider is found"],"label":"get_random_active_provider","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":59},"selector":"0x4aee5bad"},{"args":[],"default":false,"docs":[" Get the AccountIds of all Providers ever registered",""," Returns {Vec<AccountId>}"],"label":"get_all_provider_accounts","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":62},"selector":"0x5052021f"},{"args":[{"label":"len","type":{"displayName":["u128"],"type":0}},{"label":"user_account","type":{"displayName":["AccountId"],"type":7}},{"label":"dapp_contract","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Get a random number from 0 to `len` - 1 inclusive. The user account is added to the seed for additional random entropy."],"label":"get_random_number","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0x2306aecd"},{"args":[],"default":false,"docs":[" Terminate this contract and return any/all funds in this contract to the destination"],"label":"terminate","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x476d839f"},{"args":[{"label":"amount","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Withdraw some funds from the contract to the specified destination"],"label":"withdraw","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x410fcc9d"},{"args":[{"label":"code_hash","type":{"displayName":[],"type":5}}],"default":false,"docs":[" Set the code hash for this contract"],"label":"set_code_hash","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":10},"selector":"0x9e5c5758"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"enum":{"dispatchKey":"0x31f906a7","name":"GovernanceStatus","variants":{"0":{"fields":[],"name":"Active"},"1":{"fields":[],"name":"Inactive"}}}},"name":"status"},{"layout":{"leaf":{"key":"0x31f906a7","ty":0}},"name":"balance"},{"layout":{"leaf":{"key":"0x31f906a7","ty":1}},"name":"fee"},{"layout":{"enum":{"dispatchKey":"0x31f906a7","name":"Payee","variants":{"0":{"fields":[],"name":"Provider"},"1":{"fields":[],"name":"Dapp"}}}},"name":"payee"},{"layout":{"leaf":{"key":"0x31f906a7","ty":2}},"name":"url"},{"layout":{"leaf":{"key":"0x31f906a7","ty":4}},"name":"dataset_id"},{"layout":{"leaf":{"key":"0x31f906a7","ty":4}},"name":"dataset_id_content"}],"name":"Provider"}},"root_key":"0x31f906a7"}},"name":"providers"},{"layout":{"root":{"layout":{"leaf":{"key":"0x25c2603c","ty":6}},"root_key":"0x25c2603c"}},"name":"provider_accounts"},{"layout":{"root":{"layout":{"leaf":{"key":"0xd1b08cc7","ty":7}},"root_key":"0xd1b08cc7"}},"name":"urls"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"enum":{"dispatchKey":"0x14493d1d","name":"GovernanceStatus","variants":{"0":{"fields":[],"name":"Active"},"1":{"fields":[],"name":"Inactive"}}}},"name":"status"},{"layout":{"leaf":{"key":"0x14493d1d","ty":0}},"name":"balance"},{"layout":{"leaf":{"key":"0x14493d1d","ty":7}},"name":"owner"},{"layout":{"enum":{"dispatchKey":"0x14493d1d","name":"DappPayee","variants":{"0":{"fields":[],"name":"Provider"},"1":{"fields":[],"name":"Dapp"},"2":{"fields":[],"name":"Any"}}}},"name":"payee"}],"name":"Dapp"}},"root_key":"0x14493d1d"}},"name":"dapps"},{"layout":{"root":{"layout":{"leaf":{"key":"0x455ca62f","ty":6}},"root_key":"0x455ca62f"}},"name":"dapp_contracts"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x81a766df","ty":4}},"name":"id"},{"layout":{"leaf":{"key":"0x81a766df","ty":7}},"name":"user_account"},{"layout":{"leaf":{"key":"0x81a766df","ty":4}},"name":"dataset_id"},{"layout":{"enum":{"dispatchKey":"0x81a766df","name":"CaptchaStatus","variants":{"0":{"fields":[],"name":"Pending"},"1":{"fields":[],"name":"Approved"},"2":{"fields":[],"name":"Disapproved"}}}},"name":"status"},{"layout":{"leaf":{"key":"0x81a766df","ty":7}},"name":"dapp_contract"},{"layout":{"leaf":{"key":"0x81a766df","ty":7}},"name":"provider_account"},{"layout":{"leaf":{"key":"0x81a766df","ty":1}},"name":"requested_at"},{"layout":{"leaf":{"key":"0x81a766df","ty":1}},"name":"completed_at"},{"layout":{"array":{"layout":{"leaf":{"key":"0x81a766df","ty":3}},"len":64,"offset":"0x81a766df"}},"name":"user_signature"}],"name":"Commit"}},"root_key":"0x81a766df"}},"name":"commits"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x5a3119c3","ty":9}},"name":"history"}],"name":"User"}},"root_key":"0x5a3119c3"}},"name":"users"},{"layout":{"root":{"layout":{"leaf":{"key":"0x43f9649b","ty":6}},"root_key":"0x43f9649b"}},"name":"user_accounts"}],"name":"Captcha"}},"root_key":"0xabcdef01"}},"types":[{"id":0,"type":{"def":{"primitive":"u128"}}},{"id":1,"type":{"def":{"primitive":"u32"}}},{"id":2,"type":{"def":{"sequence":{"type":3}}}},{"id":3,"type":{"def":{"primitive":"u8"}}},{"id":4,"type":{"def":{"composite":{"fields":[{"type":5,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":5,"type":{"def":{"array":{"len":32,"type":3}}}},{"id":6,"type":{"def":{"composite":{"fields":[{"type":8}]}},"params":[{"name":"T","type":7}],"path":["BTreeSet"]}},{"id":7,"type":{"def":{"composite":{"fields":[{"type":5,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":8,"type":{"def":{"sequence":{"type":7}}}},{"id":9,"type":{"def":{"sequence":{"type":4}}}},{"id":10,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":14}],"path":["Result"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"fields":[{"type":12}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":12},{"name":"E","type":13}],"path":["Result"]}},{"id":12,"type":{"def":{"tuple":[]}}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAuthorised"},{"index":1,"name":"TransferFailed"},{"index":2,"name":"SetCodeHashFailed"},{"index":3,"name":"InvalidDestination"},{"index":4,"name":"UnknownMessage"},{"index":5,"name":"ProviderAccountExists"},{"index":6,"name":"ProviderExists"},{"index":7,"name":"ProviderAccountDoesNotExist"},{"index":8,"name":"ProviderDoesNotExist"},{"index":9,"name":"ProviderInsufficientFunds"},{"index":10,"name":"ProviderInactive"},{"index":11,"name":"ProviderUrlUsed"},{"index":12,"name":"DappExists"},{"index":13,"name":"DappDoesNotExist"},{"index":14,"name":"DappInactive"},{"index":15,"name":"DappInsufficientFunds"},{"index":16,"name":"CaptchaDataDoesNotExist"},{"index":17,"name":"CommitDoesNotExist"},{"index":18,"name":"DappUserDoesNotExist"},{"index":19,"name":"NoActiveProviders"},{"index":20,"name":"DatasetIdSolutionsSame"},{"index":21,"name":"CodeNotFound"},{"index":22,"name":"Unknown"},{"index":23,"name":"InvalidContract"},{"index":24,"name":"InvalidPayee"},{"index":25,"name":"InvalidCaptchaStatus"},{"index":26,"name":"NoCorrectCaptcha"},{"index":27,"name":"NotEnoughActiveProviders"},{"index":28,"name":"ProviderFeeTooHigh"},{"index":29,"name":"CommitAlreadyExists"},{"index":30,"name":"NotAuthor"},{"index":31,"name":"Math"}]}},"path":["common","common","Error"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":12}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":12},{"name":"E","type":14}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":14}],"path":["Result"]}},{"id":17,"type":{"def":{"array":{"len":20,"type":3}}}},{"id":18,"type":{"def":{"variant":{"variants":[{"fields":[{"type":7}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":7},{"name":"E","type":14}],"path":["Result"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":14}],"path":["Result"]}},{"id":20,"type":{"def":{"sequence":{"type":21}}}},{"id":21,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Provider"},{"index":1,"name":"Dapp"}]}},"path":["captcha","captcha","Payee"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"fields":[{"type":23}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":23},{"name":"E","type":14}],"path":["Result"]}},{"id":23,"type":{"def":{"sequence":{"type":24}}}},{"id":24,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Provider"},{"index":1,"name":"Dapp"},{"index":2,"name":"Any"}]}},"path":["captcha","captcha","DappPayee"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"fields":[{"type":26}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":26},{"name":"E","type":14}],"path":["Result"]}},{"id":26,"type":{"def":{"sequence":{"type":27}}}},{"id":27,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Active"},{"index":1,"name":"Inactive"}]}},"path":["captcha","captcha","GovernanceStatus"]}},{"id":28,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":14}],"path":["Result"]}},{"id":29,"type":{"def":{"variant":{"variants":[{"fields":[{"type":1}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":1},{"name":"E","type":14}],"path":["Result"]}},{"id":30,"type":{"def":{"variant":{"variants":[{"fields":[{"type":31}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":31},{"name":"E","type":14}],"path":["Result"]}},{"id":31,"type":{"def":{"primitive":"u16"}}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":33}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":33},{"name":"E","type":14}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":13}],"path":["Result"]}},{"id":34,"type":{"def":{"composite":{"fields":[{"name":"status","type":27,"typeName":"GovernanceStatus"},{"name":"balance","type":0,"typeName":"Balance"},{"name":"fee","type":1,"typeName":"u32"},{"name":"payee","type":21,"typeName":"Payee"},{"name":"url","type":2,"typeName":"Vec<u8>"},{"name":"dataset_id","type":4,"typeName":"Hash"},{"name":"dataset_id_content","type":4,"typeName":"Hash"}]}},"path":["captcha","captcha","Provider"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"fields":[{"type":36}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":36},{"name":"E","type":14}],"path":["Result"]}},{"id":36,"type":{"def":{"variant":{"variants":[{"fields":[{"type":37}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":37},{"name":"E","type":13}],"path":["Result"]}},{"id":37,"type":{"def":{"composite":{"fields":[{"name":"status","type":27,"typeName":"GovernanceStatus"},{"name":"balance","type":0,"typeName":"Balance"},{"name":"owner","type":7,"typeName":"AccountId"},{"name":"payee","type":24,"typeName":"DappPayee"}]}},"path":["captcha","captcha","Dapp"]}},{"id":38,"type":{"def":{"variant":{"variants":[{"fields":[{"type":39}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":39},{"name":"E","type":14}],"path":["Result"]}},{"id":39,"type":{"def":{"variant":{"variants":[{"fields":[{"type":40}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":40},{"name":"E","type":13}],"path":["Result"]}},{"id":40,"type":{"def":{"composite":{"fields":[{"name":"correct","type":31,"typeName":"u16"},{"name":"incorrect","type":31,"typeName":"u16"},{"name":"score","type":3,"typeName":"u8"}]}},"path":["captcha","captcha","UserHistorySummary"]}},{"id":41,"type":{"def":{"composite":{"fields":[{"name":"id","type":4,"typeName":"Hash"},{"name":"user_account","type":7,"typeName":"AccountId"},{"name":"dataset_id","type":4,"typeName":"Hash"},{"name":"status","type":42,"typeName":"CaptchaStatus"},{"name":"dapp_contract","type":7,"typeName":"AccountId"},{"name":"provider_account","type":7,"typeName":"AccountId"},{"name":"requested_at","type":1,"typeName":"BlockNumber"},{"name":"completed_at","type":1,"typeName":"BlockNumber"},{"name":"user_signature","type":43,"typeName":"[u8; 64]"}]}},"path":["captcha","captcha","Commit"]}},{"id":42,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Pending"},{"index":1,"name":"Approved"},{"index":2,"name":"Disapproved"}]}},"path":["captcha","captcha","CaptchaStatus"]}},{"id":43,"type":{"def":{"array":{"len":64,"type":3}}}},{"id":44,"type":{"def":{"sequence":{"type":41}}}},{"id":45,"type":{"def":{"variant":{"variants":[{"fields":[{"type":46}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":46},{"name":"E","type":14}],"path":["Result"]}},{"id":46,"type":{"def":{"variant":{"variants":[{"fields":[{"type":47}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":47},{"name":"E","type":13}],"path":["Result"]}},{"id":47,"type":{"def":{"primitive":"bool"}}},{"id":48,"type":{"def":{"variant":{"variants":[{"fields":[{"type":49}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":49},{"name":"E","type":14}],"path":["Result"]}},{"id":49,"type":{"def":{"variant":{"variants":[{"fields":[{"type":50}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":50},{"name":"E","type":13}],"path":["Result"]}},{"id":50,"type":{"def":{"composite":{"fields":[{"name":"before","type":1,"typeName":"BlockNumber"},{"name":"dapp_contract","type":7,"typeName":"AccountId"}]}},"path":["captcha","captcha","LastCorrectCaptcha"]}},{"id":51,"type":{"def":{"variant":{"variants":[{"fields":[{"type":52}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":52},{"name":"E","type":14}],"path":["Result"]}},{"id":52,"type":{"def":{"variant":{"variants":[{"fields":[{"type":53}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":53},{"name":"E","type":13}],"path":["Result"]}},{"id":53,"type":{"def":{"composite":{"fields":[{"name":"history","type":9,"typeName":"Vec<Hash>"}]}},"path":["captcha","captcha","User"]}},{"id":54,"type":{"def":{"variant":{"variants":[{"fields":[{"type":55}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":55},{"name":"E","type":14}],"path":["Result"]}},{"id":55,"type":{"def":{"variant":{"variants":[{"fields":[{"type":41}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":41},{"name":"E","type":13}],"path":["Result"]}},{"id":56,"type":{"def":{"variant":{"variants":[{"fields":[{"type":57}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":57},{"name":"E","type":14}],"path":["Result"]}},{"id":57,"type":{"def":{"variant":{"variants":[{"fields":[{"type":58}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":58},{"name":"E","type":13}],"path":["Result"]}},{"id":58,"type":{"def":{"sequence":{"type":34}}}},{"id":59,"type":{"def":{"variant":{"variants":[{"fields":[{"type":60}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":60},{"name":"E","type":14}],"path":["Result"]}},{"id":60,"type":{"def":{"variant":{"variants":[{"fields":[{"type":61}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":61},{"name":"E","type":13}],"path":["Result"]}},{"id":61,"type":{"def":{"composite":{"fields":[{"name":"provider_account","type":7,"typeName":"AccountId"},{"name":"provider","type":34,"typeName":"Provider"},{"name":"block_number","type":1,"typeName":"BlockNumber"}]}},"path":["captcha","captcha","RandomProvider"]}},{"id":62,"type":{"def":{"variant":{"variants":[{"fields":[{"type":63}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":63},{"name":"E","type":14}],"path":["Result"]}},{"id":63,"type":{"def":{"variant":{"variants":[{"fields":[{"type":8}],"index":0,"name":"Ok"},{"fields":[{"type":13}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":8},{"name":"E","type":13}],"path":["Result"]}},{"id":64,"type":{"def":{"primitive":"u64"}}},{"id":65,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}';
|
|
30893
30893
|
function Zp(n) {
|
|
30894
30894
|
return n.map((e) => Z({}, e, {
|
|
30895
30895
|
name: Array.isArray(e.name) ? e.name : [e.name]
|
|
@@ -35230,10 +35230,8 @@ const tM = (n) => {
|
|
|
35230
35230
|
alert("Uncompleted challenge has expired, please try again");
|
|
35231
35231
|
},
|
|
35232
35232
|
onOpen: () => {
|
|
35233
|
-
console.info("captcha opened");
|
|
35234
35233
|
},
|
|
35235
35234
|
onClose: () => {
|
|
35236
|
-
console.info("captcha closed");
|
|
35237
35235
|
}
|
|
35238
35236
|
}, t), FM = (n, e) => (t) => {
|
|
35239
35237
|
Object.assign(n, t), e(t);
|
|
@@ -77,7 +77,7 @@ class ExtensionWeb2 extends Extension.Extension {
|
|
|
77
77
|
const entropy = common.hexHash([canvasEntropy, browserEntropy].join(""), 128).slice(2);
|
|
78
78
|
const u8Entropy = string.stringToU8a(entropy);
|
|
79
79
|
const mnemonic = bip39.entropyToMnemonic(u8Entropy);
|
|
80
|
-
const api = await Api.ApiPromise.create({ provider: wsProvider, initWasm: false });
|
|
80
|
+
const api = await Api.ApiPromise.create({ provider: wsProvider, initWasm: false, noInitWarn: true });
|
|
81
81
|
const type = "ed25519";
|
|
82
82
|
const keyring$1 = new keyring.Keyring({ type, ss58Format: api.registry.chainSS58 });
|
|
83
83
|
const keypair = keyring$1.addFromMnemonic(mnemonic);
|
|
@@ -48,7 +48,11 @@ const Manager = (configInput, state, onStateUpdate, callbacks) => {
|
|
|
48
48
|
};
|
|
49
49
|
const loadContract = async () => {
|
|
50
50
|
const network = getNetwork(getConfig());
|
|
51
|
-
const api2 = await Api.ApiPromise.create({
|
|
51
|
+
const api2 = await Api.ApiPromise.create({
|
|
52
|
+
provider: new ws.WsProvider(network.endpoint),
|
|
53
|
+
initWasm: false,
|
|
54
|
+
noInitWarn: true
|
|
55
|
+
});
|
|
52
56
|
const type = "sr25519";
|
|
53
57
|
const keyring$1 = new keyring.Keyring({ type, ss58Format: api2.registry.chainSS58 });
|
|
54
58
|
return new contract.ProsopoCaptchaContract(api2, JSON.parse(contractInfo.ContractAbi), network.contract.address, "prosopo", 0, keyring$1.addFromAddress(getConfig().account.address || ""));
|
|
@@ -88,7 +92,8 @@ const Manager = (configInput, state, onStateUpdate, callbacks) => {
|
|
|
88
92
|
}
|
|
89
93
|
resetState();
|
|
90
94
|
const config = getConfig();
|
|
91
|
-
const
|
|
95
|
+
const ext = new ExtensionWeb2.ExtensionWeb2();
|
|
96
|
+
const userAccount = config.userAccountAddress || (await ext.getAccount(config)).account.address;
|
|
92
97
|
updateState({
|
|
93
98
|
loading: true,
|
|
94
99
|
account: { account: { address: userAccount } }
|
|
@@ -100,14 +105,12 @@ const Manager = (configInput, state, onStateUpdate, callbacks) => {
|
|
|
100
105
|
context: { error: "Account address has not been set for web3 mode" }
|
|
101
106
|
});
|
|
102
107
|
}
|
|
103
|
-
const ext = new ExtensionWeb2.ExtensionWeb2();
|
|
104
|
-
const account = await ext.getAccount(config);
|
|
105
108
|
const contract$1 = await loadContract();
|
|
106
109
|
const events = procaptchaCommon.getDefaultEvents(onStateUpdate, state, callbacks);
|
|
107
|
-
const getRandomProviderResponse = await contract.wrapQuery(contract$1.query.getRandomActiveProvider, contract$1.query)(
|
|
110
|
+
const getRandomProviderResponse = await contract.wrapQuery(contract$1.query.getRandomActiveProvider, contract$1.query)(userAccount, getDappAccount());
|
|
108
111
|
const providerUrl = common.trimProviderUrl(getRandomProviderResponse.provider.url.toString());
|
|
109
112
|
const providerApi = new api.ProviderApi(getNetwork(getConfig()), providerUrl, getDappAccount());
|
|
110
|
-
const challenge = await providerApi.getPowCaptchaChallenge(
|
|
113
|
+
const challenge = await providerApi.getPowCaptchaChallenge(userAccount, getDappAccount());
|
|
111
114
|
const solution = SolverService.solvePoW(challenge.challenge, challenge.difficulty);
|
|
112
115
|
const verifiedSolution = await providerApi.submitPowCaptchaSolution(challenge, getAccount().account.address, getDappAccount(), getRandomProviderResponse, solution);
|
|
113
116
|
if (verifiedSolution[types.ApiParams.verified]) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/procaptcha-bundle",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"author": "PROSOPO LIMITED <info@prosopo.io>",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"> 0.5%, last 2 versions, not dead"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@prosopo/procaptcha-frictionless": "0.3.
|
|
40
|
-
"@prosopo/procaptcha-pow": "0.3.
|
|
41
|
-
"@prosopo/procaptcha-react": "0.3.
|
|
42
|
-
"@prosopo/types": "0.3.
|
|
43
|
-
"@prosopo/util": "0.3.
|
|
39
|
+
"@prosopo/procaptcha-frictionless": "0.3.5",
|
|
40
|
+
"@prosopo/procaptcha-pow": "0.3.5",
|
|
41
|
+
"@prosopo/procaptcha-react": "0.3.5",
|
|
42
|
+
"@prosopo/types": "0.3.5",
|
|
43
|
+
"@prosopo/util": "0.3.5",
|
|
44
44
|
"react-dom": "^18.2.0"
|
|
45
45
|
},
|
|
46
46
|
"repository": {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@originjs/vite-plugin-commonjs": "^1.0.3",
|
|
60
|
-
"@prosopo/config": "0.3.
|
|
60
|
+
"@prosopo/config": "0.3.5",
|
|
61
61
|
"@rollup/plugin-typescript": "^11.1.2",
|
|
62
62
|
"@vitejs/plugin-react": "^4.2.1",
|
|
63
63
|
"tslib": "2.6.2",
|