@super-protocol/sdk-js 3.12.0-beta.1 → 3.12.0-beta.10

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.
@@ -1,6 +1,6 @@
1
- import { Contract, Transaction } from 'web3';
1
+ import { Contract, TransactionReceipt } from 'web3';
2
2
  import { abi } from '../contracts/Campaign.js';
3
- import { TransactionOptions, BlockInfo, Status, Content, ParticipantData, Stat } from '../types/index.js';
3
+ import { TransactionOptions, BlockInfo, Status, ContentWithIndex, TotalParticipantInfo, LinksStat, ParticipantScore } from '../types/index.js';
4
4
  declare class Campaign {
5
5
  private static _addressHttps;
6
6
  private static _addressWss;
@@ -17,12 +17,21 @@ declare class Campaign {
17
17
  */
18
18
  private static checkInit;
19
19
  private static getContract;
20
- static getStat(contract?: Contract<typeof abi>): Promise<Stat>;
21
- static getStatsByPoints(points: string, contract?: Contract<typeof abi>): Promise<string[]>;
22
- static getParticipantData(participant: string, contract?: Contract<typeof abi>): Promise<ParticipantData>;
23
- static getContentRange(from: number, to: number, status: Status, contract?: Contract<typeof abi>): Promise<Content[]>;
24
- static addContent(link: string, referrer: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<Transaction>;
25
- static updateContent(index: number, contentHash: string, status: Status, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<Transaction>;
20
+ static isLinkUnique(link: string, contract?: Contract<typeof abi>): Promise<{
21
+ clearedLink: string;
22
+ isUnique: boolean;
23
+ }>;
24
+ static getLinksStat(contract?: Contract<typeof abi>): Promise<LinksStat>;
25
+ static getParticipantInfo(participant: string, contract?: Contract<typeof abi>): Promise<TotalParticipantInfo>;
26
+ static getTopParticipantsInfo(count: number, contract?: Contract<typeof abi>): Promise<TotalParticipantInfo[]>;
27
+ static getContentRange(from: number, to: number, status: Status, contract?: Contract<typeof abi>): Promise<ContentWithIndex[]>;
28
+ static getTotalParticipants(contract?: Contract<typeof abi>): Promise<number>;
29
+ static getTopParticipants(count: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
30
+ static getParticipantsAroundRank(centerRank: number, range: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
31
+ static getContentCount(contract?: Contract<typeof abi>): Promise<number>;
32
+ static addContent(link: string, referrer: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
33
+ static updateContent(index: number, contentHash: string, status: Status, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
34
+ static grantRole(role: string, account: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
26
35
  static onContentAdded(callback: onContentAddedCallback): () => void;
27
36
  static onContentUpdated(callback: onContentUpdated): () => void;
28
37
  }
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const web3_1 = require("web3");
6
7
  const logger_js_1 = __importDefault(require("../logger.js"));
7
8
  const Campaign_js_1 = require("../contracts/Campaign.js");
8
9
  const store_js_1 = __importDefault(require("../store.js"));
@@ -53,17 +54,39 @@ class Campaign {
53
54
  static getContract(contract) {
54
55
  return contract ? contract : Campaign.checkInit();
55
56
  }
56
- static async getStat(contract) {
57
- return await this.getContract(contract).methods.getStat().call();
57
+ static async isLinkUnique(link, contract) {
58
+ return (0, helper_js_1.cleanWeb3Data)(await this.getContract(contract).methods.isLinkUnique(link).call());
58
59
  }
59
- static async getStatsByPoints(points, contract) {
60
- return await this.getContract(contract).methods.getStatsByPoints(points).call();
60
+ static async getLinksStat(contract) {
61
+ return (0, helper_js_1.cleanWeb3Data)(await this.getContract(contract).methods.getLinksStat().call());
61
62
  }
62
- static async getParticipantData(participant, contract) {
63
- return await this.getContract(contract).methods.getParticipantData(participant).call();
63
+ static async getParticipantInfo(participant, contract) {
64
+ return (0, helper_js_1.cleanWeb3Data)(await this.getContract(contract).methods.getParticipantInfo(participant).call());
65
+ }
66
+ static async getTopParticipantsInfo(count, contract) {
67
+ return (0, helper_js_1.cleanWeb3Data)(await this.getContract(contract).methods.getTopParticipantsInfo(count).call());
64
68
  }
65
69
  static async getContentRange(from, to, status, contract) {
66
- return await this.getContract(contract).methods.getContentRange(from, to, status).call();
70
+ const contents = (await this.getContract(contract).methods.getContentRange(from, to, status).call()).map((contentWithIndex) => {
71
+ const cleanedContentWithIndex = {
72
+ content: (0, helper_js_1.cleanWeb3Data)(contentWithIndex.content),
73
+ index: Number(contentWithIndex.index),
74
+ };
75
+ return cleanedContentWithIndex;
76
+ });
77
+ return contents;
78
+ }
79
+ static async getTotalParticipants(contract) {
80
+ return (0, helper_js_1.cleanWeb3Data)(await this.getContract(contract).methods.getTotalParticipants().call());
81
+ }
82
+ static async getTopParticipants(count, contract) {
83
+ return (0, helper_js_1.cleanWeb3Data)(await this.getContract(contract).methods.getTopParticipants(count).call());
84
+ }
85
+ static async getParticipantsAroundRank(centerRank, range, contract) {
86
+ return (0, helper_js_1.cleanWeb3Data)(await this.getContract(contract).methods.getParticipantsAroundRank(centerRank, range).call());
87
+ }
88
+ static async getContentCount(contract) {
89
+ return Number(await this.getContract(contract).methods.getContentCount().call());
67
90
  }
68
91
  static async addContent(link, referrer, transactionOptions, checkTxBeforeSend = false) {
69
92
  const contract = this.checkInit();
@@ -71,8 +94,7 @@ class Campaign {
71
94
  if (checkTxBeforeSend) {
72
95
  await TxManager_js_1.default.dryRun(contract.methods.addContent(link, referrer), transactionOptions);
73
96
  }
74
- const receipt = await TxManager_js_1.default.execute(contract.methods.addContent(link, referrer), transactionOptions, Campaign.addressHttps);
75
- return store_js_1.default.web3Https.eth.getTransaction(receipt.transactionHash);
97
+ return await TxManager_js_1.default.execute(contract.methods.addContent(link, referrer), transactionOptions, Campaign.addressHttps);
76
98
  }
77
99
  static async updateContent(index, contentHash, status, transactionOptions, checkTxBeforeSend = false) {
78
100
  const contract = this.checkInit();
@@ -80,8 +102,16 @@ class Campaign {
80
102
  if (checkTxBeforeSend) {
81
103
  await TxManager_js_1.default.dryRun(contract.methods.updateContent(index, contentHash, status), transactionOptions);
82
104
  }
83
- const receipt = await TxManager_js_1.default.execute(contract.methods.updateContent(index, contentHash, status), transactionOptions, Campaign.addressHttps);
84
- return store_js_1.default.web3Https.eth.getTransaction(receipt.transactionHash);
105
+ return await TxManager_js_1.default.execute(contract.methods.updateContent(index, contentHash, status), transactionOptions, Campaign.addressHttps);
106
+ }
107
+ static async grantRole(role, account, transactionOptions, checkTxBeforeSend = false) {
108
+ const contract = this.checkInit();
109
+ (0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
110
+ role = web3_1.utils.keccak256(role);
111
+ if (checkTxBeforeSend) {
112
+ await TxManager_js_1.default.dryRun(contract.methods.grantRole(role, account), transactionOptions);
113
+ }
114
+ return await TxManager_js_1.default.execute(contract.methods.grantRole(role, account), transactionOptions, Campaign.addressHttps);
85
115
  }
86
116
  static onContentAdded(callback) {
87
117
  const listener = index_js_1.BlockchainEventsListener.getInstance();
@@ -127,4 +157,4 @@ class Campaign {
127
157
  }
128
158
  }
129
159
  exports.default = Campaign;
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGljTW9kZWxzL0NhbXBhaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsNkRBQXNDO0FBQ3RDLDBEQUErQztBQUMvQywyREFBZ0M7QUFDaEMsa0RBQW9GO0FBVXBGLHlFQUE4QztBQUM5QyxxREFBa0U7QUFNbEUsTUFBTSxRQUFRO0lBQ0osTUFBTSxDQUFDLGFBQWEsQ0FBUztJQUM3QixNQUFNLENBQUMsV0FBVyxDQUFTO0lBQzNCLE1BQU0sQ0FBQyxhQUFhLENBQXdCO0lBQzVDLE1BQU0sQ0FBQyxXQUFXLENBQXdCO0lBQzFDLE1BQU0sQ0FBVSxNQUFNLEdBQUcsbUJBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUV0RSxNQUFNLEtBQUssWUFBWTtRQUM1QixPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDaEMsQ0FBQztJQUVNLE1BQU0sS0FBSyxZQUFZLENBQUMsVUFBa0I7UUFDL0MsUUFBUSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUM7UUFDcEMsTUFBTSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLFFBQVEsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQWtCO1FBQzdDLE1BQU0sYUFBYSxHQUFHLElBQUksa0JBQUssQ0FBQyxTQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQkFBRyxFQUFFLFVBQVUsRUFBRTtZQUN2RSxRQUFRLEVBQUUsa0JBQUssQ0FBQyxTQUFVLENBQUMsZUFBZTtZQUMxQyxNQUFNLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVB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
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGljTW9kZWxzL0NhbXBhaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTJEO0FBQzNELDZEQUFzQztBQUN0QywwREFBK0M7QUFDL0MsMkRBQWdDO0FBQ2hDLGtEQUFvRjtBQVdwRix5RUFBOEM7QUFDOUMscURBQWtFO0FBTWxFLE1BQU0sUUFBUTtJQUNKLE1BQU0sQ0FBQyxhQUFhLENBQVM7SUFDN0IsTUFBTSxDQUFDLFdBQVcsQ0FBUztJQUMzQixNQUFNLENBQUMsYUFBYSxDQUF3QjtJQUM1QyxNQUFNLENBQUMsV0FBVyxDQUF3QjtJQUMxQyxNQUFNLENBQVUsTUFBTSxHQUFHLG1CQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFFdEUsTUFBTSxLQUFLLFlBQVk7UUFDNUIsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxNQUFNLEtBQUssWUFBWSxDQUFDLFVBQWtCO1FBQy9DLFFBQVEsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxRQUFRLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUN2QyxRQUFRLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFrQjtRQUM3QyxNQUFNLGFBQWEsR0FBRyxJQUFJLGtCQUFLLENBQUMsU0FBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsaUJBQUcsRUFBRSxVQUFVLEVBQUU7WUFDdkUsUUFBUSxFQUFFLGtCQUFLLENBQUMsU0FBVSxDQUFDLGVBQWU7WUFDMUMsTUFBTSxFQUFFLEVBQUUscUJBQXFC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
@@ -1,22 +1,36 @@
1
+ import { TokenAmount } from './Web3.js';
1
2
  export declare enum Status {
2
3
  InQueue = 0,
3
- Validated = 1,
4
- NotValidated = 2
4
+ Valid = 1,
5
+ NotValid = 2,
6
+ Duplicated = 3
5
7
  }
6
- export type Stat = {
7
- totalParticipants: number;
8
- maxPoint: number;
9
- minPoint: number;
10
- totalValidatedLink: number;
11
- totalNotValidatedLinks: number;
8
+ export type LinksStat = {
9
+ totalAddedLinks: number;
10
+ totalDuplicatedLinks: number;
11
+ totalValidatedLinks: number;
12
+ totalInvalidLinks: number;
12
13
  };
13
- export type PointsData = {
14
+ export type ParticipantInfo = {
15
+ nextAttemptTs: number;
16
+ totalDayAttempts: number;
17
+ referrer: string;
18
+ referralsCount: number;
19
+ totalAddedLinks: number;
20
+ totalDuplicatedLinks: number;
21
+ totalValidatedLinks: number;
22
+ totalInvalidLinks: number;
23
+ };
24
+ export type ParticipantInfoViewed = {
25
+ participant: string;
26
+ rank: number;
27
+ score: number;
28
+ reward: TokenAmount;
14
29
  points: number;
15
- index: number;
16
30
  };
17
- export type ParticipantData = {
18
- pointsData: PointsData;
19
- referrer: string;
31
+ export type TotalParticipantInfo = {
32
+ storedInfo: ParticipantInfo;
33
+ viewedInfo: ParticipantInfoViewed;
20
34
  };
21
35
  export type Content = {
22
36
  status: Status;
@@ -24,3 +38,11 @@ export type Content = {
24
38
  link: string;
25
39
  contentHash: string;
26
40
  };
41
+ export type ContentWithIndex = {
42
+ content: Content;
43
+ index: number;
44
+ };
45
+ export type ParticipantScore = {
46
+ participant: string;
47
+ score: number;
48
+ };
@@ -4,7 +4,8 @@ exports.Status = void 0;
4
4
  var Status;
5
5
  (function (Status) {
6
6
  Status[Status["InQueue"] = 0] = "InQueue";
7
- Status[Status["Validated"] = 1] = "Validated";
8
- Status[Status["NotValidated"] = 2] = "NotValidated";
7
+ Status[Status["Valid"] = 1] = "Valid";
8
+ Status[Status["NotValid"] = 2] = "NotValid";
9
+ Status[Status["Duplicated"] = 3] = "Duplicated";
9
10
  })(Status || (exports.Status = Status = {}));
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvQ2FtcGFpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBWSxNQUlYO0FBSkQsV0FBWSxNQUFNO0lBQ2hCLHlDQUFPLENBQUE7SUFDUCw2Q0FBUyxDQUFBO0lBQ1QsbURBQVksQ0FBQTtBQUNkLENBQUMsRUFKVyxNQUFNLHNCQUFOLE1BQU0sUUFJakIifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvQ2FtcGFpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsSUFBWSxNQUtYO0FBTEQsV0FBWSxNQUFNO0lBQ2hCLHlDQUFPLENBQUE7SUFDUCxxQ0FBSyxDQUFBO0lBQ0wsMkNBQVEsQ0FBQTtJQUNSLCtDQUFVLENBQUE7QUFDWixDQUFDLEVBTFcsTUFBTSxzQkFBTixNQUFNLFFBS2pCIn0=