@aurigami/sdk 1.6.1 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/consts/constants.d.ts +3 -0
- package/dist/contracts/Referral.d.ts +44 -0
- package/dist/contracts/index.d.ts +1 -0
- package/dist/sdk.cjs.development.js +262 -11
- package/dist/sdk.cjs.development.js.map +1 -1
- package/dist/sdk.cjs.production.min.js +1 -1
- package/dist/sdk.cjs.production.min.js.map +1 -1
- package/dist/sdk.esm.js +259 -12
- package/dist/sdk.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/consts/constants.ts +11 -1
- package/src/consts/decimals.ts +1 -0
- package/src/contracts/Referral.ts +98 -0
- package/src/contracts/index.ts +1 -0
- package/src/helpers/priceFetcher.ts +4 -1
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.6.
|
|
2
|
+
"version": "1.6.3",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"typescript": "^4.5.4"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@aurigami/contracts": "3.
|
|
63
|
+
"@aurigami/contracts": "3.6.0",
|
|
64
64
|
"axios": "^0.26.1",
|
|
65
65
|
"bignumber.js": "^9.0.2",
|
|
66
66
|
"dotenv": "^16.0.0",
|
package/src/consts/constants.ts
CHANGED
|
@@ -70,6 +70,11 @@ export const networkAddresses: NetworkAddresses = {
|
|
|
70
70
|
address: MAINNET_ADDRESSES.auTokens.PLY.toLowerCase(),
|
|
71
71
|
underlying: '0x09c9d464b58d96837f8d8b6f4d9fe4ad408d3a4f'.toLowerCase(),
|
|
72
72
|
},
|
|
73
|
+
{
|
|
74
|
+
name: 'auUSN',
|
|
75
|
+
address: MAINNET_ADDRESSES.auTokens.USN.toLowerCase(),
|
|
76
|
+
underlying: '0x5183e1b1091804bc2602586919e6880ac1cf2896'.toLowerCase(),
|
|
77
|
+
},
|
|
73
78
|
],
|
|
74
79
|
misc: {
|
|
75
80
|
COMPTROLLER: MAINNET_ADDRESSES.comptroller.toLowerCase(),
|
|
@@ -81,6 +86,7 @@ export const networkAddresses: NetworkAddresses = {
|
|
|
81
86
|
MULTICALL: MAINNET_ADDRESSES.multicall.toLowerCase(),
|
|
82
87
|
TEAM_MULTISIG: '0x2D05FfFE70CE64c5954710D4C308dB31C8dBd8dE'.toLowerCase(),
|
|
83
88
|
PLY_TOKEN_LOCK: MAINNET_ADDRESSES.plyTokenLock.toLowerCase(),
|
|
89
|
+
REFERRAL: MAINNET_ADDRESSES.referralDirectory.toLocaleLowerCase(),
|
|
84
90
|
},
|
|
85
91
|
tokens: {
|
|
86
92
|
AURORA: '0x8bec47865ade3b172a928df8f990bc7f2a3b9f79'.toLowerCase(),
|
|
@@ -89,9 +95,10 @@ export const networkAddresses: NetworkAddresses = {
|
|
|
89
95
|
USDC: '0xb12bfca5a55806aaf64e99521918a4bf0fc40802'.toLowerCase(),
|
|
90
96
|
WNEAR: '0xC42C30aC6Cc15faC9bD938618BcaA1a1FaE8501d'.toLowerCase(),
|
|
91
97
|
TRI: '0xFa94348467f64D5A457F75F8bc40495D33c65aBB'.toLowerCase(),
|
|
92
|
-
META: '0xc21ff01229e982d7c8b8691163b0a3cb8f357453'.
|
|
98
|
+
META: '0xc21ff01229e982d7c8b8691163b0a3cb8f357453'.toLowerCase(),
|
|
93
99
|
PULP: MAINNET_ADDRESSES.PULP.toLowerCase(),
|
|
94
100
|
PLYWNEAR: MAINNET_ADDRESSES.ply_wnear_lp.toLowerCase(),
|
|
101
|
+
USN: '0x5183e1b1091804bc2602586919e6880ac1cf2896'.toLowerCase(),
|
|
95
102
|
},
|
|
96
103
|
};
|
|
97
104
|
|
|
@@ -144,3 +151,6 @@ export const DEPOSIT_NEAR_REWARDS_PER_WEEK: { [k: string]: string } =
|
|
|
144
151
|
export const BORROW_NEAR_REWARDS_PER_WEEK: { [k: string]: string } = {
|
|
145
152
|
// currently 0 for all markets
|
|
146
153
|
};
|
|
154
|
+
|
|
155
|
+
export const HARDCODE_PRICE_TOKENS: { [k: string]: string } =
|
|
156
|
+
Object.fromEntries([[networkAddresses.tokens.USN.toLowerCase(), '1']]);
|
package/src/consts/decimals.ts
CHANGED
|
@@ -21,4 +21,5 @@ export const decimalRecords: Record<string, number> = {
|
|
|
21
21
|
'0xc21ff01229e982d7c8b8691163b0a3cb8f357453': 24,
|
|
22
22
|
'0x04ac48711bcdc45b4d223fb021e09da73c71095e': 18, // PULP
|
|
23
23
|
'0x044b6b0cd3bb13d2b9057781df4459c66781dce7': 18, // PLYWNEAR
|
|
24
|
+
'0x5183e1b1091804bc2602586919e6880ac1cf2896': 18, // USN
|
|
24
25
|
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import ReferralDirectoryABI from '@aurigami/contracts/artifacts/contracts/ReferralDirectory.sol/ReferralDirectory.json';
|
|
2
|
+
import { ReferralDirectory } from '@aurigami/contracts/typechain';
|
|
3
|
+
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
4
|
+
import { Contract, ethers } from 'ethers';
|
|
5
|
+
import * as consts from '../consts';
|
|
6
|
+
import { BlockchainEntity, BlockchainEntityRead } from '../entities';
|
|
7
|
+
import { Address, NetworkConnection } from '../types';
|
|
8
|
+
|
|
9
|
+
export class ReferralRead extends BlockchainEntityRead {
|
|
10
|
+
protected _referral: ReferralDirectory;
|
|
11
|
+
constructor(networkConnection: NetworkConnection) {
|
|
12
|
+
super(networkConnection);
|
|
13
|
+
this._referral = new Contract(
|
|
14
|
+
consts.networkAddresses.misc.REFERRAL,
|
|
15
|
+
ReferralDirectoryABI.abi,
|
|
16
|
+
networkConnection.provider
|
|
17
|
+
) as ReferralDirectory;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Generate a 10-character referral code
|
|
22
|
+
* containing alphanumeric characters.
|
|
23
|
+
*/
|
|
24
|
+
protected generateReferralCode(): string {
|
|
25
|
+
let letters = 'abcdefghijklmnopqrstuvwxyz';
|
|
26
|
+
let numbers = '1234567890';
|
|
27
|
+
let charset = letters + letters.toUpperCase() + numbers;
|
|
28
|
+
let R = '';
|
|
29
|
+
for (var i = 0; i < 10; i++)
|
|
30
|
+
R += charset[Math.floor(Math.random() * charset.length)];
|
|
31
|
+
return R;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get the referral code for a given address, returns empty string if not found.
|
|
36
|
+
*
|
|
37
|
+
* Called to check if a user has a referral code.
|
|
38
|
+
*/
|
|
39
|
+
public async getUserReferralCode(userAddr: Address): Promise<string> {
|
|
40
|
+
const result = await this._referral.userReferralCode(userAddr);
|
|
41
|
+
return ethers.utils.parseBytes32String(result);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Get referral code that a user was referred by, returns empty string if not found.
|
|
46
|
+
*/
|
|
47
|
+
public async getReferralCodeUsed(userAddr: Address): Promise<string> {
|
|
48
|
+
const result = await this._referral.referralCodeUsed(userAddr);
|
|
49
|
+
return ethers.utils.parseBytes32String(result);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Get owner of a referral code, returns zero address if not found.
|
|
54
|
+
*/
|
|
55
|
+
public async getReferralCodeOwner(code: string): Promise<Address> {
|
|
56
|
+
const referralCode = ethers.utils.formatBytes32String(code);
|
|
57
|
+
return this._referral.referralCodeOwner(referralCode);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export class ReferralReadWrite extends ReferralRead {
|
|
62
|
+
/**
|
|
63
|
+
* Generate a referral code for a given address.
|
|
64
|
+
*
|
|
65
|
+
* Called when an user want to creates his own referral code
|
|
66
|
+
*/
|
|
67
|
+
public async registerNewReferralCode(): Promise<TransactionResponse> {
|
|
68
|
+
const referralCode = ethers.utils.formatBytes32String(
|
|
69
|
+
this.generateReferralCode()
|
|
70
|
+
);
|
|
71
|
+
return this._referral
|
|
72
|
+
.connect(this._networkConnection.signer!)
|
|
73
|
+
.registerNewUserReferralCode(referralCode);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Called when an user confirms he is referred by a specified code
|
|
78
|
+
*/
|
|
79
|
+
public async useReferralCode(code: string): Promise<TransactionResponse> {
|
|
80
|
+
const referralCode = ethers.utils.formatBytes32String(code);
|
|
81
|
+
return this._referral
|
|
82
|
+
.connect(this._networkConnection.signer!)
|
|
83
|
+
.registerReferralCodeUsed(referralCode);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export class Referral extends BlockchainEntity {
|
|
88
|
+
constructor() {
|
|
89
|
+
super();
|
|
90
|
+
}
|
|
91
|
+
public read(networkConnection: NetworkConnection): ReferralRead {
|
|
92
|
+
return new ReferralRead(networkConnection);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
public readWrite(networkConnection: NetworkConnection): ReferralReadWrite {
|
|
96
|
+
return new ReferralReadWrite(networkConnection);
|
|
97
|
+
}
|
|
98
|
+
}
|
package/src/contracts/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ import BigNumber from 'bignumber.js';
|
|
|
2
2
|
import { Contract, providers, BigNumber as BN, ethers } from 'ethers';
|
|
3
3
|
import {
|
|
4
4
|
DECIMAL_PRECISION,
|
|
5
|
+
HARDCODE_PRICE_TOKENS,
|
|
5
6
|
networkAddresses,
|
|
6
7
|
PRICE_WHITELISTED,
|
|
7
8
|
} from '../consts/constants';
|
|
@@ -243,7 +244,9 @@ export async function fetchPrice(
|
|
|
243
244
|
address: Address,
|
|
244
245
|
provider: providers.Provider
|
|
245
246
|
): Promise<BigNumber> {
|
|
246
|
-
if (
|
|
247
|
+
if (address.toLowerCase() in HARDCODE_PRICE_TOKENS) {
|
|
248
|
+
return new BigNumber(HARDCODE_PRICE_TOKENS[address.toLowerCase()]);
|
|
249
|
+
} else if (isSameAddress(address, networkAddresses.tokens.PLYWNEAR)) {
|
|
247
250
|
return fetchLPPrice(address, provider);
|
|
248
251
|
} else if (isSameAddress(address, networkAddresses.tokens.PLY)) {
|
|
249
252
|
return fetchPLYPrice(provider);
|