@sravankumar02/sdk-guardians-provider 3.1.1

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 ADDED
@@ -0,0 +1,31 @@
1
+ # drt-js-sdk-guardians-provider
2
+
3
+ Co-Signing provider for dApps: Guardians Provider.
4
+
5
+ <!-- Documentation is available on [docs.dharitri.org](https://docs.dharitri.org/sdk-and-tools/drtjs/drtjs-signing-providers/), while an integration example can be found [here](https://github.com/terradharitri/drt-js-sdk-examples/tree/main/signing-providers).
6
+
7
+ Note that **we recommend using [dapp-core](https://github.com/terradharitri/drt-sdk-dapp)** instead of integrating the signing provider on your own.
8
+
9
+ ## Distribution
10
+
11
+ [npm](https://www.npmjs.com/package/@sravankumar02/sdk-opera-provider)
12
+
13
+ ## Installation
14
+
15
+ `sdk-opera-provider` is delivered via [npm](https://www.npmjs.com/package/@sravankumar02/sdk-opera-provider), therefore it can be installed as follows:
16
+
17
+ ```
18
+ npm install @sravankumar02/sdk-opera-provider
19
+ ```
20
+
21
+ ### Building the library
22
+
23
+ In order to compile the library, run the following:
24
+
25
+ ```
26
+ npm install
27
+ npm run compile
28
+ ``` -->
29
+
30
+
31
+
@@ -0,0 +1,11 @@
1
+ import { AxiosRequestConfig } from "axios";
2
+ declare class ApiFetcher {
3
+ private static _instance;
4
+ private _requestTransformer;
5
+ private axiosInstance;
6
+ constructor();
7
+ static getInstance(): ApiFetcher;
8
+ fetch(config: AxiosRequestConfig): Promise<any>;
9
+ set requestTransformer(transformer: any);
10
+ }
11
+ export default ApiFetcher;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const axios_1 = __importDefault(require("axios"));
16
+ class ApiFetcher {
17
+ constructor() {
18
+ this._requestTransformer = () => null;
19
+ this.axiosInstance = axios_1.default.create();
20
+ if (ApiFetcher._instance) {
21
+ throw new Error("Error: Instantiation failed: Use ApiFetcher.getInstance() instead of new.");
22
+ }
23
+ ApiFetcher._instance = this;
24
+ }
25
+ static getInstance() {
26
+ return ApiFetcher._instance;
27
+ }
28
+ fetch(config) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const transformedConfig = this._requestTransformer !== null
31
+ ? this._requestTransformer(config)
32
+ : null;
33
+ return this.axiosInstance(transformedConfig !== null && transformedConfig !== void 0 ? transformedConfig : config);
34
+ });
35
+ }
36
+ set requestTransformer(transformer) {
37
+ this._requestTransformer = transformer;
38
+ }
39
+ }
40
+ ApiFetcher._instance = new ApiFetcher();
41
+ exports.default = ApiFetcher;
42
+ //# sourceMappingURL=apiFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiFetcher.js","sourceRoot":"","sources":["../src/apiFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAAkD;AAElD,MAAM,UAAU;IAOd;QALQ,wBAAmB,GAEM,GAAG,EAAE,CAAC,IAAI,CAAC;QACpC,kBAAa,GAAG,eAAK,CAAC,MAAM,EAAE,CAAC;QAGrC,IAAI,UAAU,CAAC,SAAS,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;SACH;QACD,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,OAAO,UAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IAEY,KAAK,CAAC,MAA0B;;YAC3C,MAAM,iBAAiB,GACrB,IAAI,CAAC,mBAAmB,KAAK,IAAI;gBAC/B,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC;YACX,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,MAAM,CAAC,CAAC;QACzD,CAAC;KAAA;IAED,IAAW,kBAAkB,CAAC,WAAgB;QAC5C,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;IACzC,CAAC;;AA7Bc,oBAAS,GAAe,IAAI,UAAU,EAAE,AAA/B,CAAgC;AAgC1D,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The base class for exceptions (errors).
3
+ */
4
+ export declare class Err extends Error {
5
+ inner: Error | undefined;
6
+ constructor(message: string, inner?: Error);
7
+ }
package/out/errors.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Err = void 0;
4
+ /**
5
+ * The base class for exceptions (errors).
6
+ */
7
+ class Err extends Error {
8
+ constructor(message, inner) {
9
+ super(message);
10
+ this.inner = undefined;
11
+ this.inner = inner;
12
+ }
13
+ }
14
+ exports.Err = Err;
15
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,GAAI,SAAQ,KAAK;IAG5B,YAAmB,OAAe,EAAE,KAAa;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHjB,UAAK,GAAsB,SAAS,CAAC;QAInC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAPD,kBAOC"}
@@ -0,0 +1,70 @@
1
+ import { Transaction } from "@sravankumar02/sdk-core";
2
+ import ApiFetcher from "./apiFetcher";
3
+ import { IInitData, IRegisterOptions } from "./interface";
4
+ declare class GenericGuardianProvider {
5
+ protected _isAccountGuarded: boolean;
6
+ protected _guardianAddress: string;
7
+ protected _initialized: boolean;
8
+ protected _pendingGuardianAddress: string;
9
+ protected _pendingGuardianActivationEpoch: number;
10
+ protected _pendingGuardianServiceUid: string;
11
+ protected _guardianServiceApiUrl: string;
12
+ protected _pendingGuardianServiceApiUrl: string;
13
+ protected _activeGuardianServiceUid: string;
14
+ protected fetcher: ApiFetcher;
15
+ protected _codeInputLength: number;
16
+ protected _maxCodeInputLenght: number;
17
+ protected _address: string;
18
+ protected _networkId: string;
19
+ protected _apiAddress: string;
20
+ protected _registrationDelay: number;
21
+ protected _backoffWrongCode: number;
22
+ applyGuardianSignature(_data: {
23
+ transactions: Transaction[];
24
+ code: string;
25
+ secondCode?: string;
26
+ }): Promise<Transaction[]>;
27
+ registerGuardian(_options?: IRegisterOptions): Promise<{
28
+ guardianAddress: string;
29
+ otp: {
30
+ scheme: string;
31
+ host: string;
32
+ issuer: string;
33
+ account: string;
34
+ algorithm: string;
35
+ digits: number;
36
+ period: number;
37
+ secret: string;
38
+ counter: number;
39
+ };
40
+ }>;
41
+ verifyCode(_params: {
42
+ code: string;
43
+ secondCode?: string;
44
+ guardian: string;
45
+ }): Promise<boolean>;
46
+ init({ activeGuardianServiceUid, isGuarded, activeGuardianAddress, pendingGuardianActivationEpoch, pendingGuardianAddress, pendingGuardianServiceUid, providerServiceUrl, pendingProviderServiceUrl, address, apiAddress, networkId, registrationDelay, backoffWrongCode, }: IInitData & {
47
+ providerServiceUrl: string;
48
+ pendingProviderServiceUrl: string;
49
+ }): Promise<boolean>;
50
+ /**
51
+ * Used after transactions that affect guardian state
52
+ */
53
+ reinitialize(): Promise<boolean>;
54
+ get initialized(): boolean;
55
+ get isAccountGuarded(): boolean;
56
+ get guardianAddress(): string;
57
+ get pendingGuardianAddress(): string;
58
+ get pendingGuardianActivationEpoch(): number;
59
+ get guardianServiceApiUrl(): string;
60
+ get activeGuardianServiceUid(): string;
61
+ get codeInputLength(): number;
62
+ get address(): string;
63
+ get networkId(): string;
64
+ get apiAddress(): string;
65
+ get registrationDelay(): number | undefined;
66
+ get backoffWrongCode(): number | undefined;
67
+ get pendingGuardianServiceUid(): string;
68
+ get pendingGuardianServiceApiUrl(): string;
69
+ }
70
+ export default GenericGuardianProvider;
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const apiFetcher_1 = __importDefault(require("./apiFetcher"));
16
+ class GenericGuardianProvider {
17
+ constructor() {
18
+ this._isAccountGuarded = false;
19
+ this._guardianAddress = "";
20
+ this._initialized = false;
21
+ this._pendingGuardianAddress = "";
22
+ this._pendingGuardianActivationEpoch = 0;
23
+ this._pendingGuardianServiceUid = "";
24
+ this._guardianServiceApiUrl = "";
25
+ this._pendingGuardianServiceApiUrl = "";
26
+ this._activeGuardianServiceUid = "";
27
+ this.fetcher = apiFetcher_1.default.getInstance();
28
+ this._codeInputLength = 0;
29
+ this._maxCodeInputLenght = 6;
30
+ this._address = "";
31
+ this._networkId = "";
32
+ this._apiAddress = "";
33
+ this._registrationDelay = 0;
34
+ this._backoffWrongCode = 0;
35
+ }
36
+ //TODO: make code optional (invisible guardian or other guardian service usecase)
37
+ applyGuardianSignature(_data) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ throw new Error("Method not implemented.");
40
+ });
41
+ }
42
+ registerGuardian(_options) {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ throw new Error("Method not implemented.");
45
+ });
46
+ }
47
+ verifyCode(_params) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ throw new Error("Method not implemented.");
50
+ });
51
+ }
52
+ init({ activeGuardianServiceUid, isGuarded, activeGuardianAddress, pendingGuardianActivationEpoch, pendingGuardianAddress, pendingGuardianServiceUid, providerServiceUrl, pendingProviderServiceUrl, address, apiAddress, networkId, registrationDelay, backoffWrongCode, }) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ try {
55
+ this._guardianServiceApiUrl = providerServiceUrl;
56
+ this._isAccountGuarded = isGuarded !== null && isGuarded !== void 0 ? isGuarded : false;
57
+ this._guardianAddress = activeGuardianAddress !== null && activeGuardianAddress !== void 0 ? activeGuardianAddress : "";
58
+ this._pendingGuardianAddress = pendingGuardianAddress !== null && pendingGuardianAddress !== void 0 ? pendingGuardianAddress : "";
59
+ this._pendingGuardianActivationEpoch =
60
+ pendingGuardianActivationEpoch !== null && pendingGuardianActivationEpoch !== void 0 ? pendingGuardianActivationEpoch : 0;
61
+ this._activeGuardianServiceUid = activeGuardianServiceUid !== null && activeGuardianServiceUid !== void 0 ? activeGuardianServiceUid : "";
62
+ this._address = address;
63
+ this._apiAddress = apiAddress;
64
+ this._networkId = networkId;
65
+ this._initialized = true;
66
+ this._registrationDelay = registrationDelay;
67
+ this._backoffWrongCode = backoffWrongCode;
68
+ this._pendingGuardianServiceUid = pendingGuardianServiceUid !== null && pendingGuardianServiceUid !== void 0 ? pendingGuardianServiceUid : "";
69
+ this._pendingGuardianServiceApiUrl = pendingProviderServiceUrl;
70
+ return this._initialized;
71
+ }
72
+ catch (error) {
73
+ throw error;
74
+ }
75
+ });
76
+ }
77
+ /**
78
+ * Used after transactions that affect guardian state
79
+ */
80
+ reinitialize() {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ if (!this.initialized) {
83
+ throw new Error("Guardian provider is not initialized.");
84
+ }
85
+ const { data: { activeGuardianServiceUid, isGuarded, activeGuardianAddress, pendingGuardianActivationEpoch, pendingGuardianAddress, }, } = yield this.fetcher.fetch({
86
+ method: "get",
87
+ baseURL: this.apiAddress,
88
+ url: `/accounts/${this.address}/?withGuardianInfo=true`,
89
+ });
90
+ this.init({
91
+ activeGuardianServiceUid,
92
+ isGuarded,
93
+ activeGuardianAddress,
94
+ pendingGuardianActivationEpoch,
95
+ pendingGuardianAddress,
96
+ providerServiceUrl: this.guardianServiceApiUrl,
97
+ pendingProviderServiceUrl: this.pendingGuardianServiceApiUrl,
98
+ address: this._address,
99
+ networkId: this._networkId,
100
+ apiAddress: this._apiAddress,
101
+ registrationDelay: this._registrationDelay,
102
+ backoffWrongCode: this._backoffWrongCode,
103
+ });
104
+ return true;
105
+ });
106
+ }
107
+ get initialized() {
108
+ return this._initialized;
109
+ }
110
+ get isAccountGuarded() {
111
+ return this._isAccountGuarded;
112
+ }
113
+ get guardianAddress() {
114
+ return this._guardianAddress;
115
+ }
116
+ get pendingGuardianAddress() {
117
+ return this._pendingGuardianAddress;
118
+ }
119
+ get pendingGuardianActivationEpoch() {
120
+ return this._pendingGuardianActivationEpoch;
121
+ }
122
+ get guardianServiceApiUrl() {
123
+ return this._guardianServiceApiUrl;
124
+ }
125
+ get activeGuardianServiceUid() {
126
+ return this._activeGuardianServiceUid;
127
+ }
128
+ get codeInputLength() {
129
+ if (!this._codeInputLength) {
130
+ throw new Error("Code input length not set in provider.");
131
+ }
132
+ return this._codeInputLength > this._maxCodeInputLenght
133
+ ? this._maxCodeInputLenght
134
+ : this._codeInputLength;
135
+ }
136
+ get address() {
137
+ return this._address;
138
+ }
139
+ get networkId() {
140
+ return this._networkId;
141
+ }
142
+ get apiAddress() {
143
+ return this._apiAddress;
144
+ }
145
+ get registrationDelay() {
146
+ return this._registrationDelay;
147
+ }
148
+ get backoffWrongCode() {
149
+ return this._backoffWrongCode;
150
+ }
151
+ get pendingGuardianServiceUid() {
152
+ return this._pendingGuardianServiceUid;
153
+ }
154
+ get pendingGuardianServiceApiUrl() {
155
+ return this._pendingGuardianServiceApiUrl;
156
+ }
157
+ }
158
+ exports.default = GenericGuardianProvider;
159
+ //# sourceMappingURL=genericGuardianProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genericGuardianProvider.js","sourceRoot":"","sources":["../src/genericGuardianProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { AxiosRequestConfig } from "axios";
2
+ import GenericGuardianProvider from "./genericGuardianProvider";
3
+ interface ICreateOptions {
4
+ /**
5
+ * If `serviceId` is provided, the factory is forced to resolve to it.
6
+ */
7
+ serviceId?: string;
8
+ }
9
+ interface ICreateProviderParams {
10
+ address: string;
11
+ apiAddress: string;
12
+ /**
13
+ * The network id used to resolve the provider service url.
14
+ */
15
+ networkId: string;
16
+ options?: ICreateOptions;
17
+ }
18
+ declare class GuardianProviderFactory {
19
+ private static fetcher;
20
+ constructor();
21
+ static createProvider({ address, apiAddress, networkId, options, }: ICreateProviderParams): Promise<GenericGuardianProvider>;
22
+ static setRequestTransformer(transformer: (config: AxiosRequestConfig) => AxiosRequestConfig): void;
23
+ private static getAccountGuardianInitData;
24
+ }
25
+ export default GuardianProviderFactory;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const apiFetcher_1 = __importDefault(require("./apiFetcher"));
39
+ const guardianProvidersResolver_1 = __importStar(require("./guardianProvidersResolver"));
40
+ class GuardianProviderFactory {
41
+ constructor() {
42
+ throw new Error("Error: Instantiation failed: Use GuardianProviderFactory.createProvider() instead of new.");
43
+ }
44
+ static createProvider({ address, apiAddress, networkId, options, }) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const guardianInitData = yield GuardianProviderFactory.getAccountGuardianInitData({
47
+ address,
48
+ apiAddress,
49
+ });
50
+ const activeGuardianServiceUid = (options === null || options === void 0 ? void 0 : options.serviceId) ||
51
+ guardianInitData.activeGuardianServiceUid ||
52
+ guardianProvidersResolver_1.DEFAULT_SERVICE_ID;
53
+ const providerData = guardianProvidersResolver_1.default.getProviderByServiceId(activeGuardianServiceUid);
54
+ const pendingProviderData = guardianProvidersResolver_1.default.getProviderByServiceId(guardianInitData.pendingGuardianServiceUid || "");
55
+ if (!providerData)
56
+ throw new Error(`"${activeGuardianServiceUid}" service provider could not be resolved.`);
57
+ const { provider: ResolvedProvider } = providerData;
58
+ const provider = new ResolvedProvider();
59
+ const baseURL = providerData.providerServiceNetworkUrls[networkId];
60
+ if (!baseURL) {
61
+ throw new Error(`Guardian service base network URL does not exist for ID ${networkId}`);
62
+ }
63
+ //TODO: move to TCS implementation in order to not create dependency on tcs
64
+ const { data: { data }, } = yield this.fetcher.fetch({
65
+ method: "get",
66
+ baseURL,
67
+ url: `/guardian/config`,
68
+ });
69
+ if (!data) {
70
+ throw new Error("Could not fetch guardian config");
71
+ }
72
+ yield provider.init(Object.assign(Object.assign({}, guardianInitData), { activeGuardianServiceUid, pendingGuardianServiceUid: guardianInitData.pendingGuardianServiceUid, apiAddress,
73
+ address,
74
+ networkId, providerServiceUrl: providerData.providerServiceNetworkUrls[networkId], backoffWrongCode: data["backoff-wrong-code"], registrationDelay: data["registration-delay"], pendingProviderServiceUrl: pendingProviderData
75
+ ? pendingProviderData.providerServiceNetworkUrls[networkId]
76
+ : "" }));
77
+ return provider;
78
+ });
79
+ }
80
+ //TODO: document in readme
81
+ static setRequestTransformer(transformer) {
82
+ this.fetcher.requestTransformer = transformer;
83
+ }
84
+ static getAccountGuardianInitData({ address, apiAddress, }) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ const { activeGuardianServiceUid, isGuarded, activeGuardianAddress, pendingGuardianActivationEpoch, pendingGuardianAddress, pendingGuardianServiceUid, } = (yield this.fetcher.fetch({
87
+ method: "get",
88
+ baseURL: apiAddress,
89
+ url: `/accounts/${address}/?withGuardianInfo=true`,
90
+ })).data;
91
+ return {
92
+ activeGuardianServiceUid,
93
+ isGuarded,
94
+ activeGuardianAddress,
95
+ pendingGuardianActivationEpoch,
96
+ pendingGuardianAddress,
97
+ pendingGuardianServiceUid,
98
+ registrationDelay: 0,
99
+ backoffWrongCode: 0,
100
+ };
101
+ });
102
+ }
103
+ }
104
+ GuardianProviderFactory.fetcher = apiFetcher_1.default.getInstance();
105
+ exports.default = GuardianProviderFactory;
106
+ //# sourceMappingURL=guardianProviderFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardianProviderFactory.js","sourceRoot":"","sources":["../src/guardianProviderFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import GenericGuardianProvider from "./genericGuardianProvider";
2
+ export declare const DEFAULT_SERVICE_ID = "DharitrITCSService";
3
+ declare enum NetworksEnum {
4
+ testnet = "testnet",
5
+ devnet = "devnet",
6
+ mainnet = "mainnet"
7
+ }
8
+ type ServiceNetworkType = Record<NetworksEnum | string, string>;
9
+ interface IInjectableNetworkUrl {
10
+ /**
11
+ * Network identifier.
12
+ */
13
+ networkId: string;
14
+ /**
15
+ * Provider service network url.
16
+ */
17
+ url: string;
18
+ }
19
+ interface IProviderInfo {
20
+ /**
21
+ * `serviceId` is the unique identifier of the `IProviderInfo` object.
22
+ */
23
+ serviceId: string;
24
+ provider: typeof GenericGuardianProvider;
25
+ providerServiceNetworkUrls: ServiceNetworkType;
26
+ }
27
+ declare class GuardianProvidersResolver {
28
+ protected static providers: Array<IProviderInfo>;
29
+ static getProviderByServiceId(serviceId: string): IProviderInfo | undefined;
30
+ /**
31
+ * Extends or overrides the service networks url list based on network.
32
+ */
33
+ static extendProviderInfoNetworkUrls({ serviceId, network, }: {
34
+ serviceId: IProviderInfo["serviceId"];
35
+ network: IInjectableNetworkUrl;
36
+ }): void;
37
+ static get defaultServiceId(): string;
38
+ }
39
+ export default GuardianProvidersResolver;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEFAULT_SERVICE_ID = void 0;
7
+ const TCSGuardianProvider_1 = __importDefault(require("./providers/TCSGuardianProvider"));
8
+ exports.DEFAULT_SERVICE_ID = "DharitrITCSService";
9
+ var NetworksEnum;
10
+ (function (NetworksEnum) {
11
+ NetworksEnum["testnet"] = "testnet";
12
+ NetworksEnum["devnet"] = "devnet";
13
+ NetworksEnum["mainnet"] = "mainnet";
14
+ })(NetworksEnum || (NetworksEnum = {}));
15
+ class GuardianProvidersResolver {
16
+ static getProviderByServiceId(serviceId) {
17
+ const result = this.providers.find((provider) => provider.serviceId === serviceId);
18
+ return result;
19
+ }
20
+ /**
21
+ * Extends or overrides the service networks url list based on network.
22
+ */
23
+ static extendProviderInfoNetworkUrls({ serviceId, network, }) {
24
+ this.providers = this.providers.map((provider) => {
25
+ if (provider.serviceId === serviceId) {
26
+ provider.providerServiceNetworkUrls = Object.assign(Object.assign({}, provider.providerServiceNetworkUrls), { [network.networkId]: network.url });
27
+ }
28
+ return provider;
29
+ });
30
+ }
31
+ static get defaultServiceId() {
32
+ return exports.DEFAULT_SERVICE_ID;
33
+ }
34
+ }
35
+ GuardianProvidersResolver.providers = [
36
+ {
37
+ serviceId: exports.DEFAULT_SERVICE_ID,
38
+ provider: TCSGuardianProvider_1.default,
39
+ providerServiceNetworkUrls: {
40
+ testnet: "https://testnet-tcs-api.dharitri.org",
41
+ devnet: "https://devnet-tools.dharitri.org",
42
+ 'devnet-old': "https://devnet-old-tools.dharitri.org",
43
+ mainnet: "https://tools.dharitri.org",
44
+ battlenet: "https://tools.dharitri.org"
45
+ },
46
+ },
47
+ ];
48
+ exports.default = GuardianProvidersResolver;
49
+ //# sourceMappingURL=guardianProvidersResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardianProvidersResolver.js","sourceRoot":"","sources":["../src/guardianProvidersResolver.ts"],"names":[],"mappings":";;;;;;AACA,0FAAkE;AAErD,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD,IAAK,YAIJ;AAJD,WAAK,YAAY;IACf,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;AACrB,CAAC,EAJI,YAAY,KAAZ,YAAY,QAIhB;AAwBD,MAAM,yBAAyB;IAe7B,MAAM,CAAC,sBAAsB,CAAC,SAAiB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAChC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,CAC/C,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,6BAA6B,CAAC,EACnC,SAAS,EACT,OAAO,GAIR;QACC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/C,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE;gBACpC,QAAQ,CAAC,0BAA0B,mCAC9B,QAAQ,CAAC,0BAA0B,KACtC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG,GACjC,CAAC;aACH;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,gBAAgB;QAChC,OAAO,0BAAkB,CAAC;IAC5B,CAAC;;AA5CgB,mCAAS,GAAyB;IACjD;QACE,SAAS,EAAE,0BAAkB;QAC7B,QAAQ,EAAE,6BAAmB;QAC7B,0BAA0B,EAAE;YAC1B,OAAO,EAAE,sCAAsC;YAC/C,MAAM,EAAE,mCAAmC;YAC3C,YAAY,EAAE,uCAAuC;YACrD,OAAO,EAAE,4BAA4B;YACrC,SAAS,EAAE,4BAA4B;SACxC;KACF;CACF,CAAC;AAmCJ,kBAAe,yBAAyB,CAAC"}
package/out/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./guardianProviderFactory";
package/out/index.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./guardianProviderFactory"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
@@ -0,0 +1,33 @@
1
+ export interface IAPIAccountResponse {
2
+ address: string;
3
+ balance: string;
4
+ nonce: number;
5
+ shard: number;
6
+ rootHash: string;
7
+ txCount: number;
8
+ scrCount: number;
9
+ developerReward: string;
10
+ activeGuardianServiceUid?: string;
11
+ activeGuardianActivationEpoch?: number;
12
+ activeGuardianAddress?: string;
13
+ pendingGuardianActivationEpoch?: number;
14
+ pendingGuardianServiceUid?: string;
15
+ pendingGuardianAddress?: string;
16
+ isGuarded?: boolean;
17
+ }
18
+ export interface IInitData {
19
+ activeGuardianServiceUid: string;
20
+ isGuarded: boolean;
21
+ activeGuardianAddress: string;
22
+ pendingGuardianActivationEpoch: number;
23
+ pendingGuardianAddress: string;
24
+ address: string;
25
+ apiAddress: string;
26
+ networkId: string;
27
+ registrationDelay: number;
28
+ backoffWrongCode: number;
29
+ pendingGuardianServiceUid?: string;
30
+ }
31
+ export interface IRegisterOptions {
32
+ tag?: string;
33
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { Transaction } from "@sravankumar02/sdk-core";
2
+ import GenericGuardianProvider from "../genericGuardianProvider";
3
+ import { IRegisterOptions } from "../interface";
4
+ declare class TCSGuardianProvider extends GenericGuardianProvider {
5
+ _codeInputLength: number;
6
+ constructor();
7
+ applyGuardianSignature({ transactions: transactionsArray, code, secondCode, }: {
8
+ transactions: Transaction[];
9
+ code: string;
10
+ secondCode?: string;
11
+ }): Promise<Transaction[]>;
12
+ registerGuardian(options?: IRegisterOptions): Promise<{
13
+ guardianAddress: string;
14
+ otp: {
15
+ scheme: string;
16
+ host: string;
17
+ issuer: string;
18
+ account: string;
19
+ algorithm: string;
20
+ digits: number;
21
+ period: number;
22
+ secret: string;
23
+ counter: number;
24
+ };
25
+ }>;
26
+ verifyCode({ code, secondCode, guardian, }: {
27
+ code: string;
28
+ secondCode?: string;
29
+ guardian: string;
30
+ }): Promise<boolean>;
31
+ }
32
+ export default TCSGuardianProvider;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const sdk_core_1 = require("@sravankumar02/sdk-core");
16
+ const genericGuardianProvider_1 = __importDefault(require("../genericGuardianProvider"));
17
+ var EndpointsEnum;
18
+ (function (EndpointsEnum) {
19
+ EndpointsEnum["SignMultipleTransactions"] = "/guardian/sign-multiple-transactions";
20
+ EndpointsEnum["RegisterGuardian"] = "/guardian/register";
21
+ EndpointsEnum["VerifyCode"] = "/guardian/verify-code";
22
+ })(EndpointsEnum || (EndpointsEnum = {}));
23
+ class TCSGuardianProvider extends genericGuardianProvider_1.default {
24
+ constructor() {
25
+ super();
26
+ this._codeInputLength = 6;
27
+ }
28
+ applyGuardianSignature({ transactions: transactionsArray, code, secondCode, }) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const transactions = transactionsArray.map((tx) => {
31
+ const plainTx = tx.toPlainObject();
32
+ plainTx.guardian = this._guardianAddress;
33
+ return Object.assign(Object.assign({}, plainTx), { nonce: Number(plainTx.nonce), gasPrice: Number(plainTx.gasPrice), gasLimit: Number(plainTx.gasLimit) });
34
+ });
35
+ const data = { code, transactions, "second-code": secondCode };
36
+ if (!secondCode) {
37
+ delete data["second-code"];
38
+ }
39
+ try {
40
+ const { data: { data: { transactions: rawCosignedTransactions }, }, } = yield this.fetcher.fetch({
41
+ method: "post",
42
+ baseURL: this.guardianServiceApiUrl,
43
+ url: EndpointsEnum.SignMultipleTransactions,
44
+ data,
45
+ });
46
+ for (let i = 0; i < rawCosignedTransactions.length; i++) {
47
+ const transaction = transactionsArray[i];
48
+ const plainCoSignedTransaction = rawCosignedTransactions[i];
49
+ transaction.guardianSignature = new Uint8Array(Buffer.from(plainCoSignedTransaction.guardianSignature, "hex"));
50
+ transaction.guardian = new sdk_core_1.Address(this._guardianAddress);
51
+ }
52
+ return transactionsArray;
53
+ }
54
+ catch (error) {
55
+ throw error;
56
+ }
57
+ });
58
+ }
59
+ registerGuardian(options) {
60
+ var _a;
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ try {
63
+ const { data: { data: { ["guardian-address"]: guardianAddress, otp }, }, } = yield this.fetcher.fetch({
64
+ baseURL: this.guardianServiceApiUrl,
65
+ url: EndpointsEnum.RegisterGuardian,
66
+ method: "POST",
67
+ data: { tag: (_a = options === null || options === void 0 ? void 0 : options.tag) !== null && _a !== void 0 ? _a : "" },
68
+ });
69
+ return {
70
+ guardianAddress,
71
+ otp,
72
+ };
73
+ }
74
+ catch (error) {
75
+ throw error;
76
+ }
77
+ });
78
+ }
79
+ verifyCode({ code, secondCode, guardian, }) {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ try {
82
+ const data = { code, guardian, "second-code": secondCode };
83
+ if (!secondCode) {
84
+ delete data["second-code"];
85
+ }
86
+ yield this.fetcher.fetch({
87
+ baseURL: this.guardianServiceApiUrl,
88
+ url: EndpointsEnum.VerifyCode,
89
+ method: "POST",
90
+ data,
91
+ });
92
+ return true;
93
+ }
94
+ catch (error) {
95
+ console.log(error);
96
+ throw error;
97
+ }
98
+ });
99
+ }
100
+ }
101
+ exports.default = TCSGuardianProvider;
102
+ //# sourceMappingURL=TCSGuardianProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCSGuardianProvider.js","sourceRoot":"","sources":["../../src/providers/TCSGuardianProvider.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@sravankumar02/sdk-guardians-provider",
3
+ "version": "3.1.1",
4
+ "description": "Co-Signing provider for DharitrI DApps",
5
+ "main": "out/index.js",
6
+ "types": "out/index.d.js",
7
+ "files": [
8
+ "out/**/*"
9
+ ],
10
+ "engines": {
11
+ "node": ">=18"
12
+ },
13
+ "scripts": {
14
+ "compile": "tsc -p tsconfig.json",
15
+ "pretest": "npm run compile",
16
+ "test": "echo \"Error: no test specified\" && exit 0",
17
+ "prepare": "npm run compile"
18
+ },
19
+ "author": "DharitrI",
20
+ "license": "GPL-3.0-or-later",
21
+ "devDependencies": {
22
+ "@types/node": "17.0.23",
23
+ "typescript": "5.0.3",
24
+ "@sravankumar02/sdk-core": "^2.0.0",
25
+ "axios": "1.7.4"
26
+ },
27
+ "peerDependencies": {
28
+ "@sravankumar02/sdk-core": "^1.0.0 || ^2.0.0",
29
+ "axios": ">= 1.7.4"
30
+ }
31
+ }