@aurigami/sdk 1.23.1 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SDK.d.ts +48 -65
- package/dist/SDK.js +165 -0
- package/dist/abis/index.d.ts +18 -18
- package/dist/abis/index.js +39 -0
- package/dist/consts/constants.d.ts +139 -139
- package/dist/consts/constants.js +185 -0
- package/dist/consts/decimals.d.ts +1 -1
- package/dist/consts/decimals.js +35 -0
- package/dist/consts/deployments.d.ts +3 -3
- package/dist/consts/deployments.js +9 -0
- package/dist/consts/dummy.d.ts +13 -13
- package/dist/consts/dummy.js +43 -0
- package/dist/consts/index.d.ts +5 -5
- package/dist/consts/index.js +9 -0
- package/dist/consts/symbols.d.ts +1 -1
- package/dist/consts/symbols.js +10 -0
- package/dist/entities/BlockchainEntity.d.ts +13 -13
- package/dist/entities/BlockchainEntity.js +36 -0
- package/dist/entities/auriEnv.d.ts +34 -40
- package/dist/entities/auriEnv.js +166 -0
- package/dist/entities/index.d.ts +4 -4
- package/dist/entities/index.js +8 -0
- package/dist/entities/token.d.ts +7 -7
- package/dist/entities/token.js +27 -0
- package/dist/entities/tokenAmount.d.ts +13 -13
- package/dist/entities/tokenAmount.js +52 -0
- package/dist/helpers/aurigami-api.d.ts +13 -13
- package/dist/helpers/aurigami-api.js +26 -0
- package/dist/helpers/aurora-api-helpers.d.ts +1 -1
- package/dist/helpers/aurora-api-helpers.js +15 -0
- package/dist/helpers/graphql-helpers.d.ts +1 -1
- package/dist/helpers/graphql-helpers.js +13 -0
- package/dist/helpers/helpers.d.ts +23 -40
- package/dist/helpers/helpers.js +148 -0
- package/dist/helpers/historicalPriceFetcher.d.ts +15 -15
- package/dist/helpers/historicalPriceFetcher.js +142 -0
- package/dist/helpers/index.d.ts +7 -7
- package/dist/helpers/index.js +11 -0
- package/dist/helpers/kyber-aggregator-api.d.ts +5 -5
- package/dist/helpers/kyber-aggregator-api.js +27 -0
- package/dist/helpers/multicall.d.ts +40 -0
- package/dist/helpers/multicall.js +203 -0
- package/dist/helpers/notification-api.d.ts +2 -2
- package/dist/helpers/notification-api.js +21 -0
- package/dist/helpers/one-inch-aggregator-api.d.ts +21 -21
- package/dist/helpers/one-inch-aggregator-api.js +19 -0
- package/dist/helpers/priceFetcher.d.ts +36 -36
- package/dist/helpers/priceFetcher.js +296 -0
- package/dist/helpers/subgraphQuery.d.ts +1 -1
- package/dist/helpers/subgraphQuery.js +22 -0
- package/dist/helpers/transfer-event-query.d.ts +17 -26
- package/dist/helpers/transfer-event-query.js +41 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.js +17 -8
- package/dist/interactors/Airdrop.d.ts +17 -26
- package/dist/interactors/Airdrop.js +48 -0
- package/dist/interactors/MoneyMarket.d.ts +63 -63
- package/dist/interactors/MoneyMarket.js +392 -0
- package/dist/interactors/Multicall.d.ts +15 -18
- package/dist/interactors/Multicall.js +36 -0
- package/dist/interactors/Papermill.d.ts +27 -57
- package/dist/interactors/Papermill.js +125 -0
- package/dist/interactors/PlyGame.d.ts +30 -42
- package/dist/interactors/PlyGame.js +146 -0
- package/dist/interactors/PlyTokenLock.d.ts +16 -16
- package/dist/interactors/PlyTokenLock.js +44 -0
- package/dist/interactors/Pulp.d.ts +17 -17
- package/dist/interactors/Pulp.js +43 -0
- package/dist/interactors/Referral.d.ts +35 -78
- package/dist/interactors/Referral.js +158 -0
- package/dist/interactors/Staking.d.ts +20 -26
- package/dist/interactors/Staking.js +106 -0
- package/dist/interactors/index.d.ts +9 -9
- package/dist/interactors/index.js +13 -0
- package/dist/interactors/misc.d.ts +31 -39
- package/dist/interactors/misc.js +318 -0
- package/dist/types/index.d.ts +175 -197
- package/dist/types/index.js +18 -0
- package/package.json +3 -3
- package/src/SDK.ts +1 -1
- package/src/entities/auriEnv.ts +29 -27
- package/src/helpers/historicalPriceFetcher.ts +9 -12
- package/src/helpers/multicall.ts +251 -0
- package/src/helpers/priceFetcher.ts +19 -20
- package/src/interactors/Airdrop.ts +2 -2
- package/src/interactors/MoneyMarket.ts +31 -27
- package/src/interactors/Multicall.ts +3 -3
- package/src/interactors/Papermill.ts +9 -9
- package/src/interactors/PlyGame.ts +10 -10
- package/src/interactors/PlyTokenLock.ts +2 -3
- package/src/interactors/Pulp.ts +4 -2
- package/src/interactors/Referral.ts +6 -6
- package/src/interactors/Staking.ts +13 -9
- package/src/interactors/misc.ts +7 -5
- package/src/types/index.ts +32 -2
- package/dist/sdk.cjs.development.js +0 -6325
- package/dist/sdk.cjs.development.js.map +0 -1
- package/dist/sdk.cjs.production.min.js +0 -2
- package/dist/sdk.cjs.production.min.js.map +0 -1
- package/dist/sdk.esm.js +0 -6193
- package/dist/sdk.esm.js.map +0 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MulticallRead = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
const abis = tslib_1.__importStar(require("../abis"));
|
|
7
|
+
const consts = tslib_1.__importStar(require("../consts"));
|
|
8
|
+
const entities_1 = require("../entities");
|
|
9
|
+
class MulticallRead extends entities_1.BlockchainEntityRead {
|
|
10
|
+
constructor(networkConnection) {
|
|
11
|
+
super(networkConnection);
|
|
12
|
+
Object.defineProperty(this, "multicall", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
configurable: true,
|
|
15
|
+
writable: true,
|
|
16
|
+
value: void 0
|
|
17
|
+
});
|
|
18
|
+
this.multicall = new ethers_1.Contract(consts.networkAddresses.misc.MULTICALL, abis.Multicall2ABI.abi, networkConnection.provider);
|
|
19
|
+
}
|
|
20
|
+
async aggregate(calls) {
|
|
21
|
+
const txns = [];
|
|
22
|
+
for (let i = 0; i < calls.length; i++) {
|
|
23
|
+
const call = calls[i];
|
|
24
|
+
let txn = await call.contract.raw.populateTransaction[call.method](...call.args);
|
|
25
|
+
txns.push({ target: txn.to, callData: txn.data });
|
|
26
|
+
}
|
|
27
|
+
const response = await this.multicall.callStatic.aggregate(txns);
|
|
28
|
+
const decodedReturn = [];
|
|
29
|
+
for (let i = 0; i < calls.length; i++) {
|
|
30
|
+
decodedReturn.push(ethers_1.ethers.utils.defaultAbiCoder.decode(calls[i].returnTypes, response.returnData[i]));
|
|
31
|
+
}
|
|
32
|
+
return decodedReturn;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.MulticallRead = MulticallRead;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGljYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyYWN0b3JzL011bHRpY2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsbUNBQTBDO0FBRTFDLHNEQUFnQztBQUNoQywwREFBb0M7QUFDcEMsMENBQW1EO0FBR25ELE1BQWEsYUFBYyxTQUFRLCtCQUFvQjtJQUVyRCxZQUFZLGlCQUFvQztRQUM5QyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUZYOzs7OztXQUFzQjtRQUdwQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksaUJBQVEsQ0FDM0IsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUN0QixpQkFBaUIsQ0FBQyxRQUFRLENBQ2IsQ0FBQztJQUNsQixDQUFDO0lBS00sS0FBSyxDQUFDLFNBQVMsQ0FDcEIsS0FLRztRQUVILE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUdqRSxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxhQUFhLENBQUMsSUFBSSxDQUNoQixlQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2xGLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBekNELHNDQXlDQyJ9
|
|
@@ -1,57 +1,27 @@
|
|
|
1
|
-
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
-
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, Token, TokenAmount } from '../entities';
|
|
3
|
-
import { Address, NetworkConnection, UserLockingDetails } from '../types';
|
|
4
|
-
export declare class PapermillRead extends BlockchainEntityRead {
|
|
5
|
-
readonly plyToken: Token;
|
|
6
|
-
readonly pulpToken: Token;
|
|
7
|
-
readonly env: AuriEnv;
|
|
8
|
-
constructor(networkConnection: NetworkConnection);
|
|
9
|
-
getPlyBalance(userAddress: Address): Promise<TokenAmount>;
|
|
10
|
-
getPulpBalance(userAddress: Address): Promise<TokenAmount>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
* Get the start timestamp of next week of the papermill contract.
|
|
29
|
-
*
|
|
30
|
-
* This is a sync function!
|
|
31
|
-
*
|
|
32
|
-
* @returns the timestamp in seconds
|
|
33
|
-
*/
|
|
34
|
-
getNextWeekTimestamp(): number;
|
|
35
|
-
getUnlockPortionAt(userAddress: Address, timestamp: number): Promise<number>;
|
|
36
|
-
}
|
|
37
|
-
export declare class PapermillReadWrite extends PapermillRead {
|
|
38
|
-
constructor(networkConnection: NetworkConnection);
|
|
39
|
-
/**
|
|
40
|
-
* Redeem PLY from PULP and transfer PLY to another address
|
|
41
|
-
* @param recipient Address that will receive the PLY.
|
|
42
|
-
* @param amount Amount of PULP to be converted to PLY.
|
|
43
|
-
* Set to ethers.constants.MaxUint256 for max redeem.
|
|
44
|
-
*/
|
|
45
|
-
redeem(recipient: Address, amount: TokenAmount): Promise<TransactionResponse>;
|
|
46
|
-
/**
|
|
47
|
-
* Redeem PLY from PULP and transfer PLY to msg.sender
|
|
48
|
-
* @param amount Amount of PULP to be converted to PLY.
|
|
49
|
-
* Set to ethers.constants.MaxUint256 for max redeem.
|
|
50
|
-
*/
|
|
51
|
-
selfRedeem(amount: TokenAmount): Promise<TransactionResponse>;
|
|
52
|
-
}
|
|
53
|
-
export declare class Papermill extends BlockchainEntity {
|
|
54
|
-
constructor();
|
|
55
|
-
read(networkConnection: NetworkConnection): PapermillRead;
|
|
56
|
-
readWrite(networkConnection: NetworkConnection): PapermillReadWrite;
|
|
57
|
-
}
|
|
1
|
+
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
+
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, Token, TokenAmount } from '../entities';
|
|
3
|
+
import { Address, NetworkConnection, UserLockingDetails } from '../types';
|
|
4
|
+
export declare class PapermillRead extends BlockchainEntityRead {
|
|
5
|
+
readonly plyToken: Token;
|
|
6
|
+
readonly pulpToken: Token;
|
|
7
|
+
readonly env: AuriEnv;
|
|
8
|
+
constructor(networkConnection: NetworkConnection);
|
|
9
|
+
getPlyBalance(userAddress: Address): Promise<TokenAmount>;
|
|
10
|
+
getPulpBalance(userAddress: Address): Promise<TokenAmount>;
|
|
11
|
+
getUnclaimedPlyReward(userAddress: Address): Promise<TokenAmount>;
|
|
12
|
+
getWeek(timestamp: number): number;
|
|
13
|
+
getLockingDetails(userAddress: Address): Promise<UserLockingDetails>;
|
|
14
|
+
getTimestampToUnlock(userAddress: Address, targetUnlockPortion: number): Promise<number>;
|
|
15
|
+
getNextWeekTimestamp(): number;
|
|
16
|
+
getUnlockPortionAt(userAddress: Address, timestamp: number): Promise<number>;
|
|
17
|
+
}
|
|
18
|
+
export declare class PapermillReadWrite extends PapermillRead {
|
|
19
|
+
constructor(networkConnection: NetworkConnection);
|
|
20
|
+
redeem(recipient: Address, amount: TokenAmount): Promise<TransactionResponse>;
|
|
21
|
+
selfRedeem(amount: TokenAmount): Promise<TransactionResponse>;
|
|
22
|
+
}
|
|
23
|
+
export declare class Papermill extends BlockchainEntity {
|
|
24
|
+
constructor();
|
|
25
|
+
read(networkConnection: NetworkConnection): PapermillRead;
|
|
26
|
+
readWrite(networkConnection: NetworkConnection): PapermillReadWrite;
|
|
27
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Papermill = exports.PapermillReadWrite = exports.PapermillRead = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
|
|
6
|
+
const ethers_1 = require("ethers");
|
|
7
|
+
const consts = tslib_1.__importStar(require("../consts"));
|
|
8
|
+
const entities_1 = require("../entities");
|
|
9
|
+
const helpers = tslib_1.__importStar(require("../helpers"));
|
|
10
|
+
const LOCKING_DENOMINATOR = ethers_1.BigNumber.from(10000);
|
|
11
|
+
class PapermillRead extends entities_1.BlockchainEntityRead {
|
|
12
|
+
constructor(networkConnection) {
|
|
13
|
+
super(networkConnection);
|
|
14
|
+
Object.defineProperty(this, "plyToken", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: true,
|
|
17
|
+
writable: true,
|
|
18
|
+
value: void 0
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(this, "pulpToken", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true,
|
|
24
|
+
value: void 0
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(this, "env", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true,
|
|
29
|
+
writable: true,
|
|
30
|
+
value: void 0
|
|
31
|
+
});
|
|
32
|
+
this.env = new entities_1.AuriEnv(networkConnection);
|
|
33
|
+
let plyAddress = consts.networkAddresses.tokens.PLY;
|
|
34
|
+
let pulpAddress = consts.networkAddresses.tokens.PULP;
|
|
35
|
+
this.plyToken = new entities_1.Token(plyAddress, helpers.getDecimal(plyAddress));
|
|
36
|
+
this.pulpToken = new entities_1.Token(pulpAddress, helpers.getDecimal(pulpAddress));
|
|
37
|
+
}
|
|
38
|
+
async getPlyBalance(userAddress) {
|
|
39
|
+
const plyBalance = await this.env.ply.raw.balanceOf(userAddress);
|
|
40
|
+
return new entities_1.TokenAmount(this.plyToken, plyBalance.toString());
|
|
41
|
+
}
|
|
42
|
+
async getPulpBalance(userAddress) {
|
|
43
|
+
const pulpBalance = await this.env.pulp.raw.balanceOf(userAddress);
|
|
44
|
+
return new entities_1.TokenAmount(this.pulpToken, pulpBalance.toString());
|
|
45
|
+
}
|
|
46
|
+
async getUnclaimedPlyReward(userAddress) {
|
|
47
|
+
let rewardBalancesMetadata = await this.env.auriLens.raw.callStatic.claimRewards(this.env.comptroller.address, this.env.auriFairLaunch.address, consts.ALL_STAKING_POOLS, { from: userAddress });
|
|
48
|
+
return new entities_1.TokenAmount(this.plyToken, rewardBalancesMetadata.plyAccrured.toString());
|
|
49
|
+
}
|
|
50
|
+
getWeek(timestamp) {
|
|
51
|
+
return ethers_1.BigNumber.from(timestamp - consts.REWARD_CLAIM_START)
|
|
52
|
+
.div(consts.ONE_WEEK)
|
|
53
|
+
.toNumber();
|
|
54
|
+
}
|
|
55
|
+
async getLockingDetails(userAddress) {
|
|
56
|
+
const currentWeek = this.getWeek(helpers.getCurrentTimestamp());
|
|
57
|
+
const values = await Promise.all([
|
|
58
|
+
this.env.auriLens.raw.getPercentLock(this.env.pulp.address, userAddress, currentWeek),
|
|
59
|
+
this.env.auriLens.raw.getPercentLock(this.env.pulp.address, userAddress, currentWeek + 1),
|
|
60
|
+
this.getUnclaimedPlyReward(userAddress),
|
|
61
|
+
]);
|
|
62
|
+
let percentLockCurrentWeek = ethers_1.BigNumber.from(values[0]);
|
|
63
|
+
let percentLockNextWeek = ethers_1.BigNumber.from(values[1]);
|
|
64
|
+
let totalRewards = values[2];
|
|
65
|
+
let [pulpAmountCurrentWeek, plyAmountCurrentWeek] = await this.env.pulp.raw.calcLockAmount(userAddress, totalRewards.rawAmount());
|
|
66
|
+
let plyAmountNextWeek = percentLockNextWeek
|
|
67
|
+
.mul(totalRewards.rawAmount())
|
|
68
|
+
.div(LOCKING_DENOMINATOR);
|
|
69
|
+
let pulpAmountNextWeek = ethers_1.BigNumber.from(totalRewards.rawAmount()).sub(plyAmountNextWeek);
|
|
70
|
+
let currentUnlockPortion = LOCKING_DENOMINATOR.sub(percentLockCurrentWeek).toString();
|
|
71
|
+
let nextUnlockPortion = LOCKING_DENOMINATOR.sub(percentLockNextWeek).toString();
|
|
72
|
+
return {
|
|
73
|
+
vestingStart: consts.REWARD_CLAIM_START,
|
|
74
|
+
currentUnlockPortion: new bignumber_js_1.default(currentUnlockPortion).dividedBy(100).toNumber(),
|
|
75
|
+
accruedPly: totalRewards,
|
|
76
|
+
currentPly: new entities_1.TokenAmount(this.plyToken, plyAmountCurrentWeek.toString()),
|
|
77
|
+
currentPulp: new entities_1.TokenAmount(this.pulpToken, pulpAmountCurrentWeek.toString()),
|
|
78
|
+
nextUnlockPortion: new bignumber_js_1.default(nextUnlockPortion).dividedBy(100).toNumber(),
|
|
79
|
+
nextPly: new entities_1.TokenAmount(this.plyToken, plyAmountNextWeek.toString()),
|
|
80
|
+
nextPulp: new entities_1.TokenAmount(this.pulpToken, pulpAmountNextWeek.toString()),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
async getTimestampToUnlock(userAddress, targetUnlockPortion) {
|
|
84
|
+
let weekId = await this.env.auriLens.raw.getWeekToUnlock(this.env.pulp.address, userAddress, targetUnlockPortion * 100);
|
|
85
|
+
return consts.REWARD_CLAIM_START + consts.ONE_WEEK * weekId.toNumber();
|
|
86
|
+
}
|
|
87
|
+
getNextWeekTimestamp() {
|
|
88
|
+
const nextWeek = this.getWeek(helpers.getCurrentTimestamp()) + 1;
|
|
89
|
+
return consts.REWARD_CLAIM_START + consts.ONE_WEEK * nextWeek;
|
|
90
|
+
}
|
|
91
|
+
async getUnlockPortionAt(userAddress, timestamp) {
|
|
92
|
+
let lockPortion = await this.env.auriLens.raw.getPercentLock(this.env.pulp.address, userAddress, this.getWeek(timestamp));
|
|
93
|
+
let unlockPortion = LOCKING_DENOMINATOR.sub(lockPortion);
|
|
94
|
+
return unlockPortion.toNumber() / 100;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.PapermillRead = PapermillRead;
|
|
98
|
+
class PapermillReadWrite extends PapermillRead {
|
|
99
|
+
constructor(networkConnection) {
|
|
100
|
+
super(networkConnection);
|
|
101
|
+
}
|
|
102
|
+
async redeem(recipient, amount) {
|
|
103
|
+
return this.env.pulp.raw
|
|
104
|
+
.connect(this._networkConnection.signer)
|
|
105
|
+
.redeem(recipient, amount.rawAmount());
|
|
106
|
+
}
|
|
107
|
+
async selfRedeem(amount) {
|
|
108
|
+
let msgSender = await this._networkConnection.signer.getAddress();
|
|
109
|
+
return this.redeem(msgSender, amount);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.PapermillReadWrite = PapermillReadWrite;
|
|
113
|
+
class Papermill extends entities_1.BlockchainEntity {
|
|
114
|
+
constructor() {
|
|
115
|
+
super();
|
|
116
|
+
}
|
|
117
|
+
read(networkConnection) {
|
|
118
|
+
return new PapermillRead(networkConnection);
|
|
119
|
+
}
|
|
120
|
+
readWrite(networkConnection) {
|
|
121
|
+
return new PapermillReadWrite(networkConnection);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.Papermill = Papermill;
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFwZXJtaWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyYWN0b3JzL1BhcGVybWlsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0Esd0VBQXFDO0FBQ3JDLG1DQUF5QztBQUN6QywwREFBb0M7QUFDcEMsMENBQWtHO0FBQ2xHLDREQUFzQztBQUd0QyxNQUFNLG1CQUFtQixHQUFHLGtCQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNDLE1BQWEsYUFBYyxTQUFRLCtCQUFvQjtJQUtyRCxZQUFZLGlCQUFvQztRQUM5QyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUxYOzs7OztXQUFnQjtRQUNoQjs7Ozs7V0FBaUI7UUFDakI7Ozs7O1dBQWE7UUFJM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLGtCQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUxQyxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUNwRCxJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUV0RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxnQkFBSyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsV0FBb0I7UUFDN0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxzQkFBVyxD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
|
|
@@ -1,42 +1,30 @@
|
|
|
1
|
-
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
-
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, Token, TokenAmount } from '../entities';
|
|
3
|
-
import { Address, NetworkConnection, PlyGameBetResult, PlyGameLeaderboardItem } from '../types';
|
|
4
|
-
export declare class PlyGameRead extends BlockchainEntityRead {
|
|
5
|
-
readonly plyToken: Token;
|
|
6
|
-
readonly pulpToken: Token;
|
|
7
|
-
readonly env: AuriEnv;
|
|
8
|
-
constructor(networkConnection: NetworkConnection);
|
|
9
|
-
private parseBetMakeEvent;
|
|
10
|
-
private attachTimestamp;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
export declare class PlyGameReadWrite extends PlyGameRead {
|
|
32
|
-
/**
|
|
33
|
-
* Make a single bet
|
|
34
|
-
*/
|
|
35
|
-
makeBetOnce(amount: TokenAmount): Promise<TransactionResponse>;
|
|
36
|
-
approve(amount: TokenAmount): Promise<TransactionResponse>;
|
|
37
|
-
}
|
|
38
|
-
export declare class PlyGame extends BlockchainEntity {
|
|
39
|
-
constructor();
|
|
40
|
-
read(networkConnection: NetworkConnection): PlyGameRead;
|
|
41
|
-
readWrite(networkConnection: NetworkConnection): PlyGameReadWrite;
|
|
42
|
-
}
|
|
1
|
+
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
+
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, Token, TokenAmount } from '../entities';
|
|
3
|
+
import { Address, NetworkConnection, PlyGameBetResult, PlyGameLeaderboardItem } from '../types';
|
|
4
|
+
export declare class PlyGameRead extends BlockchainEntityRead {
|
|
5
|
+
readonly plyToken: Token;
|
|
6
|
+
readonly pulpToken: Token;
|
|
7
|
+
readonly env: AuriEnv;
|
|
8
|
+
constructor(networkConnection: NetworkConnection);
|
|
9
|
+
private parseBetMakeEvent;
|
|
10
|
+
private attachTimestamp;
|
|
11
|
+
getUserPlyGameHistory(user: Address): Promise<PlyGameBetResult[]>;
|
|
12
|
+
currentJackpotAmount(): Promise<TokenAmount>;
|
|
13
|
+
earlyUnlockedPulpAmount(user: Address): Promise<TokenAmount>;
|
|
14
|
+
getPlyGameResultsInTransaction(txHash: Address): Promise<PlyGameBetResult[]>;
|
|
15
|
+
leaderboard(): Promise<PlyGameLeaderboardItem[]>;
|
|
16
|
+
getLastJackpotResult(): Promise<{
|
|
17
|
+
winner: Address;
|
|
18
|
+
amount: TokenAmount;
|
|
19
|
+
}>;
|
|
20
|
+
overallLeaderboard(): Promise<PlyGameLeaderboardItem[]>;
|
|
21
|
+
}
|
|
22
|
+
export declare class PlyGameReadWrite extends PlyGameRead {
|
|
23
|
+
makeBetOnce(amount: TokenAmount): Promise<TransactionResponse>;
|
|
24
|
+
approve(amount: TokenAmount): Promise<TransactionResponse>;
|
|
25
|
+
}
|
|
26
|
+
export declare class PlyGame extends BlockchainEntity {
|
|
27
|
+
constructor();
|
|
28
|
+
read(networkConnection: NetworkConnection): PlyGameRead;
|
|
29
|
+
readWrite(networkConnection: NetworkConnection): PlyGameReadWrite;
|
|
30
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlyGame = exports.PlyGameReadWrite = exports.PlyGameRead = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
const consts = tslib_1.__importStar(require("../consts"));
|
|
7
|
+
const entities_1 = require("../entities");
|
|
8
|
+
const helpers = tslib_1.__importStar(require("../helpers"));
|
|
9
|
+
const helpers_1 = require("../helpers");
|
|
10
|
+
const AuriAPI = tslib_1.__importStar(require("../helpers/aurigami-api"));
|
|
11
|
+
class PlyGameRead extends entities_1.BlockchainEntityRead {
|
|
12
|
+
constructor(networkConnection) {
|
|
13
|
+
super(networkConnection);
|
|
14
|
+
Object.defineProperty(this, "plyToken", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: true,
|
|
17
|
+
writable: true,
|
|
18
|
+
value: void 0
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(this, "pulpToken", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true,
|
|
24
|
+
value: void 0
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(this, "env", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true,
|
|
29
|
+
writable: true,
|
|
30
|
+
value: void 0
|
|
31
|
+
});
|
|
32
|
+
this.env = new entities_1.AuriEnv(networkConnection);
|
|
33
|
+
let plyAddress = consts.networkAddresses.tokens.PLY;
|
|
34
|
+
let pulpAddress = consts.networkAddresses.tokens.PULP;
|
|
35
|
+
this.plyToken = new entities_1.Token(plyAddress, helpers.getDecimal(plyAddress));
|
|
36
|
+
this.pulpToken = new entities_1.Token(pulpAddress, helpers.getDecimal(pulpAddress));
|
|
37
|
+
}
|
|
38
|
+
parseBetMakeEvent(event) {
|
|
39
|
+
let outcome = ['bigWin', 'win', 'lose', 'noImpact'][event.args.outcome];
|
|
40
|
+
let betAmount = event.args.amount;
|
|
41
|
+
let lostAmount = betAmount.mul([0, 0, 100, 2][event.args.outcome]).div(100);
|
|
42
|
+
let unlock = betAmount.mul([10, 1, 0, 0][event.args.outcome]);
|
|
43
|
+
return {
|
|
44
|
+
player: event.args.player,
|
|
45
|
+
lostAmount: new entities_1.TokenAmount(this.plyToken, lostAmount.toString()),
|
|
46
|
+
unlockedPulpAmount: new entities_1.TokenAmount(this.pulpToken, unlock.toString()),
|
|
47
|
+
outcome: outcome,
|
|
48
|
+
transactionHash: event.transactionHash,
|
|
49
|
+
block: event.blockNumber,
|
|
50
|
+
timestamp: 0,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
async attachTimestamp(results) {
|
|
54
|
+
let blockNumbers = results.map((e) => e.block);
|
|
55
|
+
let blockstimestamp = await (0, helpers_1.getBlocksTimestamp)(this._networkConnection.provider, blockNumbers);
|
|
56
|
+
return results.map((e, i) => ({ ...e, timestamp: blockstimestamp[i] }));
|
|
57
|
+
}
|
|
58
|
+
async getUserPlyGameHistory(user) {
|
|
59
|
+
let block100 = await this.env.plygame.callStatic.getLastBlock(user, 100);
|
|
60
|
+
if (block100.eq(0)) {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
let filter = this.env.plygame.raw.filters.BetMade(user);
|
|
64
|
+
let events = await this.env.plygame.raw.queryFilter(filter, block100.toNumber());
|
|
65
|
+
(0, helpers_1.sortEvents)(events).reverse();
|
|
66
|
+
return this.attachTimestamp(events.map((event) => this.parseBetMakeEvent(event)));
|
|
67
|
+
}
|
|
68
|
+
async currentJackpotAmount() {
|
|
69
|
+
let jackpot = await this.env.plygame.callStatic.currentJackpotAmount();
|
|
70
|
+
return new entities_1.TokenAmount(this.plyToken, jackpot.toString());
|
|
71
|
+
}
|
|
72
|
+
async earlyUnlockedPulpAmount(user) {
|
|
73
|
+
let earlyUnlockedPulpAmount = await this.env.plygame.callStatic.totalPlyUnlockedEarly(user);
|
|
74
|
+
return new entities_1.TokenAmount(this.pulpToken, earlyUnlockedPulpAmount.toString());
|
|
75
|
+
}
|
|
76
|
+
async getPlyGameResultsInTransaction(txHash) {
|
|
77
|
+
let tx = await this._networkConnection.provider.getTransactionReceipt(txHash);
|
|
78
|
+
for (let i = 0; i < 100 && !tx; i++) {
|
|
79
|
+
await (0, helpers_1.sleep)(1000);
|
|
80
|
+
tx = await this._networkConnection.provider.getTransactionReceipt(txHash);
|
|
81
|
+
}
|
|
82
|
+
if (!tx) {
|
|
83
|
+
throw new Error(`Transaction ${txHash} takes too long to be mined`);
|
|
84
|
+
}
|
|
85
|
+
let filter = this.env.plygame.raw.filters.BetMade();
|
|
86
|
+
let betMadeEvents = tx.logs
|
|
87
|
+
.filter((log) => (0, helpers_1.isSameAddress)(log.topics[0], filter.topics[0]))
|
|
88
|
+
.map((log) => ({
|
|
89
|
+
...this.env.plygame.raw.interface.parseLog(log),
|
|
90
|
+
blockNumber: tx.blockNumber,
|
|
91
|
+
transactionHash: txHash,
|
|
92
|
+
}));
|
|
93
|
+
return this.attachTimestamp(betMadeEvents.map((e) => this.parseBetMakeEvent(e)));
|
|
94
|
+
}
|
|
95
|
+
async leaderboard() {
|
|
96
|
+
const result = await AuriAPI.getPaginatedApi('/plygame/leaderboard');
|
|
97
|
+
return result.items.map((item, i) => ({
|
|
98
|
+
player: item.user,
|
|
99
|
+
unlockedPulpAmount: new entities_1.TokenAmount(this.pulpToken, item.unlockedAmount),
|
|
100
|
+
gamesPlayed: item.count,
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
async getLastJackpotResult() {
|
|
104
|
+
let round = ethers_1.BigNumber.from(await this._networkConnection.provider.getStorageAt(this.env.plygame.address, 158));
|
|
105
|
+
let result = await this.env.plygame.callStatic.jackpotHistory(round.sub(1));
|
|
106
|
+
return {
|
|
107
|
+
winner: result.winner.slice(0, 5) + '...' + result.winner.slice(-3),
|
|
108
|
+
amount: new entities_1.TokenAmount(this.plyToken, result.amount.toString()),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
async overallLeaderboard() {
|
|
112
|
+
const result = await AuriAPI.getPaginatedApi('/plygame/overallLeaderboard');
|
|
113
|
+
return result.items.map((item) => ({
|
|
114
|
+
player: item.user,
|
|
115
|
+
unlockedPulpAmount: new entities_1.TokenAmount(this.pulpToken, item.unlockedAmount),
|
|
116
|
+
gamesPlayed: item.count,
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.PlyGameRead = PlyGameRead;
|
|
121
|
+
class PlyGameReadWrite extends PlyGameRead {
|
|
122
|
+
async makeBetOnce(amount) {
|
|
123
|
+
return this.env.plygame.raw
|
|
124
|
+
.connect(this._networkConnection.signer)
|
|
125
|
+
.makeBetOnce(amount.rawAmount());
|
|
126
|
+
}
|
|
127
|
+
async approve(amount) {
|
|
128
|
+
return this.env.ply.raw
|
|
129
|
+
.connect(this._networkConnection.signer)
|
|
130
|
+
.approve(this.env.plygame.address, amount.rawAmount());
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.PlyGameReadWrite = PlyGameReadWrite;
|
|
134
|
+
class PlyGame extends entities_1.BlockchainEntity {
|
|
135
|
+
constructor() {
|
|
136
|
+
super();
|
|
137
|
+
}
|
|
138
|
+
read(networkConnection) {
|
|
139
|
+
return new PlyGameRead(networkConnection);
|
|
140
|
+
}
|
|
141
|
+
readWrite(networkConnection) {
|
|
142
|
+
return new PlyGameReadWrite(networkConnection);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.PlyGame = PlyGame;
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx5R2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmFjdG9ycy9QbHlHYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxtQ0FBeUM7QUFDekMsMERBQW9DO0FBQ3BDLDBDQUFrRztBQUNsRyw0REFBc0M7QUFDdEMsd0NBQWtGO0FBQ2xGLHlFQUFtRDtBQVNuRCxNQUFhLFdBQVksU0FBUSwrQkFBb0I7SUFLbkQsWUFBbUIsaUJBQW9DO1FBQ3JELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBTFg7Ozs7O1dBQWdCO1FBQ2hCOzs7OztXQUFpQjtRQUNqQjs7Ozs7V0FBYTtRQUkzQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksa0JBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTFDLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ3BELElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxnQkFBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBc0I7UUFDOUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBR2xDLElBQUksVUFB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
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
-
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, TokenAmount } from '../entities';
|
|
3
|
-
import { Address, NetworkConnection } from '../types';
|
|
4
|
-
export declare class PlyTokenLockRead extends BlockchainEntityRead {
|
|
5
|
-
readonly env: AuriEnv;
|
|
6
|
-
constructor(networkConnection: NetworkConnection);
|
|
7
|
-
getClaimableAmount(recipient: Address): Promise<TokenAmount>;
|
|
8
|
-
}
|
|
9
|
-
export declare class PlyTokenLockReadWrite extends PlyTokenLockRead {
|
|
10
|
-
claim(recipient: Address, amount: TokenAmount): Promise<TransactionResponse>;
|
|
11
|
-
}
|
|
12
|
-
export declare class PlyTokenLock extends BlockchainEntity {
|
|
13
|
-
constructor();
|
|
14
|
-
read(networkConnection: NetworkConnection): PlyTokenLockRead;
|
|
15
|
-
readWrite(networkConnection: NetworkConnection): PlyTokenLockReadWrite;
|
|
16
|
-
}
|
|
1
|
+
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
+
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, TokenAmount } from '../entities';
|
|
3
|
+
import { Address, NetworkConnection } from '../types';
|
|
4
|
+
export declare class PlyTokenLockRead extends BlockchainEntityRead {
|
|
5
|
+
readonly env: AuriEnv;
|
|
6
|
+
constructor(networkConnection: NetworkConnection);
|
|
7
|
+
getClaimableAmount(recipient: Address): Promise<TokenAmount>;
|
|
8
|
+
}
|
|
9
|
+
export declare class PlyTokenLockReadWrite extends PlyTokenLockRead {
|
|
10
|
+
claim(recipient: Address, amount: TokenAmount): Promise<TransactionResponse>;
|
|
11
|
+
}
|
|
12
|
+
export declare class PlyTokenLock extends BlockchainEntity {
|
|
13
|
+
constructor();
|
|
14
|
+
read(networkConnection: NetworkConnection): PlyTokenLockRead;
|
|
15
|
+
readWrite(networkConnection: NetworkConnection): PlyTokenLockReadWrite;
|
|
16
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlyTokenLock = exports.PlyTokenLockReadWrite = exports.PlyTokenLockRead = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const entities_1 = require("../entities");
|
|
6
|
+
class PlyTokenLockRead extends entities_1.BlockchainEntityRead {
|
|
7
|
+
constructor(networkConnection) {
|
|
8
|
+
super(networkConnection);
|
|
9
|
+
Object.defineProperty(this, "env", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: void 0
|
|
14
|
+
});
|
|
15
|
+
this.env = new entities_1.AuriEnv(networkConnection);
|
|
16
|
+
}
|
|
17
|
+
async getClaimableAmount(recipient) {
|
|
18
|
+
const claimableAmount = await this.env.plyTokenLock.callStatic.claimableBalance(recipient);
|
|
19
|
+
return new entities_1.TokenAmount(new entities_1.Token(entities_1.PLYToken.address, 18), claimableAmount.toString(), true);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.PlyTokenLockRead = PlyTokenLockRead;
|
|
23
|
+
class PlyTokenLockReadWrite extends PlyTokenLockRead {
|
|
24
|
+
async claim(recipient, amount) {
|
|
25
|
+
const amountToClaim = ethers_1.BigNumber.from(amount.rawAmount());
|
|
26
|
+
return await this.env.plyTokenLock.raw
|
|
27
|
+
.connect(this._networkConnection.signer)
|
|
28
|
+
.claim(recipient, amountToClaim);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.PlyTokenLockReadWrite = PlyTokenLockReadWrite;
|
|
32
|
+
class PlyTokenLock extends entities_1.BlockchainEntity {
|
|
33
|
+
constructor() {
|
|
34
|
+
super();
|
|
35
|
+
}
|
|
36
|
+
read(networkConnection) {
|
|
37
|
+
return new PlyTokenLockRead(networkConnection);
|
|
38
|
+
}
|
|
39
|
+
readWrite(networkConnection) {
|
|
40
|
+
return new PlyTokenLockReadWrite(networkConnection);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.PlyTokenLock = PlyTokenLock;
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx5VG9rZW5Mb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyYWN0b3JzL1BseVRva2VuTG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtQ0FBeUM7QUFDekMsMENBT3FCO0FBR3JCLE1BQWEsZ0JBQWlCLFNBQVEsK0JBQW9CO0lBR3hELFlBQW1CLGlCQUFvQztRQUNyRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUhYOzs7OztXQUFhO1FBSTNCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxrQkFBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxTQUFrQjtRQUNoRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRixPQUFPLElBQUksc0JBQVcsQ0FBQyxJQUFJLGdCQUFLLENBQUMsbUJBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVGLENBQUM7Q0FDRjtBQVpELDRDQVlDO0FBRUQsTUFBYSxxQkFBc0IsU0FBUSxnQkFBZ0I7SUFDbEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFrQixFQUFFLE1BQW1CO1FBQ3hELE1BQU0sYUFBYSxHQUFHLGtCQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHO2FBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTyxDQUFDO2FBQ3hDLEtBQUssQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBUEQsc0RBT0M7QUFFRCxNQUFhLFlBQWEsU0FBUSwyQkFBZ0I7SUFDaEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFDTSxJQUFJLENBQUMsaUJBQW9DO1FBQzlDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTSxTQUFTLENBQUMsaUJBQW9DO1FBQ25ELE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRjtBQVZELG9DQVVDIn0=
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
-
import { BigNumber as BN } from 'ethers';
|
|
3
|
-
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, TokenAmount } from '../entities';
|
|
4
|
-
import { Address, NetworkConnection } from '../types';
|
|
5
|
-
export declare class PulpRead extends BlockchainEntityRead {
|
|
6
|
-
readonly env: AuriEnv;
|
|
7
|
-
constructor(networkConnection: NetworkConnection);
|
|
8
|
-
remainingEarlyUnlockPulp(user: Address): Promise<BN>;
|
|
9
|
-
}
|
|
10
|
-
export declare class PulpReadWrite extends PulpRead {
|
|
11
|
-
convertEarlyPulp(recipient: Address, amount: TokenAmount): Promise<TransactionResponse>;
|
|
12
|
-
}
|
|
13
|
-
export declare class Pulp extends BlockchainEntity {
|
|
14
|
-
constructor();
|
|
15
|
-
read(networkConnection: NetworkConnection): PulpRead;
|
|
16
|
-
readWrite(networkConnection: NetworkConnection): PulpReadWrite;
|
|
17
|
-
}
|
|
1
|
+
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
+
import { BigNumber as BN } from 'ethers';
|
|
3
|
+
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, TokenAmount } from '../entities';
|
|
4
|
+
import { Address, NetworkConnection } from '../types';
|
|
5
|
+
export declare class PulpRead extends BlockchainEntityRead {
|
|
6
|
+
readonly env: AuriEnv;
|
|
7
|
+
constructor(networkConnection: NetworkConnection);
|
|
8
|
+
remainingEarlyUnlockPulp(user: Address): Promise<BN>;
|
|
9
|
+
}
|
|
10
|
+
export declare class PulpReadWrite extends PulpRead {
|
|
11
|
+
convertEarlyPulp(recipient: Address, amount: TokenAmount): Promise<TransactionResponse>;
|
|
12
|
+
}
|
|
13
|
+
export declare class Pulp extends BlockchainEntity {
|
|
14
|
+
constructor();
|
|
15
|
+
read(networkConnection: NetworkConnection): PulpRead;
|
|
16
|
+
readWrite(networkConnection: NetworkConnection): PulpReadWrite;
|
|
17
|
+
}
|