@evaafi/sdk 0.6.2 → 0.6.3-b

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.
Files changed (61) hide show
  1. package/CHANGELOG.md +57 -17
  2. package/README.md +2 -1
  3. package/dist/api/math.d.ts +12 -2
  4. package/dist/api/math.js +56 -4
  5. package/dist/api/parser.js +48 -20
  6. package/dist/constants/assets.d.ts +9 -1
  7. package/dist/constants/assets.js +38 -9
  8. package/dist/constants/general.d.ts +18 -0
  9. package/dist/constants/general.js +20 -2
  10. package/dist/constants/pools.d.ts +7 -1
  11. package/dist/constants/pools.js +60 -26
  12. package/dist/index.d.ts +10 -3
  13. package/dist/index.js +26 -2
  14. package/dist/prices/PricesCollector.d.ts +2 -2
  15. package/dist/prices/PricesCollector.js +8 -6
  16. package/dist/prices/utils.js +1 -1
  17. package/dist/rewards/EvaaRewards.d.ts +10 -0
  18. package/dist/rewards/EvaaRewards.js +21 -0
  19. package/dist/rewards/JettonMinter.d.ts +30 -0
  20. package/dist/rewards/JettonMinter.js +83 -0
  21. package/dist/rewards/JettonWallet.d.ts +23 -0
  22. package/dist/rewards/JettonWallet.js +60 -0
  23. package/dist/rewards/RewardMaster.d.ts +26 -0
  24. package/dist/rewards/RewardMaster.js +83 -0
  25. package/dist/rewards/RewardUser.d.ts +23 -0
  26. package/dist/rewards/RewardUser.js +70 -0
  27. package/dist/types/MasterRewards.d.ts +13 -0
  28. package/dist/types/User.d.ts +11 -1
  29. package/dist/types/UserRewards.d.ts +10 -0
  30. package/dist/types/UserRewards.js +2 -0
  31. package/dist/utils/sha256BigInt.d.ts +2 -0
  32. package/dist/utils/sha256BigInt.js +9 -1
  33. package/dist/utils/userJettonWallet.js +17 -0
  34. package/package.json +42 -42
  35. package/src/api/math.ts +78 -3
  36. package/src/api/parser.ts +57 -22
  37. package/src/constants/assets.ts +117 -65
  38. package/src/constants/general.ts +33 -2
  39. package/src/constants/pools.ts +110 -28
  40. package/src/index.ts +24 -2
  41. package/src/prices/PricesCollector.ts +10 -6
  42. package/src/prices/utils.ts +1 -1
  43. package/src/rewards/EvaaRewards.ts +23 -0
  44. package/src/rewards/JettonMinter.ts +113 -0
  45. package/src/rewards/JettonWallet.ts +77 -0
  46. package/src/rewards/RewardMaster.ts +110 -0
  47. package/src/rewards/RewardUser.ts +90 -0
  48. package/src/types/Master.ts +1 -1
  49. package/src/types/MasterRewards.ts +13 -0
  50. package/src/types/User.ts +13 -3
  51. package/src/types/UserRewards.ts +10 -0
  52. package/src/utils/sha256BigInt.ts +8 -0
  53. package/src/utils/userJettonWallet.ts +43 -27
  54. package/dist/config.d.ts +0 -1
  55. package/dist/config.js +0 -4
  56. package/dist/constants.d.ts +0 -69
  57. package/dist/constants.js +0 -83
  58. package/dist/types/Common.d.ts +0 -14
  59. package/dist/utils/priceUtils.d.ts +0 -55
  60. package/dist/utils/priceUtils.js +0 -117
  61. /package/dist/types/{Common.js → MasterRewards.js} +0 -0
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JettonMinter = void 0;
4
+ const ton_1 = require("@ton/ton");
5
+ const general_1 = require("../constants/general");
6
+ class JettonMinter {
7
+ constructor(address, init) {
8
+ this.address = address;
9
+ this.init = init;
10
+ }
11
+ static createFromAddress(address) {
12
+ return new JettonMinter(address);
13
+ }
14
+ static jettonMinterConfigToCell(config) {
15
+ return (0, ton_1.beginCell)()
16
+ .storeCoins(0)
17
+ .storeAddress(config.address)
18
+ .storeRef(config.content)
19
+ .storeRef(config.walletCode)
20
+ .endCell();
21
+ }
22
+ static createFromConfig(config, code, workchain = 0) {
23
+ const data = this.jettonMinterConfigToCell(config);
24
+ const init = { code, data };
25
+ return new JettonMinter((0, ton_1.contractAddress)(workchain, init), init);
26
+ }
27
+ async sendDeploy(provider, via, value) {
28
+ await provider.internal(via, {
29
+ value,
30
+ sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
31
+ body: (0, ton_1.beginCell)().endCell(),
32
+ });
33
+ }
34
+ sendMintMessage(payload) {
35
+ return (0, ton_1.beginCell)()
36
+ .storeUint(21, 32)
37
+ .storeUint(0, 64)
38
+ .storeAddress(payload.address)
39
+ .storeCoins(payload.forwardValue)
40
+ .storeRef((0, ton_1.beginCell)()
41
+ .storeUint(general_1.OPCODES.REWARD_JETTON_MINT, 32)
42
+ .storeUint(0, 64)
43
+ .storeCoins(payload.amount)
44
+ .storeAddress(this.address)
45
+ .storeAddress(this.address)
46
+ .storeCoins(0)
47
+ .storeUint(0, 1)
48
+ .endCell())
49
+ .endCell();
50
+ }
51
+ async sendMint(provider, via, value, forwardValue, recipient, amount) {
52
+ await provider.internal(via, {
53
+ sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
54
+ body: (0, ton_1.beginCell)()
55
+ .storeUint(21, 32)
56
+ .storeUint(0, 64)
57
+ .storeAddress(recipient)
58
+ .storeCoins(forwardValue)
59
+ .storeRef((0, ton_1.beginCell)()
60
+ .storeUint(general_1.OPCODES.REWARD_JETTON_MINT, 32)
61
+ .storeUint(0, 64)
62
+ .storeCoins(amount)
63
+ .storeAddress(this.address)
64
+ .storeAddress(this.address)
65
+ .storeCoins(0)
66
+ .storeUint(0, 1)
67
+ .endCell())
68
+ .endCell(),
69
+ value: value + forwardValue,
70
+ });
71
+ }
72
+ async getWalletAddressOf(provider, address) {
73
+ return (await provider.get('get_wallet_address', [
74
+ { type: 'slice', cell: (0, ton_1.beginCell)().storeAddress(address).endCell() },
75
+ ])).stack.readAddress();
76
+ }
77
+ async getWalletCode(provider) {
78
+ let stack = (await provider.get('get_jetton_data', [])).stack;
79
+ stack.skip(4);
80
+ return stack.readCell();
81
+ }
82
+ }
83
+ exports.JettonMinter = JettonMinter;
@@ -0,0 +1,23 @@
1
+ import { Address, Cell, Contract, ContractProvider, Sender } from '@ton/ton';
2
+ export type JettonWalletConfig = {
3
+ owner: Address;
4
+ minter: Address;
5
+ walletCode: Cell;
6
+ };
7
+ export declare class JettonWallet implements Contract {
8
+ readonly address: Address;
9
+ readonly init?: {
10
+ code: Cell;
11
+ data: Cell;
12
+ } | undefined;
13
+ constructor(address: Address, init?: {
14
+ code: Cell;
15
+ data: Cell;
16
+ } | undefined);
17
+ static createFromAddress(address: Address): JettonWallet;
18
+ static jettonWalletConfigToCell(config: JettonWalletConfig): Cell;
19
+ static createFromConfig(config: JettonWalletConfig, code: Cell, workchain?: number): JettonWallet;
20
+ sendDeploy(provider: ContractProvider, via: Sender, value: bigint): Promise<void>;
21
+ sendTransfer(provider: ContractProvider, via: Sender, value: bigint, forwardValue: bigint, recipient: Address, amount: bigint, forwardPayload: Cell): Promise<void>;
22
+ getJettonBalance(provider: ContractProvider): Promise<bigint>;
23
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JettonWallet = void 0;
4
+ const ton_1 = require("@ton/ton");
5
+ const general_1 = require("../constants/general");
6
+ class JettonWallet {
7
+ constructor(address, init) {
8
+ this.address = address;
9
+ this.init = init;
10
+ }
11
+ static createFromAddress(address) {
12
+ return new JettonWallet(address);
13
+ }
14
+ static jettonWalletConfigToCell(config) {
15
+ return (0, ton_1.beginCell)()
16
+ .storeCoins(0) // baseTrackingAccured always is 0, check smartcontract
17
+ .storeAddress(config.owner)
18
+ .storeAddress(config.minter)
19
+ .storeRef(config.walletCode)
20
+ .endCell();
21
+ }
22
+ static createFromConfig(config, code, workchain = 0) {
23
+ const data = this.jettonWalletConfigToCell(config);
24
+ const init = { code, data };
25
+ return new JettonWallet((0, ton_1.contractAddress)(workchain, init), init);
26
+ }
27
+ async sendDeploy(provider, via, value) {
28
+ await provider.internal(via, {
29
+ value,
30
+ sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
31
+ body: (0, ton_1.beginCell)().endCell(),
32
+ });
33
+ }
34
+ async sendTransfer(provider, via, value, forwardValue, recipient, amount, forwardPayload) {
35
+ await provider.internal(via, {
36
+ sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
37
+ body: (0, ton_1.beginCell)()
38
+ .storeUint(general_1.OPCODES.REWARD_JETTON_TRANSFER, 32)
39
+ .storeUint(0, 64)
40
+ .storeCoins(amount)
41
+ .storeAddress(recipient)
42
+ .storeAddress(via.address)
43
+ .storeUint(0, 1)
44
+ .storeCoins(forwardValue)
45
+ .storeUint(1, 1)
46
+ .storeRef(forwardPayload)
47
+ .endCell(),
48
+ value: value + forwardValue,
49
+ });
50
+ }
51
+ async getJettonBalance(provider) {
52
+ let state = await provider.getState();
53
+ if (state.state.type !== 'active') {
54
+ return 0n;
55
+ }
56
+ let res = await provider.get('get_wallet_data', []);
57
+ return res.stack.readBigNumber();
58
+ }
59
+ }
60
+ exports.JettonWallet = JettonWallet;
@@ -0,0 +1,26 @@
1
+ /// <reference types="node" />
2
+ import { Address, Cell, Contract, ContractProvider, Sender, StateInit } from '@ton/ton';
3
+ import { Maybe } from '@ton/ton/dist/utils/maybe';
4
+ import { EvaaRewardsConfig } from '../types/MasterRewards';
5
+ export declare class RewardMaster implements Contract {
6
+ readonly address: Address;
7
+ readonly init?: Maybe<StateInit>;
8
+ constructor(address: Address, init?: Maybe<StateInit>);
9
+ static createFromAddress(address: Address): RewardMaster;
10
+ static rewardMasterConfigToCell(config: EvaaRewardsConfig): Cell;
11
+ static createFromConfig(config: EvaaRewardsConfig, workchain?: number): RewardMaster;
12
+ sendDeploy(provider: ContractProvider, via: Sender, rewardTokenJettonWalletAddress: Address | null): Promise<void>;
13
+ sendTonTopUp(provider: ContractProvider, via: Sender, topUpRewardAmount: number): Promise<void>;
14
+ private adminWithdrawMessage;
15
+ sendAdminWithdraw(provider: ContractProvider, via: Sender, destinationAddress: Address, jettonAmount: number): Promise<void>;
16
+ getData(provider: ContractProvider): Promise<{
17
+ adminAddress: Address;
18
+ availableReward: number;
19
+ rewardUserCode: Cell;
20
+ evaaMasterAddress: Address;
21
+ rewardTokenJettonWalletAddress: Address | null;
22
+ assetId: Buffer;
23
+ publicKey: Buffer;
24
+ }>;
25
+ getRewardUserAddress(provider: ContractProvider, userAddress: Address): Promise<Address>;
26
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RewardMaster = void 0;
4
+ const ton_1 = require("@ton/ton");
5
+ const general_1 = require("../constants/general");
6
+ const sha256BigInt_1 = require("../utils/sha256BigInt");
7
+ class RewardMaster {
8
+ constructor(address, init) {
9
+ this.address = address;
10
+ this.init = init;
11
+ }
12
+ static createFromAddress(address) {
13
+ return new RewardMaster(address);
14
+ }
15
+ static rewardMasterConfigToCell(config) {
16
+ return (0, ton_1.beginCell)()
17
+ .storeAddress(config.adminAddress)
18
+ .storeCoins(config.availableReward)
19
+ .storeAddress(null) // The addres null for TON
20
+ .storeRef(config.rewardUserCode)
21
+ .storeRef((0, ton_1.beginCell)()
22
+ .storeAddress(config.evaaMasterAddress)
23
+ .storeBuffer((0, sha256BigInt_1.bigIntToBuffer)(config.asset.assetId), 256 / 8)
24
+ .storeBuffer(config.publicKey, 256 / 8)
25
+ .endCell())
26
+ .endCell();
27
+ }
28
+ static createFromConfig(config, workchain = 0) {
29
+ const data = this.rewardMasterConfigToCell(config);
30
+ const init = { code: config.rewardMasterCode, data };
31
+ return new RewardMaster((0, ton_1.contractAddress)(workchain, init), init);
32
+ }
33
+ async sendDeploy(provider, via, rewardTokenJettonWalletAddress) {
34
+ await provider.internal(via, {
35
+ value: general_1.FEES.REWARD_MASTER_DEPLOY,
36
+ sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
37
+ body: (0, ton_1.beginCell)().storeUint(1, 32).storeUint(0, 64).storeAddress(rewardTokenJettonWalletAddress).endCell(),
38
+ });
39
+ }
40
+ async sendTonTopUp(provider, via, topUpRewardAmount) {
41
+ await provider.internal(via, {
42
+ value: (0, ton_1.toNano)(topUpRewardAmount) + general_1.FEES.REWARD_MASTER_TON_TOP_UP,
43
+ sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
44
+ body: (0, ton_1.beginCell)().storeUint(general_1.OPCODES.REWARD_TON_TOP_UP, 32).storeUint(0, 64).endCell(),
45
+ });
46
+ }
47
+ adminWithdrawMessage(destinationAddress, jettonAmount) {
48
+ return (0, ton_1.beginCell)()
49
+ .storeUint(4, 32)
50
+ .storeUint(0, 64)
51
+ .storeAddress(destinationAddress)
52
+ .storeCoins((0, ton_1.toNano)(jettonAmount))
53
+ .endCell();
54
+ }
55
+ async sendAdminWithdraw(provider, via, destinationAddress, jettonAmount) {
56
+ await provider.internal(via, {
57
+ value: general_1.FEES.REWARD_MASTER_WITHDRAW,
58
+ sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
59
+ body: this.adminWithdrawMessage(destinationAddress, jettonAmount),
60
+ });
61
+ }
62
+ async getData(provider) {
63
+ const result = await provider.get('load_data', []);
64
+ const data = {
65
+ // TODO: maybe it will be typed
66
+ adminAddress: result.stack.readAddress(),
67
+ availableReward: Number((0, ton_1.fromNano)(result.stack.readBigNumber())),
68
+ rewardUserCode: result.stack.readCell(),
69
+ evaaMasterAddress: result.stack.readAddress(),
70
+ rewardTokenJettonWalletAddress: result.stack.readAddressOpt(),
71
+ assetId: Buffer.from(result.stack.readBigNumber().toString(16), 'hex'),
72
+ publicKey: Buffer.from(result.stack.readBigNumber().toString(16), 'hex'),
73
+ };
74
+ return data;
75
+ }
76
+ async getRewardUserAddress(provider, userAddress) {
77
+ const result = await provider.get('calculate_reward_user_address', [
78
+ { type: 'slice', cell: (0, ton_1.beginCell)().storeAddress(userAddress).endCell() },
79
+ ]);
80
+ return result.stack.readAddress();
81
+ }
82
+ }
83
+ exports.RewardMaster = RewardMaster;
@@ -0,0 +1,23 @@
1
+ /// <reference types="node" />
2
+ import { Address, Cell, Contract, ContractProvider, Sender, StateInit } from '@ton/ton';
3
+ import { Maybe } from '@ton/ton/dist/utils/maybe';
4
+ import { EvaaUserRewardsConfig } from '../types/UserRewards';
5
+ export declare class RewardUser implements Contract {
6
+ readonly address: Address;
7
+ readonly init?: Maybe<StateInit>;
8
+ constructor(address: Address, init?: Maybe<StateInit>);
9
+ static createFromAddress(address: Address): RewardUser;
10
+ static rewardUserConfigToCell(config: EvaaUserRewardsConfig): Cell;
11
+ static createFromConfig(config: EvaaUserRewardsConfig, workchain?: number): RewardUser;
12
+ sendDeploy(provider: ContractProvider, via: Sender): Promise<void>;
13
+ claimMessageToCell(claimAmount: bigint): Cell;
14
+ signClaimMessage(claimBody: Cell, privateKey: Buffer): Cell;
15
+ sendClaim(provider: ContractProvider, via: Sender, signedClaimMessage: Cell): Promise<void>;
16
+ getData(provider: ContractProvider): Promise<{
17
+ userAddress: Address;
18
+ baseTrackingAccrued: number;
19
+ rewardMasterAddress: Address;
20
+ assetId: Buffer;
21
+ publicKey: Buffer;
22
+ }>;
23
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RewardUser = void 0;
4
+ const crypto_1 = require("@ton/crypto");
5
+ const ton_1 = require("@ton/ton");
6
+ const general_1 = require("../constants/general");
7
+ const sha256BigInt_1 = require("../utils/sha256BigInt");
8
+ class RewardUser {
9
+ constructor(address, init) {
10
+ this.address = address;
11
+ this.init = init;
12
+ }
13
+ static createFromAddress(address) {
14
+ return new RewardUser(address);
15
+ }
16
+ static rewardUserConfigToCell(config) {
17
+ return (0, ton_1.beginCell)()
18
+ .storeAddress(config.userAddress)
19
+ .storeCoins(0)
20
+ .storeRef((0, ton_1.beginCell)()
21
+ .storeAddress(config.rewardMasterAddress)
22
+ .storeBuffer((0, sha256BigInt_1.bigIntToBuffer)(config.asset.assetId), 256 / 8)
23
+ .storeBuffer(config.publicKey, 256 / 8)
24
+ .endCell())
25
+ .endCell();
26
+ }
27
+ static createFromConfig(config, workchain = 0) {
28
+ const data = this.rewardUserConfigToCell(config);
29
+ const init = { code: config.rewardUserCode, data };
30
+ return new RewardUser((0, ton_1.contractAddress)(workchain, init), init);
31
+ }
32
+ async sendDeploy(provider, via) {
33
+ await provider.internal(via, {
34
+ value: general_1.FEES.REWARD_MASTER_DEPLOY,
35
+ sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
36
+ body: (0, ton_1.beginCell)().endCell(),
37
+ });
38
+ }
39
+ claimMessageToCell(claimAmount) {
40
+ return (0, ton_1.beginCell)().storeAddress(this.address).storeCoins(claimAmount).endCell();
41
+ }
42
+ signClaimMessage(claimBody, privateKey) {
43
+ return (0, ton_1.beginCell)()
44
+ .storeUint(general_1.OPCODES.REWARD_CLAIM, 32)
45
+ .storeUint(0, 64)
46
+ .storeBuffer((0, crypto_1.sign)(claimBody.hash(), privateKey))
47
+ .storeRef(claimBody)
48
+ .endCell();
49
+ }
50
+ async sendClaim(provider, via, signedClaimMessage) {
51
+ await provider.internal(via, {
52
+ value: general_1.FEES.REWARD_USER_CLAIM,
53
+ sendMode: ton_1.SendMode.PAY_GAS_SEPARATELY,
54
+ body: signedClaimMessage,
55
+ });
56
+ }
57
+ async getData(provider) {
58
+ const result = await provider.get('load_data', []);
59
+ // TODO: maybe it will be typed
60
+ const data = {
61
+ userAddress: result.stack.readAddress(),
62
+ baseTrackingAccrued: Number((0, ton_1.fromNano)(result.stack.readBigNumber())),
63
+ rewardMasterAddress: result.stack.readAddress(),
64
+ assetId: Buffer.from(result.stack.readBigNumber().toString(16), 'hex'),
65
+ publicKey: Buffer.from(result.stack.readBigNumber().toString(16), 'hex'),
66
+ };
67
+ return data;
68
+ }
69
+ }
70
+ exports.RewardUser = RewardUser;
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" />
2
+ import { Address, Cell } from '@ton/ton';
3
+ import { PoolAssetConfig } from './Master';
4
+ export type EvaaRewardsConfig = {
5
+ workchain?: number;
6
+ adminAddress: Address;
7
+ evaaMasterAddress: Address;
8
+ availableReward: number;
9
+ asset: PoolAssetConfig;
10
+ rewardMasterCode: Cell;
11
+ rewardUserCode: Cell;
12
+ publicKey: Buffer;
13
+ };
@@ -1,5 +1,5 @@
1
1
  import { Address, Cell, Dictionary } from '@ton/core';
2
- import { ExtendedAssetsConfig, ExtendedAssetsData, PoolAssetConfig, PoolConfig } from './Master';
2
+ import { AssetConfig, AssetData, ExtendedAssetsConfig, ExtendedAssetsData, MasterConstants, PoolAssetConfig, PoolConfig } from './Master';
3
3
  export declare enum BalanceType {
4
4
  supply = "supply",
5
5
  borrow = "borrow"
@@ -31,6 +31,7 @@ export type UserLiteData = {
31
31
  masterAddress: Address;
32
32
  ownerAddress: Address;
33
33
  principals: Dictionary<bigint, bigint>;
34
+ realPrincipals: Dictionary<bigint, bigint>;
34
35
  state: number;
35
36
  balances: Dictionary<bigint, UserBalance>;
36
37
  trackingSupplyIndex: bigint;
@@ -40,6 +41,7 @@ export type UserLiteData = {
40
41
  rewards: Dictionary<bigint, UserRewards>;
41
42
  backupCell1: Cell | null;
42
43
  backupCell2: Cell | null;
44
+ fullyParsed: boolean;
43
45
  };
44
46
  export type UserDataActive = UserLiteData & {
45
47
  withdrawalLimits: Dictionary<bigint, bigint>;
@@ -52,6 +54,7 @@ export type UserDataActive = UserLiteData & {
52
54
  limitUsed: bigint;
53
55
  healthFactor: number;
54
56
  liquidationData: LiquidationData;
57
+ havePrincipalWithoutPrice: boolean;
55
58
  };
56
59
  export type UserDataInactive = {
57
60
  type: 'inactive';
@@ -84,3 +87,10 @@ export type PredictHealthFactorArgs = {
84
87
  assetsConfig: ExtendedAssetsConfig;
85
88
  poolConfig: PoolConfig;
86
89
  };
90
+ export type PredictAPYArgs = {
91
+ balanceChangeType: BalanceChangeType;
92
+ amount: bigint;
93
+ assetData: AssetData;
94
+ assetConfig: AssetConfig;
95
+ masterConstants: MasterConstants;
96
+ };
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ import { Address, Cell } from '@ton/ton';
3
+ import { PoolAssetConfig } from './Master';
4
+ export type EvaaUserRewardsConfig = {
5
+ userAddress: Address;
6
+ rewardUserCode: Cell;
7
+ rewardMasterAddress: Address;
8
+ asset: PoolAssetConfig;
9
+ publicKey: Buffer;
10
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1,3 @@
1
+ /// <reference types="node" />
1
2
  export declare function sha256Hash(input: string): bigint;
3
+ export declare function bigIntToBuffer(value: bigint): Buffer;
@@ -3,7 +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
- exports.sha256Hash = void 0;
6
+ exports.bigIntToBuffer = exports.sha256Hash = void 0;
7
7
  const sha256_1 = __importDefault(require("crypto-js/sha256"));
8
8
  function sha256Hash(input) {
9
9
  const hash = (0, sha256_1.default)(input);
@@ -11,3 +11,11 @@ function sha256Hash(input) {
11
11
  return BigInt('0x' + hashHex);
12
12
  }
13
13
  exports.sha256Hash = sha256Hash;
14
+ function bigIntToBuffer(value) {
15
+ let hex = value.toString(16);
16
+ if (hex.length % 2) {
17
+ hex = '0' + hex;
18
+ }
19
+ return Buffer.from(hex, 'hex');
20
+ }
21
+ exports.bigIntToBuffer = bigIntToBuffer;
@@ -16,12 +16,22 @@ function getUserJettonData(ownerAddress, assetName, jettonWalletCode, jettonMast
16
16
  case 'DOGS':
17
17
  case 'NOT':
18
18
  case 'USDT':
19
+ case 'USDe':
19
20
  return (0, core_1.beginCell)()
20
21
  .storeUint(0, 4)
21
22
  .storeCoins(0)
22
23
  .storeAddress(ownerAddress)
23
24
  .storeAddress(jettonMasterAddress)
24
25
  .endCell();
26
+ case 'tsUSDe':
27
+ return (0, core_1.beginCell)()
28
+ .storeUint(0, 4)
29
+ .storeCoins(0)
30
+ .storeAddress(ownerAddress)
31
+ .storeAddress(jettonMasterAddress)
32
+ .storeCoins(0)
33
+ .storeUint(0, 64)
34
+ .endCell();
25
35
  case 'tsTON':
26
36
  return (0, core_1.beginCell)()
27
37
  .storeCoins(0)
@@ -31,6 +41,13 @@ function getUserJettonData(ownerAddress, assetName, jettonWalletCode, jettonMast
31
41
  .storeCoins(0)
32
42
  .storeUint(0, 48)
33
43
  .endCell();
44
+ case 'tgBTC':
45
+ return (0, core_1.beginCell)()
46
+ .storeUint(0, 4)
47
+ .storeCoins(0)
48
+ .storeAddress(ownerAddress)
49
+ .storeAddress(jettonMasterAddress)
50
+ .endCell();
34
51
  default:
35
52
  return (0, core_1.beginCell)().storeCoins(0)
36
53
  .storeAddress(ownerAddress)
package/package.json CHANGED
@@ -1,44 +1,44 @@
1
1
  {
2
- "name": "@evaafi/sdk",
3
- "version": "0.6.2",
4
- "description": "The EVAA SDK is designed to easily integrate with the EVAA lending protocol on TON blockchain.",
5
- "main": "dist/index.js",
6
- "files": [
7
- "dist",
8
- "src"
9
- ],
10
- "scripts": {
11
- "build": "tsc --declaration",
12
- "test": "jest"
13
- },
14
- "repository": {
15
- "type": "git",
16
- "url": "git+https://github.com/evaafi/sdk.git"
17
- },
18
- "author": "EVAA Finance",
19
- "license": "MIT",
20
- "homepage": "https://github.com/evaafi/sdk#readme",
21
- "devDependencies": {
22
- "@orbs-network/ton-access": "^2.3.3",
23
- "@ton/core": "0.56.0",
24
- "@ton/crypto": "^3.3.0",
25
- "@tonconnect/sdk": "^3.0.5",
26
- "@types/jest": "^29.5.12",
27
- "@types/node": "^20.10.4",
28
- "crypto-js": "^4.2.0",
29
- "prettier": "^3.2.4",
30
- "ts-jest": "^29.2.4",
31
- "ts-node": "^10.9.1",
32
- "typedoc": "^0.27.4",
33
- "typescript": "^5.3.3"
34
- },
35
- "peerDependencies": {
36
- "@ton/core": ">=0.56.0",
37
- "@tonconnect/sdk": ">=3.0.0",
38
- "crypto-js": ">=4.2.0"
39
- },
40
- "dependencies": {
41
- "@ton/ton": "^14.0.0",
42
- "dotenv": "^16.4.5"
43
- }
2
+ "name": "@evaafi/sdk",
3
+ "version": "0.6.3-b",
4
+ "description": "The EVAA SDK is designed to easily integrate with the EVAA lending protocol on TON blockchain.",
5
+ "main": "dist/index.js",
6
+ "files": [
7
+ "dist",
8
+ "src"
9
+ ],
10
+ "scripts": {
11
+ "build": "tsc --declaration",
12
+ "test": "jest"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/evaafi/sdk.git"
17
+ },
18
+ "author": "EVAA Finance",
19
+ "license": "MIT",
20
+ "homepage": "https://github.com/evaafi/sdk#readme",
21
+ "devDependencies": {
22
+ "@orbs-network/ton-access": "^2.3.3",
23
+ "@ton/core": "0.56.0",
24
+ "@ton/crypto": "^3.3.0",
25
+ "@tonconnect/sdk": "3.0.5",
26
+ "@types/jest": "^29.5.12",
27
+ "@types/node": "^20.10.4",
28
+ "crypto-js": "4.2.0",
29
+ "prettier": "3.2.4",
30
+ "ts-jest": "^29.2.4",
31
+ "ts-node": "^10.9.1",
32
+ "typedoc": "0.27.4",
33
+ "typescript": "5.3.3"
34
+ },
35
+ "peerDependencies": {
36
+ "@ton/core": ">=0.56.0",
37
+ "@tonconnect/sdk": ">=3.0.0",
38
+ "crypto-js": ">=4.2.0"
39
+ },
40
+ "dependencies": {
41
+ "@ton/ton": "14.0.0",
42
+ "dotenv": "16.4.5"
43
+ }
44
44
  }