@prosopo/procaptcha 0.1.0 → 0.1.3
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/README.md +13 -0
- package/dist/api/AsyncFactory.d.ts +7 -0
- package/dist/api/AsyncFactory.d.ts.map +1 -0
- package/{src/api/AsyncFactory.ts → dist/api/AsyncFactory.js} +8 -9
- package/dist/api/AsyncFactory.js.map +1 -0
- package/dist/api/Extension.d.ts +22 -0
- package/dist/api/Extension.d.ts.map +1 -0
- package/{src/api/Extension.ts → dist/api/Extension.js} +39 -56
- package/dist/api/Extension.js.map +1 -0
- package/dist/api/HttpClientBase.d.ts +9 -0
- package/dist/api/HttpClientBase.d.ts.map +1 -0
- package/dist/api/HttpClientBase.js +36 -0
- package/dist/api/HttpClientBase.js.map +1 -0
- package/dist/api/ProsopoContract.d.ts +13 -0
- package/dist/api/ProsopoContract.d.ts.map +1 -0
- package/{src/api/ProsopoContract.ts → dist/api/ProsopoContract.js} +18 -20
- package/dist/api/ProsopoContract.js.map +1 -0
- package/dist/api/ProsopoContractBase.d.ts +31 -0
- package/dist/api/ProsopoContractBase.d.ts.map +1 -0
- package/dist/api/ProsopoContractBase.js +131 -0
- package/dist/api/ProsopoContractBase.js.map +1 -0
- package/dist/api/ProviderApi.d.ts +21 -0
- package/dist/api/ProviderApi.d.ts.map +1 -0
- package/dist/api/ProviderApi.js +54 -0
- package/dist/api/ProviderApi.js.map +1 -0
- package/dist/api/handlers.d.ts +5 -0
- package/dist/api/handlers.d.ts.map +1 -0
- package/dist/api/handlers.js +14 -0
- package/dist/api/handlers.js.map +1 -0
- package/dist/api/index.d.ts +7 -0
- package/dist/api/index.d.ts.map +1 -0
- package/{src/api/handlers.ts → dist/api/index.js} +10 -14
- package/dist/api/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/modules/index.ts → dist/index.js} +7 -7
- package/dist/index.js.map +1 -0
- package/dist/modules/ProsopoCaptchaApi.d.ts +16 -0
- package/dist/modules/ProsopoCaptchaApi.d.ts.map +1 -0
- package/dist/modules/ProsopoCaptchaApi.js +86 -0
- package/dist/modules/ProsopoCaptchaApi.js.map +1 -0
- package/dist/modules/ProsopoCaptchaClient.d.ts +27 -0
- package/dist/modules/ProsopoCaptchaClient.d.ts.map +1 -0
- package/dist/modules/ProsopoCaptchaClient.js +97 -0
- package/dist/modules/ProsopoCaptchaClient.js.map +1 -0
- package/dist/modules/ProsopoCaptchaStateClient.d.ts +17 -0
- package/dist/modules/ProsopoCaptchaStateClient.d.ts.map +1 -0
- package/dist/modules/ProsopoCaptchaStateClient.js +104 -0
- package/dist/modules/ProsopoCaptchaStateClient.js.map +1 -0
- package/dist/modules/client.d.ts +9 -0
- package/dist/modules/client.d.ts.map +1 -0
- package/{src/modules/client.ts → dist/modules/client.js} +13 -12
- package/dist/modules/client.js.map +1 -0
- package/dist/modules/contract.d.ts +7 -0
- package/dist/modules/contract.d.ts.map +1 -0
- package/{src/api/HttpClientBase.ts → dist/modules/contract.js} +14 -21
- package/dist/modules/contract.js.map +1 -0
- package/dist/modules/extension.d.ts +3 -0
- package/dist/modules/extension.d.ts.map +1 -0
- package/{src/api/index.ts → dist/modules/extension.js} +10 -6
- package/dist/modules/extension.js.map +1 -0
- package/dist/modules/index.d.ts +8 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/{src/modules/contract.ts → dist/modules/index.js} +11 -8
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/storage.d.ts +14 -0
- package/dist/modules/storage.d.ts.map +1 -0
- package/{src/modules/storage.ts → dist/modules/storage.js} +7 -7
- package/dist/modules/storage.js.map +1 -0
- package/dist/types/api.d.ts +45 -0
- package/dist/types/api.d.ts.map +1 -0
- package/{src/types/index.ts → dist/types/api.js} +7 -3
- package/dist/types/api.js.map +1 -0
- package/{src/types/client.ts → dist/types/client.d.ts} +8 -36
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +3 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/contract.d.ts +5 -0
- package/dist/types/contract.d.ts.map +1 -0
- package/dist/types/contract.js +3 -0
- package/dist/types/contract.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/{src/modules/extension.ts → dist/types/index.js} +7 -5
- package/dist/types/index.js.map +1 -0
- package/img/contracts-page.png +0 -0
- package/package.json +2 -2
- package/tsconfig.tsbuildinfo +1 -0
- package/src/api/ProsopoContractBase.ts +0 -169
- package/src/api/ProviderApi.ts +0 -59
- package/src/index.ts +0 -18
- package/src/modules/ProsopoCaptchaApi.ts +0 -105
- package/src/modules/ProsopoCaptchaClient.ts +0 -131
- package/src/modules/ProsopoCaptchaStateClient.ts +0 -146
- package/src/types/api.ts +0 -79
- package/src/types/contract.ts +0 -21
- package/tests/mocks/browser.ts +0 -25
- package/tests/modules/client.test.ts +0 -56
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderApi.js","sourceRoot":"","sources":["../../src/api/ProviderApi.ts"],"names":[],"mappings":";;;;AAAA,4CAA4C;AAC5C,8EAA8E;AAC9E,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,gEAAgE;AAChE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,8EAA8C;AAC9C,yEAAyC;AAGzC,MAAa,WAAY,SAAQ,wBAAc;IAEnC,MAAM,CAAuB;IAEvC,YAAY,MAA4B;QACtC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,iBAAiB;QACtB,MAAM,WAAW,GAAG,iBAAO,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC7C,CAAC;IAEM,mBAAmB,CAAC,cAA6C;QACtE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC;QAC/C,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,4CAA4C;QACzF,MAAM,WAAW,GAAG,iBAAO,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,gBAAgB,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IACtI,CAAC;IAEM,qBAAqB,CAAC,SAAiB,EAAE,QAA2B,EAAE,WAAmB,EAAE,MAAc,EAAE,WAAmB;QACnI,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAC,CAAC,CAAC;IACjJ,CAAC;CAEF;AArCD,kCAqCC;AAED,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAEpC,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;CAUrE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProsopoApiError = void 0;
|
|
4
|
+
class ProsopoApiError extends Error {
|
|
5
|
+
constructor(error, context, ...params) {
|
|
6
|
+
super(`${error.data.message ? error.data.message : error.statusText}`);
|
|
7
|
+
this.name = context && `${ProsopoApiError.name}@${context}` || ProsopoApiError.name;
|
|
8
|
+
// TODO: if env.debug
|
|
9
|
+
console.error('\n********************* ERROR *********************\n');
|
|
10
|
+
console.error(this.cause, this.stack, ...params);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.ProsopoApiError = ProsopoApiError;
|
|
14
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":";;;AAiBA,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,KAAoB,EAAE,OAAgB,EAAE,GAAG,MAAa;QAElE,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;QAEtE,IAAI,CAAC,IAAI,GAAG,OAAO,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,OAAO,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC;QAEpF,qBAAqB;QACrB,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAXD,0CAWC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAeA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
1
4
|
// Copyright (C) 2021-2022 Prosopo (UK) Ltd.
|
|
2
5
|
// This file is part of procaptcha <https://github.com/prosopo-io/procaptcha>.
|
|
3
6
|
//
|
|
@@ -13,17 +16,10 @@
|
|
|
13
16
|
//
|
|
14
17
|
// You should have received a copy of the GNU General Public License
|
|
15
18
|
// along with procaptcha. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.name = context && `${ProsopoApiError.name}@${context}` || ProsopoApiError.name;
|
|
24
|
-
|
|
25
|
-
// TODO: if env.debug
|
|
26
|
-
console.error('\n********************* ERROR *********************\n');
|
|
27
|
-
console.error(this.cause, this.stack, ...params);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
19
|
+
tslib_1.__exportStar(require("./AsyncFactory"), exports);
|
|
20
|
+
tslib_1.__exportStar(require("./Extension"), exports);
|
|
21
|
+
tslib_1.__exportStar(require("./HttpClientBase"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./ProsopoContract"), exports);
|
|
23
|
+
tslib_1.__exportStar(require("./ProsopoContractBase"), exports);
|
|
24
|
+
tslib_1.__exportStar(require("./ProviderApi"), exports);
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,8EAA8E;AAC9E,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,gEAAgE;AAChE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,yDAA+B;AAC/B,sDAA4B;AAC5B,2DAAiC;AACjC,4DAAkC;AAClC,gEAAsC;AACtC,wDAA8B"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
1
4
|
// Copyright (C) 2021-2022 Prosopo (UK) Ltd.
|
|
2
5
|
// This file is part of procaptcha <https://github.com/prosopo-io/procaptcha>.
|
|
3
6
|
//
|
|
@@ -13,10 +16,7 @@
|
|
|
13
16
|
//
|
|
14
17
|
// You should have received a copy of the GNU General Public License
|
|
15
18
|
// along with procaptcha. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export * from './ProsopoCaptchaApi';
|
|
21
|
-
export * from './ProsopoCaptchaClient';
|
|
22
|
-
export * from './ProsopoCaptchaStateClient';
|
|
19
|
+
tslib_1.__exportStar(require("./api"), exports);
|
|
20
|
+
tslib_1.__exportStar(require("./modules"), exports);
|
|
21
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,8EAA8E;AAC9E,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,gEAAgE;AAChE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,gDAAsB;AACtB,oDAA0B;AAC1B,kDAAwB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CaptchaSolution } from '@prosopo/contract';
|
|
2
|
+
import { Signer } from "@polkadot/api/types";
|
|
3
|
+
import { ProsopoRandomProviderResponse, GetCaptchaResponse } from "../types/api";
|
|
4
|
+
import ProviderApi from "../api/ProviderApi";
|
|
5
|
+
import ProsopoContract from "../api/ProsopoContract";
|
|
6
|
+
import { TCaptchaSubmitResult } from '../types/client';
|
|
7
|
+
export declare class ProsopoCaptchaApi {
|
|
8
|
+
protected contract: ProsopoContract;
|
|
9
|
+
protected provider: ProsopoRandomProviderResponse;
|
|
10
|
+
protected providerApi: ProviderApi;
|
|
11
|
+
constructor(contract: ProsopoContract, provider: ProsopoRandomProviderResponse, providerApi: ProviderApi);
|
|
12
|
+
getCaptchaChallenge(): Promise<GetCaptchaResponse>;
|
|
13
|
+
submitCaptchaSolution(signer: Signer, requestHash: string, datasetId: string, solutions: CaptchaSolution[]): Promise<TCaptchaSubmitResult>;
|
|
14
|
+
}
|
|
15
|
+
export default ProsopoCaptchaApi;
|
|
16
|
+
//# sourceMappingURL=ProsopoCaptchaApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaApi.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,eAAe,EAAgD,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAA2B,MAAM,cAAc,CAAC;AAG1G,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAYvD,qBAAa,iBAAiB;IAE1B,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC;IACpC,SAAS,CAAC,QAAQ,EAAE,6BAA6B,CAAC;IAClD,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,6BAA6B,EAAE,WAAW,EAAE,WAAW;IAM3F,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAUlD,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAI,OAAO,CAAC,oBAAoB,CAAC;CA0C3J;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProsopoCaptchaApi = void 0;
|
|
4
|
+
// Copyright (C) 2021-2022 Prosopo (UK) Ltd.
|
|
5
|
+
// This file is part of procaptcha <https://github.com/prosopo-io/procaptcha>.
|
|
6
|
+
//
|
|
7
|
+
// procaptcha is free software: you can redistribute it and/or modify
|
|
8
|
+
// it under the terms of the GNU General Public License as published by
|
|
9
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
// (at your option) any later version.
|
|
11
|
+
//
|
|
12
|
+
// procaptcha is distributed in the hope that it will be useful,
|
|
13
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15
|
+
// GNU General Public License for more details.
|
|
16
|
+
//
|
|
17
|
+
// You should have received a copy of the GNU General Public License
|
|
18
|
+
// along with procaptcha. If not, see <http://www.gnu.org/licenses/>.
|
|
19
|
+
const util_crypto_1 = require("@polkadot/util-crypto");
|
|
20
|
+
// import {computeCaptchaSolutionHash} from '@prosopo/provider'; // TODO
|
|
21
|
+
const contract_1 = require("@prosopo/contract");
|
|
22
|
+
const handlers_1 = require("../api/handlers");
|
|
23
|
+
function hexHash(data) {
|
|
24
|
+
return (0, util_crypto_1.blake2AsHex)(data);
|
|
25
|
+
}
|
|
26
|
+
function computeCaptchaSolutionHash(captcha) {
|
|
27
|
+
return hexHash([captcha.captchaId, captcha.solution, captcha.salt].join());
|
|
28
|
+
}
|
|
29
|
+
class ProsopoCaptchaApi {
|
|
30
|
+
contract;
|
|
31
|
+
provider;
|
|
32
|
+
providerApi;
|
|
33
|
+
constructor(contract, provider, providerApi) {
|
|
34
|
+
this.contract = contract;
|
|
35
|
+
this.provider = provider;
|
|
36
|
+
this.providerApi = providerApi;
|
|
37
|
+
}
|
|
38
|
+
async getCaptchaChallenge() {
|
|
39
|
+
let captchaChallenge;
|
|
40
|
+
try {
|
|
41
|
+
captchaChallenge = await this.providerApi.getCaptchaChallenge(this.provider);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
throw new handlers_1.ProsopoApiError(err);
|
|
45
|
+
}
|
|
46
|
+
return captchaChallenge;
|
|
47
|
+
}
|
|
48
|
+
async submitCaptchaSolution(signer, requestHash, datasetId, solutions) {
|
|
49
|
+
const salt = (0, util_crypto_1.randomAsHex)();
|
|
50
|
+
const tree = new contract_1.CaptchaMerkleTree();
|
|
51
|
+
const captchaSolutionsSalted = solutions.map(solution => ({ ...solution, salt: salt }));
|
|
52
|
+
const captchasHashed = captchaSolutionsSalted.map((captcha) => computeCaptchaSolutionHash(captcha));
|
|
53
|
+
tree.build(captchasHashed);
|
|
54
|
+
const commitmentId = tree.root.hash;
|
|
55
|
+
console.log("solveCaptchaChallenge commitmentId", commitmentId);
|
|
56
|
+
// console.log("solveCaptchaChallenge USER ACCOUNT", this.contract.getAccount().address);
|
|
57
|
+
// console.log("solveCaptchaChallenge DAPP ACCOUNT", this.contract.getDappAddress());
|
|
58
|
+
// console.log("solveCaptchaChallenge CONTRACT ADDRESS", this.contract.getContract().address.toString());
|
|
59
|
+
let tx;
|
|
60
|
+
try {
|
|
61
|
+
tx = await this.contract.dappUserCommit(signer, datasetId, commitmentId, this.provider.providerId);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
throw new handlers_1.ProsopoApiError(err);
|
|
65
|
+
}
|
|
66
|
+
let result;
|
|
67
|
+
try {
|
|
68
|
+
result = await this.providerApi.submitCaptchaSolution(tx.blockHash, captchaSolutionsSalted, requestHash, tx.txHash.toString(), this.contract.getAccount().address);
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
throw new handlers_1.ProsopoApiError(err);
|
|
72
|
+
}
|
|
73
|
+
let commitment;
|
|
74
|
+
// TODO concurrency?
|
|
75
|
+
try {
|
|
76
|
+
commitment = await this.contract.getCaptchaSolutionCommitment(commitmentId);
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
throw new handlers_1.ProsopoApiError(err);
|
|
80
|
+
}
|
|
81
|
+
return [result, tx, commitment];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.ProsopoCaptchaApi = ProsopoCaptchaApi;
|
|
85
|
+
exports.default = ProsopoCaptchaApi;
|
|
86
|
+
//# sourceMappingURL=ProsopoCaptchaApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaApi.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ICaptchaContextReducer, CaptchaEventCallbacks, TExtensionAccount, ICaptchaStatusReducer, IExtensionInterface } from "../types/client";
|
|
2
|
+
import { ProsopoRandomProviderResponse } from "../types/api";
|
|
3
|
+
import { ProsopoContract } from "../api/ProsopoContract";
|
|
4
|
+
import { ProviderApi } from "../api/ProviderApi";
|
|
5
|
+
import { ProsopoCaptchaApi } from "./ProsopoCaptchaApi";
|
|
6
|
+
export declare class ProsopoCaptchaClient {
|
|
7
|
+
manager: ICaptchaContextReducer;
|
|
8
|
+
status: ICaptchaStatusReducer;
|
|
9
|
+
callbacks: CaptchaEventCallbacks | undefined;
|
|
10
|
+
providerApi: ProviderApi;
|
|
11
|
+
solutionThreshold: number;
|
|
12
|
+
private static extension;
|
|
13
|
+
private static contract;
|
|
14
|
+
private static provider;
|
|
15
|
+
private static captchaApi;
|
|
16
|
+
constructor(manager: ICaptchaContextReducer, status: ICaptchaStatusReducer, callbacks?: CaptchaEventCallbacks);
|
|
17
|
+
getExtension(): IExtensionInterface;
|
|
18
|
+
setExtension(extension: IExtensionInterface): IExtensionInterface;
|
|
19
|
+
getContract(): ProsopoContract | undefined;
|
|
20
|
+
getProvider(): ProsopoRandomProviderResponse | undefined;
|
|
21
|
+
getCaptchaApi(): ProsopoCaptchaApi | undefined;
|
|
22
|
+
onLoad(): Promise<void>;
|
|
23
|
+
onAccountChange(account?: TExtensionAccount): Promise<void>;
|
|
24
|
+
onAccountUnset(): void;
|
|
25
|
+
}
|
|
26
|
+
export default ProsopoCaptchaClient;
|
|
27
|
+
//# sourceMappingURL=ProsopoCaptchaClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaClient.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaClient.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC/I,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,qBAAa,oBAAoB;IAEtB,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC7C,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAA;IAEhC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsB;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4C;IACnE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAgC;gBAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,qBAAqB,EAAE,SAAS,CAAC,EAAE,qBAAqB;IAQtG,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,mBAAmB;IAI3C,WAAW;IAIX,WAAW;IAIX,aAAa;IAIP,MAAM;IAkBN,eAAe,CAAC,OAAO,CAAC,EAAE,iBAAiB;IAkCjD,cAAc;CAYxB;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProsopoCaptchaClient = void 0;
|
|
4
|
+
const contract_1 = require("./contract");
|
|
5
|
+
const extension_1 = require("./extension");
|
|
6
|
+
const ProviderApi_1 = require("../api/ProviderApi");
|
|
7
|
+
const ProsopoCaptchaApi_1 = require("./ProsopoCaptchaApi");
|
|
8
|
+
// import { Extension } from "../api";
|
|
9
|
+
class ProsopoCaptchaClient {
|
|
10
|
+
manager;
|
|
11
|
+
status;
|
|
12
|
+
callbacks;
|
|
13
|
+
providerApi;
|
|
14
|
+
solutionThreshold;
|
|
15
|
+
static extension;
|
|
16
|
+
static contract;
|
|
17
|
+
static provider;
|
|
18
|
+
static captchaApi;
|
|
19
|
+
constructor(manager, status, callbacks) {
|
|
20
|
+
this.manager = manager;
|
|
21
|
+
this.status = status;
|
|
22
|
+
this.callbacks = callbacks;
|
|
23
|
+
this.providerApi = new ProviderApi_1.ProviderApi(manager.state.config);
|
|
24
|
+
this.solutionThreshold = manager.state.config.solutionThreshold;
|
|
25
|
+
}
|
|
26
|
+
getExtension() {
|
|
27
|
+
return ProsopoCaptchaClient.extension;
|
|
28
|
+
}
|
|
29
|
+
setExtension(extension) {
|
|
30
|
+
return ProsopoCaptchaClient.extension = extension;
|
|
31
|
+
}
|
|
32
|
+
getContract() {
|
|
33
|
+
return ProsopoCaptchaClient.contract;
|
|
34
|
+
}
|
|
35
|
+
getProvider() {
|
|
36
|
+
return ProsopoCaptchaClient.provider;
|
|
37
|
+
}
|
|
38
|
+
getCaptchaApi() {
|
|
39
|
+
return ProsopoCaptchaClient.captchaApi;
|
|
40
|
+
}
|
|
41
|
+
async onLoad() {
|
|
42
|
+
let contractAddress = ProsopoCaptchaClient.contract?.address;
|
|
43
|
+
if (!ProsopoCaptchaClient.extension || !contractAddress) {
|
|
44
|
+
try {
|
|
45
|
+
[ProsopoCaptchaClient.extension, { contractAddress }] = await Promise.all([(0, extension_1.getExtension)(), this.providerApi.getContractAddress()]);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
throw new Error(err);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (this.callbacks?.onLoad) {
|
|
52
|
+
this.callbacks.onLoad(ProsopoCaptchaClient.extension, contractAddress);
|
|
53
|
+
}
|
|
54
|
+
this.manager.update({ contractAddress });
|
|
55
|
+
}
|
|
56
|
+
async onAccountChange(account) {
|
|
57
|
+
if (!account) {
|
|
58
|
+
this.onAccountUnset();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
ProsopoCaptchaClient.extension.setAccount(account.address);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
throw new Error(err);
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
ProsopoCaptchaClient.contract = await (0, contract_1.getProsopoContract)(this.manager.state.contractAddress, this.manager.state.config['dappAccount'], account, (0, contract_1.getWsProvider)(this.manager.state.config['dappUrl']));
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
throw new Error(err);
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
ProsopoCaptchaClient.provider = await ProsopoCaptchaClient.contract.getRandomProvider(); // TODO how often should provider change?
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
throw new Error(err);
|
|
78
|
+
}
|
|
79
|
+
ProsopoCaptchaClient.captchaApi = new ProsopoCaptchaApi_1.ProsopoCaptchaApi(ProsopoCaptchaClient.contract, ProsopoCaptchaClient.provider, this.providerApi);
|
|
80
|
+
if (this.callbacks?.onAccountChange) {
|
|
81
|
+
this.callbacks.onAccountChange(account);
|
|
82
|
+
}
|
|
83
|
+
this.manager.update({ account });
|
|
84
|
+
}
|
|
85
|
+
onAccountUnset() {
|
|
86
|
+
ProsopoCaptchaClient.contract = undefined;
|
|
87
|
+
ProsopoCaptchaClient.provider = undefined;
|
|
88
|
+
ProsopoCaptchaClient.captchaApi = undefined;
|
|
89
|
+
if (this.callbacks?.onAccountChange) {
|
|
90
|
+
this.callbacks.onAccountChange(undefined);
|
|
91
|
+
}
|
|
92
|
+
this.manager.update({ account: undefined });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.ProsopoCaptchaClient = ProsopoCaptchaClient;
|
|
96
|
+
exports.default = ProsopoCaptchaClient;
|
|
97
|
+
//# sourceMappingURL=ProsopoCaptchaClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaClient.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ICaptchaStateReducer, TCaptchaSubmitResult } from "../types/client";
|
|
2
|
+
import { CaptchaSolution, GetCaptchaResponse } from "../types/api";
|
|
3
|
+
import { ProsopoCaptchaClient } from "./ProsopoCaptchaClient";
|
|
4
|
+
export declare class ProsopoCaptchaStateClient {
|
|
5
|
+
context: ProsopoCaptchaClient;
|
|
6
|
+
manager: ICaptchaStateReducer;
|
|
7
|
+
constructor(context: ProsopoCaptchaClient, manager: ICaptchaStateReducer);
|
|
8
|
+
onLoadCaptcha(): Promise<void>;
|
|
9
|
+
onCancel(): void;
|
|
10
|
+
onSubmit(): Promise<void>;
|
|
11
|
+
onSolved(submitResult: TCaptchaSubmitResult): Promise<void>;
|
|
12
|
+
onChange(index: number): void;
|
|
13
|
+
dismissCaptcha(): void;
|
|
14
|
+
parseSolution(captchaChallenge: GetCaptchaResponse, captchaSolution: number[][]): CaptchaSolution[];
|
|
15
|
+
}
|
|
16
|
+
export default ProsopoCaptchaStateClient;
|
|
17
|
+
//# sourceMappingURL=ProsopoCaptchaStateClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaStateClient.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaStateClient.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAA2B,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,qBAAa,yBAAyB;IAE3B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,oBAAoB,CAAC;gBAEzB,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;IAK3D,aAAa;IAoBnB,QAAQ;IAOF,QAAQ;IA0CR,QAAQ,CAAC,YAAY,EAAE,oBAAoB;IAajD,QAAQ,CAAC,KAAK,EAAE,MAAM;IAetB,cAAc;IAKd,aAAa,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,GAAG,eAAe,EAAE;CAc7G;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProsopoCaptchaStateClient = void 0;
|
|
4
|
+
const contract_1 = require("@prosopo/contract");
|
|
5
|
+
class ProsopoCaptchaStateClient {
|
|
6
|
+
context;
|
|
7
|
+
manager;
|
|
8
|
+
constructor(context, manager) {
|
|
9
|
+
this.context = context;
|
|
10
|
+
this.manager = manager;
|
|
11
|
+
}
|
|
12
|
+
async onLoadCaptcha() {
|
|
13
|
+
let captchaChallenge;
|
|
14
|
+
try {
|
|
15
|
+
captchaChallenge = await this.context.getCaptchaApi().getCaptchaChallenge();
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
captchaChallenge = err;
|
|
19
|
+
}
|
|
20
|
+
if (this.context.callbacks?.onLoadCaptcha) {
|
|
21
|
+
this.context.callbacks.onLoadCaptcha(captchaChallenge);
|
|
22
|
+
}
|
|
23
|
+
if (captchaChallenge instanceof Error) {
|
|
24
|
+
captchaChallenge = undefined;
|
|
25
|
+
}
|
|
26
|
+
this.manager.update({ captchaChallenge, captchaIndex: 0 });
|
|
27
|
+
}
|
|
28
|
+
onCancel() {
|
|
29
|
+
if (this.context.callbacks?.onCancel) {
|
|
30
|
+
this.context.callbacks.onCancel();
|
|
31
|
+
}
|
|
32
|
+
this.dismissCaptcha();
|
|
33
|
+
}
|
|
34
|
+
async onSubmit() {
|
|
35
|
+
const { captchaChallenge, captchaIndex, captchaSolution } = this.manager.state;
|
|
36
|
+
const nextCaptchaIndex = captchaIndex + 1;
|
|
37
|
+
if (nextCaptchaIndex < captchaChallenge.captchas.length) {
|
|
38
|
+
captchaSolution[nextCaptchaIndex] = [];
|
|
39
|
+
this.manager.update({ captchaIndex: nextCaptchaIndex, captchaSolution });
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const signer = this.context.getExtension().getExtension().signer;
|
|
43
|
+
const currentCaptcha = captchaChallenge.captchas[captchaIndex];
|
|
44
|
+
const { datasetId } = currentCaptcha.captcha; // TODO arbitrary datasetId? Could datasetId be moved up next to requestHash?
|
|
45
|
+
const solutions = this.parseSolution(captchaChallenge, captchaSolution);
|
|
46
|
+
let submitResult;
|
|
47
|
+
try {
|
|
48
|
+
submitResult = await this.context.getCaptchaApi().submitCaptchaSolution(signer, captchaChallenge.requestHash, datasetId, solutions);
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
submitResult = err;
|
|
52
|
+
}
|
|
53
|
+
if (this.context.callbacks?.onSubmit) {
|
|
54
|
+
this.context.callbacks.onSubmit(submitResult, this.manager.state);
|
|
55
|
+
}
|
|
56
|
+
this.manager.update({ captchaSolution: [] });
|
|
57
|
+
if (submitResult instanceof Error) {
|
|
58
|
+
// TODO onFail?
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
await this.onSolved(submitResult);
|
|
62
|
+
}
|
|
63
|
+
// TODO check for solved captchas.
|
|
64
|
+
async onSolved(submitResult) {
|
|
65
|
+
let isHuman;
|
|
66
|
+
try {
|
|
67
|
+
isHuman = await this.context.getContract()?.dappOperatorIsHumanUser(this.context.solutionThreshold);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
// TODO
|
|
71
|
+
}
|
|
72
|
+
this.dismissCaptcha();
|
|
73
|
+
if (this.context.callbacks?.onSolved) {
|
|
74
|
+
this.context.callbacks.onSolved(submitResult, isHuman);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
onChange(index) {
|
|
78
|
+
const { captchaIndex, captchaSolution } = this.manager.state;
|
|
79
|
+
let currentSolution = captchaSolution[captchaIndex] || [];
|
|
80
|
+
currentSolution = currentSolution.includes(index) ? currentSolution.filter(item => item !== index) : [...currentSolution, index];
|
|
81
|
+
captchaSolution[captchaIndex] = currentSolution;
|
|
82
|
+
if (this.context.callbacks?.onChange) {
|
|
83
|
+
this.context.callbacks.onChange(captchaSolution, captchaIndex);
|
|
84
|
+
}
|
|
85
|
+
this.manager.update({ captchaSolution });
|
|
86
|
+
}
|
|
87
|
+
dismissCaptcha() {
|
|
88
|
+
this.manager.update({ captchaChallenge: undefined });
|
|
89
|
+
}
|
|
90
|
+
// TODO move to ProsopoContract/ProviderApi/Model?
|
|
91
|
+
parseSolution(captchaChallenge, captchaSolution) {
|
|
92
|
+
const parsedSolution = [];
|
|
93
|
+
for (const [index, challenge] of captchaChallenge.captchas.entries()) {
|
|
94
|
+
const solution = captchaSolution[index] || [];
|
|
95
|
+
challenge.captcha.solution = solution;
|
|
96
|
+
parsedSolution[index] = (0, contract_1.convertCaptchaToCaptchaSolution)(challenge.captcha);
|
|
97
|
+
}
|
|
98
|
+
console.log("CAPTCHA SOLUTIONS", parsedSolution);
|
|
99
|
+
return parsedSolution;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.ProsopoCaptchaStateClient = ProsopoCaptchaStateClient;
|
|
103
|
+
exports.default = ProsopoCaptchaStateClient;
|
|
104
|
+
//# sourceMappingURL=ProsopoCaptchaStateClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaStateClient.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaStateClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ICaptchaContextState, ICaptchaState, ICaptchaStatusState, ICaptchaStatusReducerAction } from '../types';
|
|
2
|
+
export declare const captchaContextReducer: (state: ICaptchaContextState, action: Partial<ICaptchaContextState>) => {
|
|
3
|
+
config: import("../types").ProsopoCaptchaConfig;
|
|
4
|
+
contractAddress?: string | undefined;
|
|
5
|
+
account?: import("@polkadot/extension-inject/types").InjectedAccountWithMeta | undefined;
|
|
6
|
+
};
|
|
7
|
+
export declare const captchaStateReducer: (state: ICaptchaState, action: Partial<ICaptchaState>) => ICaptchaState;
|
|
8
|
+
export declare const captchaStatusReducer: (state: ICaptchaStatusState, action: ICaptchaStatusReducerAction) => ICaptchaStatusState;
|
|
9
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/modules/client.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAGjH,eAAO,MAAM,qBAAqB,UAAW,oBAAoB,UAAU,QAAQ,oBAAoB,CAAC;;;;CAEvG,CAAA;AAED,eAAO,MAAM,mBAAmB,UAAW,aAAa,UAAU,QAAQ,aAAa,CAAC,KAAG,aAE1F,CAAA;AAED,eAAO,MAAM,oBAAoB,UAAW,mBAAmB,UAAU,2BAA2B,KAAG,mBAWtG,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// Copyright (C) 2021-2022 Prosopo (UK) Ltd.
|
|
2
3
|
// This file is part of procaptcha <https://github.com/prosopo-io/procaptcha>.
|
|
3
4
|
//
|
|
@@ -13,19 +14,17 @@
|
|
|
13
14
|
//
|
|
14
15
|
// You should have received a copy of the GNU General Public License
|
|
15
16
|
// along with procaptcha. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export const captchaContextReducer = (state: ICaptchaContextState, action: Partial<ICaptchaContextState>) => {
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.captchaStatusReducer = exports.captchaStateReducer = exports.captchaContextReducer = void 0;
|
|
19
|
+
const captchaContextReducer = (state, action) => {
|
|
21
20
|
return { ...state, ...action };
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
};
|
|
22
|
+
exports.captchaContextReducer = captchaContextReducer;
|
|
23
|
+
const captchaStateReducer = (state, action) => {
|
|
25
24
|
return { ...state, ...action };
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
};
|
|
26
|
+
exports.captchaStateReducer = captchaStateReducer;
|
|
27
|
+
const captchaStatusReducer = (state, action) => {
|
|
29
28
|
const logger = { info: console.log, error: console.error };
|
|
30
29
|
for (const key in action) {
|
|
31
30
|
logger[key](action[key]);
|
|
@@ -36,4 +35,6 @@ export const captchaStatusReducer = (state: ICaptchaStatusState, action: ICaptch
|
|
|
36
35
|
return { [key]: String(status) };
|
|
37
36
|
}
|
|
38
37
|
return state;
|
|
39
|
-
}
|
|
38
|
+
};
|
|
39
|
+
exports.captchaStatusReducer = captchaStatusReducer;
|
|
40
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/modules/client.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,8EAA8E;AAC9E,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,gEAAgE;AAChE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,sEAAsE;;;AAK/D,MAAM,qBAAqB,GAAG,CAAC,KAA2B,EAAE,MAAqC,EAAE,EAAE;IACxG,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC;AACnC,CAAC,CAAA;AAFY,QAAA,qBAAqB,yBAEjC;AAEM,MAAM,mBAAmB,GAAG,CAAC,KAAoB,EAAE,MAA8B,EAAiB,EAAE;IACvG,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC;AACnC,CAAC,CAAA;AAFY,QAAA,mBAAmB,uBAE/B;AAEM,MAAM,oBAAoB,GAAG,CAAC,KAA0B,EAAE,MAAmC,EAAuB,EAAE;IACzH,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvE,IAAI,MAAM,YAAY,KAAK,EAAE;YACzB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;SAC3B;QACD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KACpC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAA;AAXY,QAAA,oBAAoB,wBAWhC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ProsopoContract from "../api/ProsopoContract";
|
|
2
|
+
import { WsProvider } from "@polkadot/rpc-provider";
|
|
3
|
+
import { InjectedAccountWithMeta } from "@polkadot/extension-inject/types";
|
|
4
|
+
import { ProviderInterface } from "@polkadot/rpc-provider/types";
|
|
5
|
+
export declare function getWsProvider(url?: string): WsProvider;
|
|
6
|
+
export declare function getProsopoContract(address: string, dappAddress: string, account: InjectedAccountWithMeta, providerInterface?: ProviderInterface): Promise<ProsopoContract>;
|
|
7
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/modules/contract.ts"],"names":[],"mappings":"AAeA,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAgB,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAEtD;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAEhL"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProsopoContract = exports.getWsProvider = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
1
5
|
// Copyright (C) 2021-2022 Prosopo (UK) Ltd.
|
|
2
6
|
// This file is part of procaptcha <https://github.com/prosopo-io/procaptcha>.
|
|
3
7
|
//
|
|
@@ -13,25 +17,14 @@
|
|
|
13
17
|
//
|
|
14
18
|
// You should have received a copy of the GNU General Public License
|
|
15
19
|
// along with procaptcha. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
protected readonly axios: AxiosInstance;
|
|
21
|
-
|
|
22
|
-
constructor(baseURL: string, prefix = "") {
|
|
23
|
-
baseURL = baseURL + prefix;
|
|
24
|
-
this.axios = axios.create({ baseURL });
|
|
25
|
-
this.axios.interceptors.response.use(this.responseHandler, this.errorHandler);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
protected responseHandler = (response: AxiosResponse) => {
|
|
29
|
-
console.log("API REQUEST", response.request);
|
|
30
|
-
return response.data;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
protected errorHandler = (error: any) => Promise.reject(error.response);
|
|
34
|
-
|
|
20
|
+
const ProsopoContract_1 = tslib_1.__importDefault(require("../api/ProsopoContract"));
|
|
21
|
+
const rpc_provider_1 = require("@polkadot/rpc-provider");
|
|
22
|
+
function getWsProvider(url) {
|
|
23
|
+
return new rpc_provider_1.WsProvider(url);
|
|
35
24
|
}
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
exports.getWsProvider = getWsProvider;
|
|
26
|
+
async function getProsopoContract(address, dappAddress, account, providerInterface) {
|
|
27
|
+
return await ProsopoContract_1.default.create(address, dappAddress, account, providerInterface ?? getWsProvider());
|
|
28
|
+
}
|
|
29
|
+
exports.getProsopoContract = getProsopoContract;
|
|
30
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/modules/contract.ts"],"names":[],"mappings":";;;;AAAA,4CAA4C;AAC5C,8EAA8E;AAC9E,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,gEAAgE;AAChE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,qFAAqD;AACrD,yDAAkE;AAIlE,SAAgB,aAAa,CAAC,GAAY;IACtC,OAAO,IAAI,yBAAU,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAFD,sCAEC;AAEM,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,WAAmB,EAAE,OAAgC,EAAE,iBAAqC;IAClJ,OAAO,MAAM,yBAAe,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,CAAC,CAAC;AAC7G,CAAC;AAFD,gDAEC"}
|