@prosopo/procaptcha 0.1.5 → 0.1.6
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/.eslintignore +3 -0
- package/.eslintrc.js +21 -0
- package/README.md +1 -1
- package/dist/api/AccountCreator.d.ts +16 -0
- package/dist/api/AccountCreator.d.ts.map +1 -0
- package/dist/api/AccountCreator.js +58 -0
- package/dist/api/AccountCreator.js.map +1 -0
- package/dist/api/AsyncFactory.d.ts.map +1 -1
- package/dist/api/AsyncFactory.js +2 -1
- package/dist/api/AsyncFactory.js.map +1 -1
- package/dist/api/ExtensionWeb2.d.ts +24 -0
- package/dist/api/ExtensionWeb2.d.ts.map +1 -0
- package/dist/api/ExtensionWeb2.js +102 -0
- package/dist/api/ExtensionWeb2.js.map +1 -0
- package/dist/api/{Extension.d.ts → ExtensionWeb3.d.ts} +4 -3
- package/dist/api/ExtensionWeb3.d.ts.map +1 -0
- package/dist/api/{Extension.js → ExtensionWeb3.js} +16 -12
- package/dist/api/ExtensionWeb3.js.map +1 -0
- package/dist/api/HttpClientBase.d.ts.map +1 -1
- package/dist/api/HttpClientBase.js.map +1 -1
- package/dist/api/ProsopoContract.d.ts +1 -1
- package/dist/api/ProsopoContract.d.ts.map +1 -1
- package/dist/api/ProsopoContract.js +2 -4
- package/dist/api/ProsopoContract.js.map +1 -1
- package/dist/api/ProsopoContractBase.d.ts +6 -5
- package/dist/api/ProsopoContractBase.d.ts.map +1 -1
- package/dist/api/ProsopoContractBase.js +8 -7
- package/dist/api/ProsopoContractBase.js.map +1 -1
- package/dist/api/ProviderApi.d.ts +4 -8
- package/dist/api/ProviderApi.d.ts.map +1 -1
- package/dist/api/ProviderApi.js +14 -12
- package/dist/api/ProviderApi.js.map +1 -1
- package/dist/api/handlers.d.ts.map +1 -1
- package/dist/api/handlers.js +0 -1
- package/dist/api/handlers.js.map +1 -1
- package/dist/api/index.d.ts +2 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +2 -1
- package/dist/api/index.js.map +1 -1
- package/dist/modules/ProsopoCaptchaApi.d.ts +6 -2
- package/dist/modules/ProsopoCaptchaApi.d.ts.map +1 -1
- package/dist/modules/ProsopoCaptchaApi.js +28 -6
- package/dist/modules/ProsopoCaptchaApi.js.map +1 -1
- package/dist/modules/ProsopoCaptchaClient.d.ts +2 -3
- package/dist/modules/ProsopoCaptchaClient.d.ts.map +1 -1
- package/dist/modules/ProsopoCaptchaClient.js +32 -17
- package/dist/modules/ProsopoCaptchaClient.js.map +1 -1
- package/dist/modules/ProsopoCaptchaStateClient.d.ts +4 -3
- package/dist/modules/ProsopoCaptchaStateClient.d.ts.map +1 -1
- package/dist/modules/ProsopoCaptchaStateClient.js +28 -25
- package/dist/modules/ProsopoCaptchaStateClient.js.map +1 -1
- package/dist/modules/contract.js +1 -1
- package/dist/modules/contract.js.map +1 -1
- package/dist/modules/extension.d.ts +2 -2
- package/dist/modules/extension.d.ts.map +1 -1
- package/dist/modules/extension.js +9 -3
- package/dist/modules/extension.js.map +1 -1
- package/dist/types/api.d.ts +3 -10
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/client.d.ts +5 -4
- package/dist/types/client.d.ts.map +1 -1
- package/package.json +10 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/api/Extension.d.ts.map +0 -1
- package/dist/api/Extension.js.map +0 -1
- package/img/contracts-page.png +0 -0
package/dist/api/ProviderApi.js
CHANGED
|
@@ -25,14 +25,6 @@ class ProviderApi extends HttpClientBase_1.default {
|
|
|
25
25
|
super(config['providerApi.baseURL'], config['providerApi.prefix']);
|
|
26
26
|
this.config = config;
|
|
27
27
|
}
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* @deprecated use ProsopoContract$getRandomProvider instead.
|
|
31
|
-
*/
|
|
32
|
-
getRandomProvider() {
|
|
33
|
-
const userAccount = storage_1.default.getAccount();
|
|
34
|
-
return this.axios.get(`/random_provider/${userAccount}/${this.config['dappAccount']}`);
|
|
35
|
-
}
|
|
36
28
|
getProviders() {
|
|
37
29
|
return this.axios.get(`/providers`);
|
|
38
30
|
}
|
|
@@ -40,13 +32,23 @@ class ProviderApi extends HttpClientBase_1.default {
|
|
|
40
32
|
return this.axios.get(`/contract_address`);
|
|
41
33
|
}
|
|
42
34
|
getCaptchaChallenge(randomProvider) {
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
const { provider } = randomProvider;
|
|
36
|
+
let { blockNumber } = randomProvider;
|
|
37
|
+
blockNumber = blockNumber.replace(/,/g, '');
|
|
45
38
|
const userAccount = storage_1.default.getAccount();
|
|
46
39
|
return this.axios.get(`/provider/captcha/${provider.captchaDatasetId}/${userAccount}/${this.config['dappAccount']}/${blockNumber}`);
|
|
47
40
|
}
|
|
48
|
-
submitCaptchaSolution(
|
|
49
|
-
return this.axios.post(`/provider/solution`, {
|
|
41
|
+
submitCaptchaSolution(captchas, requestHash, userAccount, salt, blockHash, txHash, web2) {
|
|
42
|
+
return this.axios.post(`/provider/solution`, {
|
|
43
|
+
blockHash,
|
|
44
|
+
captchas,
|
|
45
|
+
requestHash,
|
|
46
|
+
txHash,
|
|
47
|
+
userAccount,
|
|
48
|
+
dappAccount: this.config['dappAccount'],
|
|
49
|
+
web2,
|
|
50
|
+
salt
|
|
51
|
+
});
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
54
|
exports.ProviderApi = ProviderApi;
|
|
@@ -1 +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;
|
|
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;AASzC,MAAa,WAAY,SAAQ,wBAAc;IAEnC,MAAM,CAAuB;IAErC,YAAY,MAA4B;QACpC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC;IAEM,mBAAmB,CAAC,cAA6C;QACpE,MAAM,EAAC,QAAQ,EAAC,GAAG,cAAc,CAAC;QAClC,IAAI,EAAC,WAAW,EAAC,GAAG,cAAc,CAAC;QACnC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5C,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;IACxI,CAAC;IAEM,qBAAqB,CAAC,QAA2B,EAAE,WAAmB,EAAE,WAAmB,EAAE,IAAY,EAAE,SAAkB,EAAE,MAAe,EAAE,IAAc;QACjK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACzC,SAAS;YACT,QAAQ;YACR,WAAW;YACX,MAAM;YACN,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACvC,IAAI;YACJ,IAAI;SACP,CAAC,CAAC;IACP,CAAC;CAEJ;AAtCD,kCAsCC;AAED,kBAAe,WAAW,CAAC"}
|
|
@@ -1 +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;
|
|
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;gBAC1B,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE;CAUvE"}
|
package/dist/api/handlers.js
CHANGED
|
@@ -5,7 +5,6 @@ class ProsopoApiError extends Error {
|
|
|
5
5
|
constructor(error, context, ...params) {
|
|
6
6
|
super(`${error.data.message ? error.data.message : error.statusText}`);
|
|
7
7
|
this.name = context && `${ProsopoApiError.name}@${context}` || ProsopoApiError.name;
|
|
8
|
-
// TODO: if env.debug
|
|
9
8
|
console.error('\n********************* ERROR *********************\n');
|
|
10
9
|
console.error(this.cause, this.stack, ...params);
|
|
11
10
|
}
|
package/dist/api/handlers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":";;;AAiBA,MAAa,eAAgB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/api/handlers.ts"],"names":[],"mappings":";;;AAiBA,MAAa,eAAgB,SAAQ,KAAK;IACtC,YAAY,KAAoB,EAAE,OAAgB,EAAE,GAAG,MAAa;QAEhE,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;QAGpF,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC;IACrD,CAAC;CACJ;AAXD,0CAWC"}
|
package/dist/api/index.d.ts
CHANGED
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAeA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAeA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
|
package/dist/api/index.js
CHANGED
|
@@ -17,7 +17,8 @@ const tslib_1 = require("tslib");
|
|
|
17
17
|
// You should have received a copy of the GNU General Public License
|
|
18
18
|
// along with procaptcha. If not, see <http://www.gnu.org/licenses/>.
|
|
19
19
|
tslib_1.__exportStar(require("./AsyncFactory"), exports);
|
|
20
|
-
tslib_1.__exportStar(require("./
|
|
20
|
+
tslib_1.__exportStar(require("./ExtensionWeb3"), exports);
|
|
21
|
+
tslib_1.__exportStar(require("./ExtensionWeb2"), exports);
|
|
21
22
|
tslib_1.__exportStar(require("./HttpClientBase"), exports);
|
|
22
23
|
tslib_1.__exportStar(require("./ProsopoContract"), exports);
|
|
23
24
|
tslib_1.__exportStar(require("./ProsopoContractBase"), exports);
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +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,
|
|
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,0DAAgC;AAChC,0DAAgC;AAChC,2DAAiC;AACjC,4DAAkC;AAClC,gEAAsC;AACtC,wDAA8B"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import { CaptchaSolution } from
|
|
1
|
+
import { CaptchaSolution } from "@prosopo/contract";
|
|
2
2
|
import { Signer } from "@polkadot/api/types";
|
|
3
3
|
import { ProsopoRandomProviderResponse, GetCaptchaResponse } from "../types/api";
|
|
4
4
|
import ProviderApi from "../api/ProviderApi";
|
|
5
5
|
import ProsopoContract from "../api/ProsopoContract";
|
|
6
6
|
import { TCaptchaSubmitResult } from '../types/client';
|
|
7
|
+
export declare type SubmitFunction = typeof ProsopoCaptchaApi.prototype.submitCaptchaSolutionWeb3 | typeof ProsopoCaptchaApi.prototype.submitCaptchaSolutionWeb2;
|
|
7
8
|
export declare class ProsopoCaptchaApi {
|
|
8
9
|
protected contract: ProsopoContract;
|
|
9
10
|
protected provider: ProsopoRandomProviderResponse;
|
|
10
11
|
protected providerApi: ProviderApi;
|
|
11
|
-
|
|
12
|
+
protected submitCaptchaFn: SubmitFunction;
|
|
13
|
+
constructor(contract: ProsopoContract, provider: ProsopoRandomProviderResponse, providerApi: ProviderApi, web2: boolean);
|
|
12
14
|
getCaptchaChallenge(): Promise<GetCaptchaResponse>;
|
|
13
15
|
submitCaptchaSolution(signer: Signer, requestHash: string, datasetId: string, solutions: CaptchaSolution[]): Promise<TCaptchaSubmitResult>;
|
|
16
|
+
submitCaptchaSolutionWeb2(signer: Signer, requestHash: string, datasetId: string, solutions: CaptchaSolution[]): Promise<TCaptchaSubmitResult>;
|
|
17
|
+
submitCaptchaSolutionWeb3(signer: Signer, requestHash: string, datasetId: string, solutions: CaptchaSolution[]): Promise<TCaptchaSubmitResult>;
|
|
14
18
|
}
|
|
15
19
|
export default ProsopoCaptchaApi;
|
|
16
20
|
//# sourceMappingURL=ProsopoCaptchaApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProsopoCaptchaApi.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"AAiBA,OAAO,
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaApi.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"AAiBA,OAAO,EACH,eAAe,EAGlB,MAAM,mBAAmB,CAAC;AAC3B,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,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAWrD,oBAAY,cAAc,GACtB,OAAO,iBAAiB,CAAC,SAAS,CAAC,yBAAyB,GAC1D,OAAO,iBAAiB,CAAC,SAAS,CAAC,yBAAyB,CAAC;AAEnE,qBAAa,iBAAiB;IAE1B,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC;IACpC,SAAS,CAAC,QAAQ,EAAE,6BAA6B,CAAC;IAClD,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC,SAAS,CAAC,eAAe,EAAE,cAAc,CAAA;gBAE7B,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,6BAA6B,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO;IAO1G,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,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIjJ,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBvI,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAI,OAAO,CAAC,oBAAoB,CAAC;CA+C/J;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -17,23 +17,25 @@ exports.ProsopoCaptchaApi = void 0;
|
|
|
17
17
|
// You should have received a copy of the GNU General Public License
|
|
18
18
|
// along with procaptcha. If not, see <http://www.gnu.org/licenses/>.
|
|
19
19
|
const util_crypto_1 = require("@polkadot/util-crypto");
|
|
20
|
-
// import {computeCaptchaSolutionHash} from '@prosopo/provider';
|
|
20
|
+
// import {computeCaptchaSolutionHash} from '@prosopo/provider';
|
|
21
21
|
const contract_1 = require("@prosopo/contract");
|
|
22
22
|
const handlers_1 = require("../api/handlers");
|
|
23
23
|
function hexHash(data) {
|
|
24
24
|
return (0, util_crypto_1.blake2AsHex)(data);
|
|
25
25
|
}
|
|
26
26
|
function computeCaptchaSolutionHash(captcha) {
|
|
27
|
-
return hexHash([captcha.captchaId, captcha.solution, captcha.salt].join());
|
|
27
|
+
return hexHash([captcha.captchaId, [...captcha.solution].sort(), captcha.salt].join());
|
|
28
28
|
}
|
|
29
29
|
class ProsopoCaptchaApi {
|
|
30
30
|
contract;
|
|
31
31
|
provider;
|
|
32
32
|
providerApi;
|
|
33
|
-
|
|
33
|
+
submitCaptchaFn;
|
|
34
|
+
constructor(contract, provider, providerApi, web2) {
|
|
34
35
|
this.contract = contract;
|
|
35
36
|
this.provider = provider;
|
|
36
37
|
this.providerApi = providerApi;
|
|
38
|
+
this.submitCaptchaFn = web2 ? this.submitCaptchaSolutionWeb2 : this.submitCaptchaSolutionWeb3;
|
|
37
39
|
}
|
|
38
40
|
async getCaptchaChallenge() {
|
|
39
41
|
let captchaChallenge;
|
|
@@ -46,9 +48,30 @@ class ProsopoCaptchaApi {
|
|
|
46
48
|
return captchaChallenge;
|
|
47
49
|
}
|
|
48
50
|
async submitCaptchaSolution(signer, requestHash, datasetId, solutions) {
|
|
51
|
+
return this.submitCaptchaFn(signer, requestHash, datasetId, solutions);
|
|
52
|
+
}
|
|
53
|
+
async submitCaptchaSolutionWeb2(signer, requestHash, datasetId, solutions) {
|
|
54
|
+
const salt = (0, util_crypto_1.randomAsHex)();
|
|
55
|
+
const captchaSolutionsSalted = solutions.map((captcha) => ({
|
|
56
|
+
...captcha,
|
|
57
|
+
salt,
|
|
58
|
+
}));
|
|
59
|
+
let result;
|
|
60
|
+
try {
|
|
61
|
+
result = await this.providerApi.submitCaptchaSolution(captchaSolutionsSalted, requestHash, this.contract.getAccount().address, salt, undefined, undefined, true);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
throw new handlers_1.ProsopoApiError(err);
|
|
65
|
+
}
|
|
66
|
+
return [result, undefined, undefined];
|
|
67
|
+
}
|
|
68
|
+
async submitCaptchaSolutionWeb3(signer, requestHash, datasetId, solutions) {
|
|
49
69
|
const salt = (0, util_crypto_1.randomAsHex)();
|
|
50
70
|
const tree = new contract_1.CaptchaMerkleTree();
|
|
51
|
-
const captchaSolutionsSalted = solutions.map(
|
|
71
|
+
const captchaSolutionsSalted = solutions.map((captcha) => ({
|
|
72
|
+
...captcha,
|
|
73
|
+
salt,
|
|
74
|
+
}));
|
|
52
75
|
const captchasHashed = captchaSolutionsSalted.map((captcha) => computeCaptchaSolutionHash(captcha));
|
|
53
76
|
tree.build(captchasHashed);
|
|
54
77
|
const commitmentId = tree.root.hash;
|
|
@@ -65,13 +88,12 @@ class ProsopoCaptchaApi {
|
|
|
65
88
|
}
|
|
66
89
|
let result;
|
|
67
90
|
try {
|
|
68
|
-
result = await this.providerApi.submitCaptchaSolution(
|
|
91
|
+
result = await this.providerApi.submitCaptchaSolution(captchaSolutionsSalted, requestHash, this.contract.getAccount().address, salt, tx.blockHash, tx.txHash.toString());
|
|
69
92
|
}
|
|
70
93
|
catch (err) {
|
|
71
94
|
throw new handlers_1.ProsopoApiError(err);
|
|
72
95
|
}
|
|
73
96
|
let commitment;
|
|
74
|
-
// TODO concurrency?
|
|
75
97
|
try {
|
|
76
98
|
commitment = await this.contract.getCaptchaSolutionCommitment(commitmentId);
|
|
77
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProsopoCaptchaApi.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.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,uDAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaApi.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,18 +8,17 @@ export declare class ProsopoCaptchaClient {
|
|
|
8
8
|
status: ICaptchaStatusReducer;
|
|
9
9
|
callbacks: CaptchaEventCallbacks | undefined;
|
|
10
10
|
providerApi: ProviderApi;
|
|
11
|
-
solutionThreshold: number;
|
|
12
11
|
private static extension;
|
|
13
12
|
private static contract;
|
|
14
13
|
private static provider;
|
|
15
14
|
private static captchaApi;
|
|
16
15
|
constructor(manager: ICaptchaContextReducer, status: ICaptchaStatusReducer, callbacks?: CaptchaEventCallbacks);
|
|
17
16
|
getExtension(): IExtensionInterface;
|
|
18
|
-
setExtension(extension: IExtensionInterface):
|
|
17
|
+
setExtension(extension: IExtensionInterface): void;
|
|
19
18
|
getContract(): ProsopoContract | undefined;
|
|
20
19
|
getProvider(): ProsopoRandomProviderResponse | undefined;
|
|
21
20
|
getCaptchaApi(): ProsopoCaptchaApi | undefined;
|
|
22
|
-
onLoad(): Promise<void>;
|
|
21
|
+
onLoad(createAccount?: boolean): Promise<void>;
|
|
23
22
|
onAccountChange(account?: TExtensionAccount): Promise<void>;
|
|
24
23
|
onAccountUnset(): void;
|
|
25
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProsopoCaptchaClient.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaClient.ts"],"names":[],"mappings":"AAeA,OAAO,
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaClient.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaClient.ts"],"names":[],"mappings":"AAeA,OAAO,EACH,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,6BAA6B,EAAC,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAGtD,qBAAa,oBAAoB;IAEtB,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC7C,WAAW,EAAE,WAAW,CAAC;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;IAOtG,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,mBAAmB;IAI3C,WAAW;IAIX,WAAW;IAIX,aAAa;IAIP,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO;IAkC9B,eAAe,CAAC,OAAO,CAAC,EAAE,iBAAiB;IA2CjD,cAAc;CAYxB;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -5,13 +5,12 @@ const contract_1 = require("./contract");
|
|
|
5
5
|
const extension_1 = require("./extension");
|
|
6
6
|
const ProviderApi_1 = require("../api/ProviderApi");
|
|
7
7
|
const ProsopoCaptchaApi_1 = require("./ProsopoCaptchaApi");
|
|
8
|
-
|
|
8
|
+
const contract_2 = require("@prosopo/contract");
|
|
9
9
|
class ProsopoCaptchaClient {
|
|
10
10
|
manager;
|
|
11
11
|
status;
|
|
12
12
|
callbacks;
|
|
13
13
|
providerApi;
|
|
14
|
-
solutionThreshold;
|
|
15
14
|
static extension;
|
|
16
15
|
static contract;
|
|
17
16
|
static provider;
|
|
@@ -21,13 +20,12 @@ class ProsopoCaptchaClient {
|
|
|
21
20
|
this.status = status;
|
|
22
21
|
this.callbacks = callbacks;
|
|
23
22
|
this.providerApi = new ProviderApi_1.ProviderApi(manager.state.config);
|
|
24
|
-
this.solutionThreshold = manager.state.config.solutionThreshold;
|
|
25
23
|
}
|
|
26
24
|
getExtension() {
|
|
27
25
|
return ProsopoCaptchaClient.extension;
|
|
28
26
|
}
|
|
29
27
|
setExtension(extension) {
|
|
30
|
-
|
|
28
|
+
ProsopoCaptchaClient.extension = extension;
|
|
31
29
|
}
|
|
32
30
|
getContract() {
|
|
33
31
|
return ProsopoCaptchaClient.contract;
|
|
@@ -38,20 +36,37 @@ class ProsopoCaptchaClient {
|
|
|
38
36
|
getCaptchaApi() {
|
|
39
37
|
return ProsopoCaptchaClient.captchaApi;
|
|
40
38
|
}
|
|
41
|
-
async onLoad() {
|
|
42
|
-
|
|
43
|
-
if (!ProsopoCaptchaClient.extension || !contractAddress) {
|
|
39
|
+
async onLoad(createAccount) {
|
|
40
|
+
if (!ProsopoCaptchaClient.extension) {
|
|
44
41
|
try {
|
|
45
|
-
|
|
42
|
+
ProsopoCaptchaClient.extension = await (0, extension_1.getExtension)(this.manager.state.config['web2']);
|
|
46
43
|
}
|
|
47
44
|
catch (err) {
|
|
48
|
-
throw new
|
|
45
|
+
throw new contract_2.ProsopoEnvError(err);
|
|
49
46
|
}
|
|
50
47
|
}
|
|
51
48
|
if (this.callbacks?.onLoad) {
|
|
52
|
-
this.callbacks.onLoad(ProsopoCaptchaClient.extension,
|
|
49
|
+
this.callbacks.onLoad(ProsopoCaptchaClient.extension, this.manager.state.config['prosopoContractAccount']);
|
|
50
|
+
this.manager.update({ contractAddress: this.manager.state.config['prosopoContractAccount'] });
|
|
53
51
|
}
|
|
54
|
-
|
|
52
|
+
let account;
|
|
53
|
+
if (createAccount) {
|
|
54
|
+
try {
|
|
55
|
+
account = await this.getExtension().createAccount();
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
throw new contract_2.ProsopoEnvError(err);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
try {
|
|
63
|
+
account = await this.getExtension().getAccount();
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
throw new contract_2.ProsopoEnvError(err);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
await this.onAccountChange(account);
|
|
55
70
|
}
|
|
56
71
|
async onAccountChange(account) {
|
|
57
72
|
if (!account) {
|
|
@@ -62,21 +77,21 @@ class ProsopoCaptchaClient {
|
|
|
62
77
|
ProsopoCaptchaClient.extension.setAccount(account.address);
|
|
63
78
|
}
|
|
64
79
|
catch (err) {
|
|
65
|
-
throw new
|
|
80
|
+
throw new contract_2.ProsopoEnvError(err);
|
|
66
81
|
}
|
|
67
82
|
try {
|
|
68
|
-
ProsopoCaptchaClient.contract = await (0, contract_1.getProsopoContract)(this.manager.state.
|
|
83
|
+
ProsopoCaptchaClient.contract = await (0, contract_1.getProsopoContract)(this.manager.state.config['prosopoContractAccount'], this.manager.state.config['dappAccount'], account, (0, contract_1.getWsProvider)(this.manager.state.config['dappUrl']));
|
|
69
84
|
}
|
|
70
85
|
catch (err) {
|
|
71
|
-
throw new
|
|
86
|
+
throw new contract_2.ProsopoEnvError(err);
|
|
72
87
|
}
|
|
73
88
|
try {
|
|
74
|
-
ProsopoCaptchaClient.provider = await ProsopoCaptchaClient.contract.getRandomProvider();
|
|
89
|
+
ProsopoCaptchaClient.provider = await ProsopoCaptchaClient.contract.getRandomProvider();
|
|
75
90
|
}
|
|
76
91
|
catch (err) {
|
|
77
|
-
throw new
|
|
92
|
+
throw new contract_2.ProsopoEnvError(err);
|
|
78
93
|
}
|
|
79
|
-
ProsopoCaptchaClient.captchaApi = new ProsopoCaptchaApi_1.ProsopoCaptchaApi(ProsopoCaptchaClient.contract, ProsopoCaptchaClient.provider, this.providerApi);
|
|
94
|
+
ProsopoCaptchaClient.captchaApi = new ProsopoCaptchaApi_1.ProsopoCaptchaApi(ProsopoCaptchaClient.contract, ProsopoCaptchaClient.provider, this.providerApi, this.manager.state.config['web2']);
|
|
80
95
|
if (this.callbacks?.onAccountChange) {
|
|
81
96
|
this.callbacks.onAccountChange(account);
|
|
82
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProsopoCaptchaClient.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaClient.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaClient.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ICaptchaStateReducer, TCaptchaSubmitResult } from "../types/client";
|
|
2
|
-
import {
|
|
2
|
+
import { GetCaptchaResponse } from "../types/api";
|
|
3
3
|
import { ProsopoCaptchaClient } from "./ProsopoCaptchaClient";
|
|
4
|
+
import { CaptchaSolution } from "@prosopo/contract";
|
|
4
5
|
export declare class ProsopoCaptchaStateClient {
|
|
5
6
|
context: ProsopoCaptchaClient;
|
|
6
7
|
manager: ICaptchaStateReducer;
|
|
@@ -9,9 +10,9 @@ export declare class ProsopoCaptchaStateClient {
|
|
|
9
10
|
onCancel(): void;
|
|
10
11
|
onSubmit(): Promise<void>;
|
|
11
12
|
onSolved(submitResult: TCaptchaSubmitResult): Promise<void>;
|
|
12
|
-
onChange(
|
|
13
|
+
onChange(hash: string): void;
|
|
13
14
|
dismissCaptcha(): void;
|
|
14
|
-
parseSolution(captchaChallenge: GetCaptchaResponse, captchaSolution:
|
|
15
|
+
parseSolution(captchaChallenge: GetCaptchaResponse, captchaSolution: string[][]): CaptchaSolution[];
|
|
15
16
|
}
|
|
16
17
|
export default ProsopoCaptchaStateClient;
|
|
17
18
|
//# sourceMappingURL=ProsopoCaptchaStateClient.d.ts.map
|
|
@@ -1 +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,
|
|
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,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACH,eAAe,EAGlB,MAAM,mBAAmB,CAAC;AAG3B,qBAAa,yBAAyB;IAE3B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,oBAAoB,CAAC;gBAEzB,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;IAK3D,aAAa;IAqBnB,QAAQ;IAOF,QAAQ;IAsDR,QAAQ,CAAC,YAAY,EAAE,oBAAoB;IAajD,QAAQ,CAAC,IAAI,EAAE,MAAM;IAerB,cAAc;IAKd,aAAa,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,GAAG,eAAe,EAAE;CAc7G;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -12,12 +12,13 @@ class ProsopoCaptchaStateClient {
|
|
|
12
12
|
async onLoadCaptcha() {
|
|
13
13
|
let captchaChallenge;
|
|
14
14
|
try {
|
|
15
|
-
captchaChallenge = await this.context.getCaptchaApi()
|
|
15
|
+
captchaChallenge = await this.context.getCaptchaApi()?.getCaptchaChallenge();
|
|
16
16
|
}
|
|
17
17
|
catch (err) {
|
|
18
18
|
captchaChallenge = err;
|
|
19
|
+
throw new contract_1.ProsopoEnvError(captchaChallenge);
|
|
19
20
|
}
|
|
20
|
-
if (this.context.callbacks?.onLoadCaptcha) {
|
|
21
|
+
if (this.context.callbacks?.onLoadCaptcha && captchaChallenge) {
|
|
21
22
|
this.context.callbacks.onLoadCaptcha(captchaChallenge);
|
|
22
23
|
}
|
|
23
24
|
if (captchaChallenge instanceof Error) {
|
|
@@ -39,45 +40,48 @@ class ProsopoCaptchaStateClient {
|
|
|
39
40
|
this.manager.update({ captchaIndex: nextCaptchaIndex, captchaSolution });
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
42
|
-
const signer = this.context.getExtension().getExtension()
|
|
43
|
+
const signer = this.context.getExtension().getExtension()?.signer;
|
|
43
44
|
const currentCaptcha = captchaChallenge.captchas[captchaIndex];
|
|
44
|
-
const { datasetId } = currentCaptcha.captcha;
|
|
45
|
+
const { datasetId } = currentCaptcha.captcha;
|
|
45
46
|
const solutions = this.parseSolution(captchaChallenge, captchaSolution);
|
|
46
47
|
let submitResult;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
if (signer) {
|
|
49
|
+
try {
|
|
50
|
+
submitResult = await this.context
|
|
51
|
+
.getCaptchaApi()
|
|
52
|
+
.submitCaptchaSolution(signer, captchaChallenge.requestHash, datasetId, solutions);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
submitResult = err;
|
|
56
|
+
}
|
|
57
|
+
if (this.context.callbacks?.onSubmit) {
|
|
58
|
+
this.context.callbacks.onSubmit(submitResult, this.manager.state);
|
|
59
|
+
}
|
|
60
|
+
this.manager.update({ captchaSolution: [] });
|
|
61
|
+
if (submitResult instanceof Error) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
await this.onSolved(submitResult);
|
|
55
65
|
}
|
|
56
66
|
this.manager.update({ captchaSolution: [] });
|
|
57
|
-
if (submitResult instanceof Error) {
|
|
58
|
-
// TODO onFail?
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
await this.onSolved(submitResult);
|
|
62
67
|
}
|
|
63
|
-
// TODO check for solved captchas.
|
|
64
68
|
async onSolved(submitResult) {
|
|
65
69
|
let isHuman;
|
|
66
70
|
try {
|
|
67
|
-
isHuman = await this.context.getContract()?.dappOperatorIsHumanUser(this.context.solutionThreshold);
|
|
71
|
+
isHuman = await this.context.getContract()?.dappOperatorIsHumanUser(this.context.manager.state.config['solutionThreshold']);
|
|
68
72
|
}
|
|
69
73
|
catch (err) {
|
|
70
|
-
|
|
74
|
+
console.log("Error determining whether user is human");
|
|
71
75
|
}
|
|
72
76
|
this.dismissCaptcha();
|
|
73
77
|
if (this.context.callbacks?.onSolved) {
|
|
74
78
|
this.context.callbacks.onSolved(submitResult, isHuman);
|
|
75
79
|
}
|
|
76
80
|
}
|
|
77
|
-
onChange(
|
|
81
|
+
onChange(hash) {
|
|
78
82
|
const { captchaIndex, captchaSolution } = this.manager.state;
|
|
79
83
|
let currentSolution = captchaSolution[captchaIndex] || [];
|
|
80
|
-
currentSolution = currentSolution.includes(
|
|
84
|
+
currentSolution = currentSolution.includes(hash) ? currentSolution.filter(item => item !== hash) : [...currentSolution, hash];
|
|
81
85
|
captchaSolution[captchaIndex] = currentSolution;
|
|
82
86
|
if (this.context.callbacks?.onChange) {
|
|
83
87
|
this.context.callbacks.onChange(captchaSolution, captchaIndex);
|
|
@@ -87,13 +91,12 @@ class ProsopoCaptchaStateClient {
|
|
|
87
91
|
dismissCaptcha() {
|
|
88
92
|
this.manager.update({ captchaChallenge: undefined });
|
|
89
93
|
}
|
|
90
|
-
// TODO move to ProsopoContract/ProviderApi/Model?
|
|
91
94
|
parseSolution(captchaChallenge, captchaSolution) {
|
|
92
95
|
const parsedSolution = [];
|
|
93
96
|
for (const [index, challenge] of captchaChallenge.captchas.entries()) {
|
|
94
97
|
const solution = captchaSolution[index] || [];
|
|
95
|
-
challenge.captcha.solution = solution;
|
|
96
|
-
parsedSolution[index] = (0, contract_1.convertCaptchaToCaptchaSolution)(challenge.captcha);
|
|
98
|
+
// challenge.captcha.solution = solution;
|
|
99
|
+
parsedSolution[index] = (0, contract_1.convertCaptchaToCaptchaSolution)({ ...challenge.captcha, solution });
|
|
97
100
|
}
|
|
98
101
|
console.log("CAPTCHA SOLUTIONS", parsedSolution);
|
|
99
102
|
return parsedSolution;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProsopoCaptchaStateClient.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaStateClient.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ProsopoCaptchaStateClient.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaStateClient.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/contract.js
CHANGED
|
@@ -1 +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;AAED,2EAA2E;AAC3E,+CAA+C;AAC/C,YAAY;AACZ,oCAAoC;AACpC,sBAAsB;AACtB,
|
|
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;AAED,2EAA2E;AAC3E,+CAA+C;AAC/C,YAAY;AACZ,oCAAoC;AACpC,sBAAsB;AACtB,8DAA8D;AAC9D,QAAQ;AACR,uBAAuB;AACvB,IAAI;AAEJ,6JAA6J;AAC7J,oGAAoG;AACpG,IAAI"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare function getExtension(): Promise<
|
|
1
|
+
import { IExtensionInterface } from "../types/index";
|
|
2
|
+
export declare function getExtension(web2: boolean): Promise<IExtensionInterface>;
|
|
3
3
|
//# sourceMappingURL=extension.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/modules/extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/modules/extension.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAC,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAEnD,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAM9E"}
|
|
@@ -17,9 +17,15 @@ const tslib_1 = require("tslib");
|
|
|
17
17
|
//
|
|
18
18
|
// You should have received a copy of the GNU General Public License
|
|
19
19
|
// along with procaptcha. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
const ExtensionWeb2_1 = tslib_1.__importDefault(require("../api/ExtensionWeb2"));
|
|
21
|
+
const ExtensionWeb3_1 = tslib_1.__importDefault(require("../api/ExtensionWeb3"));
|
|
22
|
+
async function getExtension(web2) {
|
|
23
|
+
if (web2) {
|
|
24
|
+
return await ExtensionWeb2_1.default.create();
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return await ExtensionWeb3_1.default.create();
|
|
28
|
+
}
|
|
23
29
|
}
|
|
24
30
|
exports.getExtension = getExtension;
|
|
25
31
|
//# sourceMappingURL=extension.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/modules/extension.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,
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/modules/extension.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,iFAAiD;AACjD,iFAAiD;AAG1C,KAAK,UAAU,YAAY,CAAC,IAAa;IAC5C,IAAI,IAAI,EAAE;QACN,OAAO,MAAM,uBAAa,CAAC,MAAM,EAAE,CAAC;KACvC;SAAM;QACH,OAAO,MAAM,uBAAa,CAAC,MAAM,EAAE,CAAC;KACvC;AACL,CAAC;AAND,oCAMC"}
|