@evaafi/sdk 0.9.6 → 1.0.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.
@@ -3,6 +3,8 @@ import { HexString } from '@pythnetwork/hermes-client';
3
3
  import { Dictionary } from '@ton/ton';
4
4
  import { Buffer } from 'buffer';
5
5
  export declare const FEED_ID: {
6
+ GRAM: string;
7
+ /** @deprecated TON/USD feed retired; the native asset is now priced via gram.usd. Use GRAM. */
6
8
  TON: string;
7
9
  USDT: string;
8
10
  stTON: string;
package/dist/api/feeds.js CHANGED
@@ -3,7 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseFeedsMapDict = exports.unpackConnectedFeeds = exports.packConnectedFeeds = exports.bigintToBuffer = exports.FEED_ID = void 0;
4
4
  const buffer_1 = require("buffer");
5
5
  exports.FEED_ID = {
6
- TON: '0x8963217838ab4cf5cadc172203c1f0b763fbaa45f346d8ee50ba994bbcac3026',
6
+ // GRAM (gram.usd) Pyth feed. Replaces the retired TON/USD feed
7
+ // (0x8963217838ab4cf5cadc172203c1f0b763fbaa45f346d8ee50ba994bbcac3026).
8
+ GRAM: '0xe41cd8a90528974c7b97b506abb694e2cc5750b119f796a7001890c1a93a572d',
9
+ /** @deprecated TON/USD feed retired; the native asset is now priced via gram.usd. Use GRAM. */
10
+ TON: '0xe41cd8a90528974c7b97b506abb694e2cc5750b119f796a7001890c1a93a572d',
7
11
  USDT: '0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
8
12
  stTON: '0x9145e059026a4d5a46f3b96408f7e572e33b3257b9c2dbe8dba551c772762002',
9
13
  tsTON: '0x3d1784128eeab5961ec60648fe497d3901eebd211b7f51e4bb0db9f024977d25',
@@ -1,5 +1,7 @@
1
1
  export declare const ASSET_ID: {
2
2
  EVAA: bigint;
3
+ GRAM: bigint;
4
+ /** @deprecated renamed to GRAM; kept for backward compatibility. Same id (sha256('TON')). */
3
5
  TON: bigint;
4
6
  USDT: bigint;
5
7
  jUSDT: bigint;
@@ -5,6 +5,11 @@ const sha256BigInt_1 = require("../../utils/sha256BigInt");
5
5
  exports.ASSET_ID = {
6
6
  EVAA: (0, sha256BigInt_1.sha256Hash)('EVAA'),
7
7
  // Main
8
+ // GRAM (formerly TON). The token id is sha256('TON') for historical reasons:
9
+ // the native asset was registered on-chain as 'TON' before the GRAM rebrand,
10
+ // so the id must stay sha256('TON') to keep matching existing on-chain state.
11
+ GRAM: (0, sha256BigInt_1.sha256Hash)('TON'),
12
+ /** @deprecated renamed to GRAM; kept for backward compatibility. Same id (sha256('TON')). */
8
13
  TON: (0, sha256BigInt_1.sha256Hash)('TON'),
9
14
  USDT: (0, sha256BigInt_1.sha256Hash)('USDT'),
10
15
  jUSDT: (0, sha256BigInt_1.sha256Hash)('jUSDT'),
@@ -1,5 +1,7 @@
1
1
  import { PoolAssetConfig } from '../../types/Master';
2
2
  export declare const UNDEFINED_ASSET: PoolAssetConfig;
3
+ export declare const GRAM_MAINNET: PoolAssetConfig;
4
+ /** @deprecated renamed to GRAM_MAINNET; kept for backward compatibility. */
3
5
  export declare const TON_MAINNET: PoolAssetConfig;
4
6
  export declare const JUSDT_MAINNET: PoolAssetConfig;
5
7
  export declare const JUSDC_MAINNET: PoolAssetConfig;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TUSDE_MAINNET = exports.TUSDT_MAINNET = exports.EVAA_MAINNET = exports.STON_MAINNET = exports.TONUSDT_STONFI_MAINNET = exports.PT_tsUSDe_18Dec2025_MAINNET = exports.PT_tsUSDe_01Sep2025_MAINNET = exports.TSUSDE_MAINNET = exports.USDE_MAINNET = exports.NOT_MAINNET = exports.DOGS_MAINNET = exports.CATI_MAINNET = exports.USDT_STORM_MAINNET = exports.TON_STORM_MAINNET = exports.TONUSDT_DEDUST_MAINNET = exports.USDT_MAINNET = exports.TSTON_MAINNET = exports.STTON_MAINNET = exports.JUSDC_MAINNET = exports.JUSDT_MAINNET = exports.TON_MAINNET = exports.UNDEFINED_ASSET = void 0;
3
+ exports.TUSDE_MAINNET = exports.TUSDT_MAINNET = exports.EVAA_MAINNET = exports.STON_MAINNET = exports.TONUSDT_STONFI_MAINNET = exports.PT_tsUSDe_18Dec2025_MAINNET = exports.PT_tsUSDe_01Sep2025_MAINNET = exports.TSUSDE_MAINNET = exports.USDE_MAINNET = exports.NOT_MAINNET = exports.DOGS_MAINNET = exports.CATI_MAINNET = exports.USDT_STORM_MAINNET = exports.TON_STORM_MAINNET = exports.TONUSDT_DEDUST_MAINNET = exports.USDT_MAINNET = exports.TSTON_MAINNET = exports.STTON_MAINNET = exports.JUSDC_MAINNET = exports.JUSDT_MAINNET = exports.TON_MAINNET = exports.GRAM_MAINNET = exports.UNDEFINED_ASSET = void 0;
4
4
  const core_1 = require("@ton/core");
5
5
  const general_1 = require("../general");
6
6
  const assetId_1 = require("./assetId");
@@ -10,12 +10,15 @@ exports.UNDEFINED_ASSET = {
10
10
  jettonMasterAddress: general_1.NULL_ADDRESS, // fake
11
11
  jettonWalletCode: core_1.Cell.EMPTY,
12
12
  };
13
- exports.TON_MAINNET = {
14
- name: 'TON',
15
- assetId: assetId_1.ASSET_ID.TON,
13
+ exports.GRAM_MAINNET = {
14
+ name: 'GRAM',
15
+ // historical id: sha256('TON') — the native asset was registered as 'TON' before the GRAM rebrand
16
+ assetId: assetId_1.ASSET_ID.GRAM,
16
17
  jettonMasterAddress: general_1.NULL_ADDRESS, // fake
17
18
  jettonWalletCode: core_1.Cell.EMPTY,
18
19
  };
20
+ /** @deprecated renamed to GRAM_MAINNET; kept for backward compatibility. */
21
+ exports.TON_MAINNET = exports.GRAM_MAINNET;
19
22
  exports.JUSDT_MAINNET = {
20
23
  name: 'jUSDT',
21
24
  assetId: assetId_1.ASSET_ID.jUSDT,
@@ -1,4 +1,6 @@
1
1
  import { PoolAssetConfig } from '../../types/Master';
2
+ export declare const GRAM_TESTNET: PoolAssetConfig;
3
+ /** @deprecated renamed to GRAM_TESTNET; kept for backward compatibility. */
2
4
  export declare const TON_TESTNET: PoolAssetConfig;
3
5
  export declare const JUSDT_TESTNET: PoolAssetConfig;
4
6
  export declare const JUSDC_TESTNET: PoolAssetConfig;
@@ -1,15 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EUSDC_TESTNET = exports.EUSDT_TESTNET = exports.TGBTC_TESTNET = exports.STTON_TESTNET = exports.JUSDC_TESTNET = exports.JUSDT_TESTNET = exports.TON_TESTNET = void 0;
3
+ exports.EUSDC_TESTNET = exports.EUSDT_TESTNET = exports.TGBTC_TESTNET = exports.STTON_TESTNET = exports.JUSDC_TESTNET = exports.JUSDT_TESTNET = exports.TON_TESTNET = exports.GRAM_TESTNET = void 0;
4
4
  const core_1 = require("@ton/core");
5
5
  const assets_1 = require("../assets");
6
6
  const general_1 = require("../general");
7
- exports.TON_TESTNET = {
8
- name: 'TON',
9
- assetId: assets_1.ASSET_ID.TON,
7
+ exports.GRAM_TESTNET = {
8
+ name: 'GRAM',
9
+ // historical id: sha256('TON') — the native asset was registered as 'TON' before the GRAM rebrand
10
+ assetId: assets_1.ASSET_ID.GRAM,
10
11
  jettonMasterAddress: general_1.NULL_ADDRESS, // fake
11
12
  jettonWalletCode: core_1.Cell.EMPTY,
12
13
  };
14
+ /** @deprecated renamed to GRAM_TESTNET; kept for backward compatibility. */
15
+ exports.TON_TESTNET = exports.GRAM_TESTNET;
13
16
  exports.JUSDT_TESTNET = {
14
17
  name: 'jUSDT',
15
18
  assetId: assets_1.ASSET_ID.jUSDT,
@@ -8,7 +8,7 @@ const assets_1 = require("../assets");
8
8
  const general_1 = require("../general");
9
9
  // Pool assets configs
10
10
  exports.MAINNET_POOL_ASSETS_CONFIG = [
11
- assets_1.TON_MAINNET,
11
+ assets_1.GRAM_MAINNET,
12
12
  assets_1.JUSDT_MAINNET,
13
13
  assets_1.JUSDC_MAINNET,
14
14
  assets_1.STTON_MAINNET,
@@ -25,14 +25,14 @@ exports.MAINNET_STABLE_POOL_ASSETS_CONFIG = [
25
25
  assets_1.PT_tsUSDe_18Dec2025_MAINNET,
26
26
  ];
27
27
  exports.MAINNET_LP_POOL_ASSETS_CONFIG = [
28
- assets_1.TON_MAINNET,
28
+ assets_1.GRAM_MAINNET,
29
29
  assets_1.USDT_MAINNET,
30
30
  assets_1.TONUSDT_DEDUST_MAINNET,
31
31
  assets_1.TON_STORM_MAINNET,
32
32
  assets_1.USDT_STORM_MAINNET,
33
33
  assets_1.TONUSDT_STONFI_MAINNET,
34
34
  ];
35
- exports.MAINNET_ALTS_POOL_ASSETS_CONFIG = [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.CATI_MAINNET, assets_1.NOT_MAINNET, assets_1.DOGS_MAINNET];
35
+ exports.MAINNET_ALTS_POOL_ASSETS_CONFIG = [assets_1.GRAM_MAINNET, assets_1.USDT_MAINNET, assets_1.CATI_MAINNET, assets_1.NOT_MAINNET, assets_1.DOGS_MAINNET];
36
36
  exports.MAINNET_POOL_CONFIG = {
37
37
  masterAddress: general_1.EVAA_MASTER_MAINNET,
38
38
  masterVersion: general_1.MAINNET_VERSION,
@@ -42,10 +42,10 @@ exports.MAINNET_POOL_CONFIG = {
42
42
  poolAssetsConfig: exports.MAINNET_POOL_ASSETS_CONFIG,
43
43
  pythOracle: {
44
44
  feedsMap: new Map([
45
- [feeds_1.FEED_ID.TON, { assetId: assets_1.ASSET_ID.TON, feedId: "0x0" }],
45
+ [feeds_1.FEED_ID.GRAM, { assetId: assets_1.ASSET_ID.GRAM, feedId: "0x0" }],
46
46
  [feeds_1.FEED_ID.USDT, { assetId: assets_1.ASSET_ID.USDT, feedId: "0x0" }],
47
- [feeds_1.FEED_ID.tsTON, { assetId: assets_1.ASSET_ID.tsTON, feedId: feeds_1.FEED_ID.TON }],
48
- [feeds_1.FEED_ID.stTON, { assetId: assets_1.ASSET_ID.stTON, feedId: feeds_1.FEED_ID.TON }],
47
+ [feeds_1.FEED_ID.tsTON, { assetId: assets_1.ASSET_ID.tsTON, feedId: feeds_1.FEED_ID.GRAM }],
48
+ [feeds_1.FEED_ID.stTON, { assetId: assets_1.ASSET_ID.stTON, feedId: feeds_1.FEED_ID.GRAM }],
49
49
  [feeds_1.FEED_ID.USDe, { assetId: assets_1.ASSET_ID.USDe, feedId: "0x0" }],
50
50
  [feeds_1.FEED_ID.tsUSDe, { assetId: assets_1.ASSET_ID.tsUSDe, feedId: feeds_1.FEED_ID.USDe }],
51
51
  ]),
@@ -56,7 +56,10 @@ exports.MAINNET_POOL_CONFIG = {
56
56
  },
57
57
  }),
58
58
  poolAssetsConfig: exports.MAINNET_POOL_ASSETS_CONFIG,
59
- poolAssetsHEConfig: [],
59
+ poolAssetsHEConfig: [
60
+ { title: 'ton', assets: [assets_1.GRAM_MAINNET, assets_1.TSTON_MAINNET], heCategory: 1 },
61
+ { title: 'stable', assets: [assets_1.USDT_MAINNET, assets_1.USDE_MAINNET, assets_1.TSUSDE_MAINNET], heCategory: 2 },
62
+ ],
60
63
  lendingCode: general_1.LENDING_CODE,
61
64
  };
62
65
  exports.MAINNET_STABLE_POOL_CONFIG = {
@@ -82,7 +85,10 @@ exports.MAINNET_LP_POOL_CONFIG = {
82
85
  evaaOracles: general_1.ORACLES_LP,
83
86
  }),
84
87
  poolAssetsConfig: exports.MAINNET_LP_POOL_ASSETS_CONFIG,
85
- poolAssetsHEConfig: [],
88
+ poolAssetsHEConfig: [
89
+ { title: 'ton', assets: [assets_1.GRAM_MAINNET, assets_1.TON_STORM_MAINNET], heCategory: 1 },
90
+ { title: 'stable', assets: [assets_1.USDT_MAINNET, assets_1.USDT_STORM_MAINNET], heCategory: 2 },
91
+ ],
86
92
  lendingCode: general_1.LENDING_CODE,
87
93
  };
88
94
  exports.MAINNET_LP_POOL_COPY_CONFIG = {
@@ -96,7 +102,7 @@ exports.MAINNET_LP_POOL_COPY_CONFIG = {
96
102
  }),
97
103
  poolAssetsConfig: exports.MAINNET_LP_POOL_ASSETS_CONFIG,
98
104
  poolAssetsHEConfig: [
99
- { title: 'ton', assets: [assets_1.TON_MAINNET, assets_1.TON_STORM_MAINNET], heCategory: 1 },
105
+ { title: 'ton', assets: [assets_1.GRAM_MAINNET, assets_1.TON_STORM_MAINNET], heCategory: 1 },
100
106
  { title: 'stable', assets: [assets_1.USDT_MAINNET, assets_1.USDT_STORM_MAINNET], heCategory: 2 },
101
107
  ],
102
108
  lendingCode: general_1.LENDING_CODE,
@@ -114,7 +120,7 @@ exports.MAINNET_ALTS_POOL_CONFIG = {
114
120
  poolAssetsHEConfig: [],
115
121
  lendingCode: general_1.LENDING_CODE,
116
122
  };
117
- exports.MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG = [assets_1.TON_MAINNET, assets_1.USDT_MAINNET, assets_1.JUSDT_MAINNET];
123
+ exports.MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG = [assets_1.GRAM_MAINNET, assets_1.USDT_MAINNET, assets_1.JUSDT_MAINNET];
118
124
  exports.MAINNET_PYTH_V8_TOB_POOL_CONFIG = {
119
125
  masterAddress: general_1.EVAA_PYTH_TOB_MAINNET,
120
126
  masterVersion: general_1.EVAA_PYTH_TOB_VERSION,
@@ -124,7 +130,7 @@ exports.MAINNET_PYTH_V8_TOB_POOL_CONFIG = {
124
130
  poolAssetsConfig: exports.MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
125
131
  pythOracle: {
126
132
  feedsMap: new Map([
127
- [feeds_1.FEED_ID.TON, { assetId: assets_1.ASSET_ID.TON, feedId: '0x0' }],
133
+ [feeds_1.FEED_ID.GRAM, { assetId: assets_1.ASSET_ID.GRAM, feedId: '0x0' }],
128
134
  [feeds_1.FEED_ID.USDT, { assetId: assets_1.ASSET_ID.USDT, feedId: '0x0' }],
129
135
  ]),
130
136
  pythAddress: general_1.PYTH_ORACLE_MAINNET,
@@ -135,7 +141,7 @@ exports.MAINNET_PYTH_V8_TOB_POOL_CONFIG = {
135
141
  poolAssetsHEConfig: [],
136
142
  lendingCode: general_1.LENDING_CODE,
137
143
  };
138
- exports.MAINNET_V8_TOB_POOL_ASSETS_CONFIG = [assets_1.TON_MAINNET, assets_1.USDT_MAINNET];
144
+ exports.MAINNET_V8_TOB_POOL_ASSETS_CONFIG = [assets_1.GRAM_MAINNET, assets_1.USDT_MAINNET];
139
145
  exports.MAINNET_V8_TOB_POOL_CONFIG = {
140
146
  masterAddress: general_1.EVAA_TOB_MAINNET,
141
147
  masterVersion: general_1.EVAA_TOB_VERSION,
@@ -154,7 +160,7 @@ exports.MAINNET_MASTER_TON_REWARD_CONFIG = {
154
160
  evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
155
161
  rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_MAINNET,
156
162
  rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_MAINNET,
157
- asset: assets_1.TON_MAINNET,
163
+ asset: assets_1.GRAM_MAINNET,
158
164
  availableReward: 0,
159
165
  publicKey: Buffer.from('bfe9a30221db4dff4c17e55d985e0b13a8f597bbb28002f311dc4429dad1ca95', 'hex'), // adminAddress publicKey
160
166
  };
@@ -181,13 +187,13 @@ exports.MAINNET_CLASSIC_HE_POOL_CONFIG = {
181
187
  masterVersion: 0,
182
188
  masterConstants: general_1.MASTER_CONSTANTS,
183
189
  collector: new oracles_1.FakeCollector(core_1.Dictionary.empty()
184
- .set(assets_1.ASSET_ID.TON, 1300000000n)
190
+ .set(assets_1.ASSET_ID.GRAM, 1300000000n)
185
191
  .set(assets_1.ASSET_ID.tsTON, 1500000000n)
186
192
  .set(assets_1.ASSET_ID.TUSDT, 1000000000n)
187
193
  .set(assets_1.ASSET_ID.TUSDe, 1000000000n)),
188
- poolAssetsConfig: [assets_1.TON_MAINNET, assets_1.TSTON_MAINNET, assets_1.TUSDE_MAINNET, assets_1.TUSDT_MAINNET],
194
+ poolAssetsConfig: [assets_1.GRAM_MAINNET, assets_1.TSTON_MAINNET, assets_1.TUSDE_MAINNET, assets_1.TUSDT_MAINNET],
189
195
  poolAssetsHEConfig: [
190
- { title: 'ton', assets: [assets_1.TON_MAINNET, assets_1.TSTON_MAINNET], heCategory: 1 },
196
+ { title: 'ton', assets: [assets_1.GRAM_MAINNET, assets_1.TSTON_MAINNET], heCategory: 1 },
191
197
  { title: 'stable', assets: [assets_1.TUSDT_MAINNET, assets_1.TUSDE_MAINNET], heCategory: 2 },
192
198
  ],
193
199
  lendingCode: general_1.LENDING_CODE,
@@ -6,8 +6,8 @@ const feeds_1 = require("../../api/feeds");
6
6
  const oracles_1 = require("../../oracles");
7
7
  const assets_1 = require("../assets");
8
8
  const general_1 = require("../general");
9
- exports.TESTNET_POOL_ASSETS_CONFIG = [assets_1.TON_TESTNET, assets_1.JUSDC_TESTNET];
10
- exports.TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED = [assets_1.TON_TESTNET, assets_1.JUSDC_TESTNET];
9
+ exports.TESTNET_POOL_ASSETS_CONFIG = [assets_1.GRAM_TESTNET, assets_1.JUSDC_TESTNET];
10
+ exports.TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED = [assets_1.GRAM_TESTNET, assets_1.JUSDC_TESTNET];
11
11
  exports.TESTNET_PYTH_POOL_CONFIG_TOB_AUDITED = {
12
12
  masterAddress: general_1.EVAA_MASTER_TESTNET_PYTH_TOB_AUDITED,
13
13
  masterVersion: general_1.TESTNET_PYTH_VERSION_TOB_AUDITED,
@@ -17,9 +17,9 @@ exports.TESTNET_PYTH_POOL_CONFIG_TOB_AUDITED = {
17
17
  pythOracle: {
18
18
  feedsMap: new Map([
19
19
  [
20
- feeds_1.FEED_ID.TON,
20
+ feeds_1.FEED_ID.GRAM,
21
21
  {
22
- assetId: assets_1.ASSET_ID.TON,
22
+ assetId: assets_1.ASSET_ID.GRAM,
23
23
  feedId: '0x0',
24
24
  },
25
25
  ],
@@ -51,12 +51,12 @@ exports.TESTNET_CLASSIC_HE_POOL_CONFIG = {
51
51
  masterVersion: 0,
52
52
  masterConstants: general_1.MASTER_CONSTANTS,
53
53
  collector: new oracles_1.ClassicCollector({
54
- poolAssetsConfig: [assets_1.TON_MAINNET, assets_1.TSTON_MAINNET, assets_1.USDT_MAINNET, assets_1.USDE_MAINNET],
54
+ poolAssetsConfig: [assets_1.GRAM_MAINNET, assets_1.TSTON_MAINNET, assets_1.USDT_MAINNET, assets_1.USDE_MAINNET],
55
55
  minimalOracles: 1,
56
56
  evaaOracles: general_1.ORACLES_TESTNET,
57
57
  }),
58
58
  lendingCode: general_1.LENDING_CODE,
59
- poolAssetsConfig: [assets_1.TON_MAINNET, assets_1.TSTON_MAINNET, assets_1.USDT_MAINNET, assets_1.USDE_MAINNET],
59
+ poolAssetsConfig: [assets_1.GRAM_MAINNET, assets_1.TSTON_MAINNET, assets_1.USDT_MAINNET, assets_1.USDE_MAINNET],
60
60
  poolAssetsHEConfig: [],
61
61
  };
62
62
  exports.TESTNET_MASTER_REWARD_CONFIG = {
@@ -64,7 +64,7 @@ exports.TESTNET_MASTER_REWARD_CONFIG = {
64
64
  evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
65
65
  rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_TESTNET,
66
66
  rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_TESTNET,
67
- asset: assets_1.TON_TESTNET,
67
+ asset: assets_1.GRAM_TESTNET,
68
68
  availableReward: 0,
69
69
  publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
70
70
  };
@@ -90,7 +90,7 @@ class AbstractEvaaMaster {
90
90
  .endCell();
91
91
  }
92
92
  buildSupplyWithdrawOperationPayload(parameters) {
93
- const isTon = (0, __1.isTonAsset)(parameters.supplyAsset);
93
+ const isTon = (0, __1.isGramAsset)(parameters.supplyAsset);
94
94
  const supplyData = (0, core_1.beginCell)();
95
95
  if (isTon) {
96
96
  supplyData.storeUint(parameters.supplyAmount, 64);
@@ -124,7 +124,7 @@ class AbstractEvaaMaster {
124
124
  createSupplyMessage(parameters) {
125
125
  AbstractEvaaMaster.validateSupplyParameters(parameters);
126
126
  const subaccountId = parameters.subaccountId ?? 0;
127
- const isTon = (0, __1.isTonAsset)(parameters.asset);
127
+ const isTon = (0, __1.isGramAsset)(parameters.asset);
128
128
  const operationPayload = (0, core_1.beginCell)()
129
129
  .storeUint(general_1.OPCODES.SUPPLY_MASTER, 32)
130
130
  .storeBuilder(isTon ? (0, core_1.beginCell)().storeUint(parameters.queryID, 64) : (0, core_1.beginCell)())
@@ -175,7 +175,7 @@ class AbstractEvaaMaster {
175
175
  .storeUint(parameters.collateralAsset, 256)
176
176
  .storeUint(parameters.minCollateralAmount, 64)
177
177
  .storeInt(parameters.includeUserCode ? -1 : 0, 2)
178
- .storeUint((0, __1.isTonAsset)(parameters.asset) ? parameters.liquidationAmount : 0, 64);
178
+ .storeUint((0, __1.isGramAsset)(parameters.asset) ? parameters.liquidationAmount : 0, 64);
179
179
  }
180
180
  // ========== CONTRACT INTERACTION HELPERS ==========
181
181
  /**
@@ -232,7 +232,7 @@ class AbstractEvaaMaster {
232
232
  });
233
233
  }
234
234
  async sendTx(provider, via, value, message, asset) {
235
- if (!(0, __1.isTonAsset)(asset)) {
235
+ if (!(0, __1.isGramAsset)(asset)) {
236
236
  if (!via.address)
237
237
  throw new Error('Via address is required for jetton supply');
238
238
  const jettonWallet = provider.open(JettonWallet_1.JettonWallet.createFromAddress((0, userJettonWallet_1.getUserJettonWallet)(via.address, asset)));
@@ -22,7 +22,7 @@ class EvaaMasterClassic extends AbstractMaster_1.AbstractEvaaMaster {
22
22
  .endCell();
23
23
  }
24
24
  createSupplyWithdrawMessage(parameters) {
25
- const isTon = (0, __1.isTonAsset)(parameters.supplyAsset);
25
+ const isTon = (0, __1.isGramAsset)(parameters.supplyAsset);
26
26
  const operationPayload = this.buildSupplyWithdrawOperationPayload(parameters);
27
27
  const refOpCode = parameters.priceData
28
28
  ? general_1.OPCODES.SUPPLY_WITHDRAW_MASTER
@@ -41,7 +41,7 @@ class EvaaMasterClassic extends AbstractMaster_1.AbstractEvaaMaster {
41
41
  async sendWithdraw(provider, via, value, parameters) {
42
42
  // Compatibility layer using supply-withdraw with TON zero supply
43
43
  await this.sendSupplyWithdraw(provider, via, value, {
44
- supplyAsset: __1.TON_MAINNET,
44
+ supplyAsset: __1.GRAM_MAINNET,
45
45
  supplyAmount: 0n,
46
46
  queryID: parameters.queryID,
47
47
  withdrawAsset: parameters.asset,
@@ -63,7 +63,7 @@ class EvaaMasterClassic extends AbstractMaster_1.AbstractEvaaMaster {
63
63
  return operationPayloadBuilder.storeRef(innerBuilder).storeRef(parameters.priceData);
64
64
  }
65
65
  createLiquidationMessage(parameters) {
66
- const isTon = (0, __1.isTonAsset)(parameters.asset);
66
+ const isTon = (0, __1.isGramAsset)(parameters.asset);
67
67
  const operationPayload = this.buildLiquidationOperationPayload(parameters);
68
68
  if (!isTon) {
69
69
  return this.createJettonTransferMessage(parameters, general_1.FEES.LIQUIDATION_JETTON_FWD, (0, core_1.beginCell)().storeUint(general_1.OPCODES.LIQUIDATE_MASTER, 32).storeBuilder(operationPayload).endCell());
@@ -70,7 +70,7 @@ class EvaaMasterPyth extends AbstractMaster_1.AbstractEvaaMaster {
70
70
  .storeUint(general_1.OPCODES.SUPPLY_WITHDRAW_MASTER_WITHOUT_PRICES, 32)
71
71
  .storeSlice(operationPayload.beginParse())
72
72
  .endCell();
73
- if (!(0, utils_1.isTonAsset)(parameters.supplyAsset)) {
73
+ if (!(0, utils_1.isGramAsset)(parameters.supplyAsset)) {
74
74
  return this.createJettonTransferMessage(parameters, general_1.FEES.SUPPLY_WITHDRAW + general_1.FEES.JETTON_FWD, messageBody);
75
75
  }
76
76
  else {
@@ -87,7 +87,7 @@ class EvaaMasterPyth extends AbstractMaster_1.AbstractEvaaMaster {
87
87
  if (!parameters.pyth) {
88
88
  return this.createSupplyWithdrawMessageNoPrices(parameters, operationPayload);
89
89
  }
90
- if (!(0, utils_1.isTonAsset)(parameters.supplyAsset)) {
90
+ if (!(0, utils_1.isGramAsset)(parameters.supplyAsset)) {
91
91
  return this.createJettonPythMessage(parameters, // as JettonParams & { queryID: number | bigint },
92
92
  operationPayload, parameters.pyth, general_1.OPCODES.SUPPLY_WITHDRAW_MASTER_JETTON);
93
93
  }
@@ -116,7 +116,7 @@ class EvaaMasterPyth extends AbstractMaster_1.AbstractEvaaMaster {
116
116
  }
117
117
  async sendWithdraw(provider, via, value, parameters) {
118
118
  const message = this.createSupplyWithdrawMessage({
119
- supplyAsset: constants_1.TON_MAINNET,
119
+ supplyAsset: constants_1.GRAM_MAINNET,
120
120
  supplyAmount: 0n,
121
121
  queryID: parameters.queryID,
122
122
  withdrawAsset: parameters.asset,
@@ -146,7 +146,7 @@ class EvaaMasterPyth extends AbstractMaster_1.AbstractEvaaMaster {
146
146
  }
147
147
  createLiquidationMessage(parameters) {
148
148
  const operationPayload = this.buildLiquidationOperationPayload(parameters);
149
- if (!(0, utils_1.isTonAsset)(parameters.asset)) {
149
+ if (!(0, utils_1.isGramAsset)(parameters.asset)) {
150
150
  return this.createJettonPythMessage(parameters, operationPayload, parameters.pyth, general_1.OPCODES.LIQUIDATE_MASTER);
151
151
  }
152
152
  else {
@@ -58,7 +58,7 @@ function getUserJettonData(ownerAddress, assetName, jettonWalletCode, jettonMast
58
58
  }
59
59
  function getUserJettonWallet(ownerAddress, poolAssetConfig) {
60
60
  const assetName = poolAssetConfig.name;
61
- if (assetName == 'TON' || poolAssetConfig.assetId === assets_1.UNDEFINED_ASSET.assetId) {
61
+ if (assetName == 'GRAM' || poolAssetConfig.assetId === assets_1.UNDEFINED_ASSET.assetId) {
62
62
  throw new Error(`Cant getUserJettonWallet for ${poolAssetConfig.name} asset`);
63
63
  }
64
64
  let jettonWalletCode = poolAssetConfig.jettonWalletCode;
@@ -1,6 +1,10 @@
1
1
  import { PoolAssetConfig } from '../types/Master';
2
- export declare function isTonAsset(asset: PoolAssetConfig): boolean;
3
- export declare function isTonAssetId(assetId: bigint): boolean;
2
+ export declare function isGramAsset(asset: PoolAssetConfig): boolean;
3
+ export declare function isGramAssetId(assetId: bigint): boolean;
4
+ /** @deprecated renamed to isGramAsset; kept for backward compatibility. */
5
+ export declare const isTonAsset: typeof isGramAsset;
6
+ /** @deprecated renamed to isGramAssetId; kept for backward compatibility. */
7
+ export declare const isTonAssetId: typeof isGramAssetId;
4
8
  export declare function delay(ms: number): Promise<unknown>;
5
9
  export interface FetchConfig {
6
10
  retries: number;
@@ -1,15 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidSubaccountId = exports.proxyFetchRetries = exports.DefaultFetchConfig = exports.delay = exports.isTonAssetId = exports.isTonAsset = void 0;
3
+ exports.isValidSubaccountId = exports.proxyFetchRetries = exports.DefaultFetchConfig = exports.delay = exports.isTonAssetId = exports.isTonAsset = exports.isGramAssetId = exports.isGramAsset = void 0;
4
4
  const assets_1 = require("../constants/assets");
5
- function isTonAsset(asset) {
6
- return asset.name === 'TON';
5
+ function isGramAsset(asset) {
6
+ return asset.name === 'GRAM';
7
7
  }
8
- exports.isTonAsset = isTonAsset;
9
- function isTonAssetId(assetId) {
10
- return assetId === assets_1.ASSET_ID.TON;
8
+ exports.isGramAsset = isGramAsset;
9
+ function isGramAssetId(assetId) {
10
+ return assetId === assets_1.ASSET_ID.GRAM;
11
11
  }
12
- exports.isTonAssetId = isTonAssetId;
12
+ exports.isGramAssetId = isGramAssetId;
13
+ /** @deprecated renamed to isGramAsset; kept for backward compatibility. */
14
+ exports.isTonAsset = isGramAsset;
15
+ /** @deprecated renamed to isGramAssetId; kept for backward compatibility. */
16
+ exports.isTonAssetId = isGramAssetId;
13
17
  function delay(ms) {
14
18
  return new Promise((resolve) => setTimeout(resolve, ms));
15
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evaafi/sdk",
3
- "version": "0.9.6",
3
+ "version": "1.0.0",
4
4
  "description": "The EVAA SDK is designed to easily integrate with the EVAA lending protocol on TON blockchain.",
5
5
  "main": "dist/index.js",
6
6
  "files": [
package/src/api/feeds.ts CHANGED
@@ -3,7 +3,11 @@ import { Dictionary } from '@ton/ton';
3
3
  import { Buffer } from 'buffer';
4
4
 
5
5
  export const FEED_ID = {
6
- TON: '0x8963217838ab4cf5cadc172203c1f0b763fbaa45f346d8ee50ba994bbcac3026',
6
+ // GRAM (gram.usd) Pyth feed. Replaces the retired TON/USD feed
7
+ // (0x8963217838ab4cf5cadc172203c1f0b763fbaa45f346d8ee50ba994bbcac3026).
8
+ GRAM: '0xe41cd8a90528974c7b97b506abb694e2cc5750b119f796a7001890c1a93a572d',
9
+ /** @deprecated TON/USD feed retired; the native asset is now priced via gram.usd. Use GRAM. */
10
+ TON: '0xe41cd8a90528974c7b97b506abb694e2cc5750b119f796a7001890c1a93a572d',
7
11
  USDT: '0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
8
12
  stTON: '0x9145e059026a4d5a46f3b96408f7e572e33b3257b9c2dbe8dba551c772762002',
9
13
  tsTON: '0x3d1784128eeab5961ec60648fe497d3901eebd211b7f51e4bb0db9f024977d25',
@@ -4,6 +4,11 @@ export const ASSET_ID = {
4
4
  EVAA: sha256Hash('EVAA'),
5
5
 
6
6
  // Main
7
+ // GRAM (formerly TON). The token id is sha256('TON') for historical reasons:
8
+ // the native asset was registered on-chain as 'TON' before the GRAM rebrand,
9
+ // so the id must stay sha256('TON') to keep matching existing on-chain state.
10
+ GRAM: sha256Hash('TON'),
11
+ /** @deprecated renamed to GRAM; kept for backward compatibility. Same id (sha256('TON')). */
7
12
  TON: sha256Hash('TON'),
8
13
  USDT: sha256Hash('USDT'),
9
14
  jUSDT: sha256Hash('jUSDT'),
@@ -10,13 +10,17 @@ export const UNDEFINED_ASSET: PoolAssetConfig = {
10
10
  jettonWalletCode: Cell.EMPTY,
11
11
  };
12
12
 
13
- export const TON_MAINNET: PoolAssetConfig = {
14
- name: 'TON',
15
- assetId: ASSET_ID.TON,
13
+ export const GRAM_MAINNET: PoolAssetConfig = {
14
+ name: 'GRAM',
15
+ // historical id: sha256('TON') — the native asset was registered as 'TON' before the GRAM rebrand
16
+ assetId: ASSET_ID.GRAM,
16
17
  jettonMasterAddress: NULL_ADDRESS, // fake
17
18
  jettonWalletCode: Cell.EMPTY,
18
19
  };
19
20
 
21
+ /** @deprecated renamed to GRAM_MAINNET; kept for backward compatibility. */
22
+ export const TON_MAINNET = GRAM_MAINNET;
23
+
20
24
  export const JUSDT_MAINNET: PoolAssetConfig = {
21
25
  name: 'jUSDT',
22
26
  assetId: ASSET_ID.jUSDT,
@@ -3,13 +3,17 @@ import { PoolAssetConfig } from '../../types/Master';
3
3
  import { ASSET_ID } from '../assets';
4
4
  import { JETTON_WALLET_STANDART_CODE_TESTNET, NULL_ADDRESS } from '../general';
5
5
 
6
- export const TON_TESTNET: PoolAssetConfig = {
7
- name: 'TON',
8
- assetId: ASSET_ID.TON,
6
+ export const GRAM_TESTNET: PoolAssetConfig = {
7
+ name: 'GRAM',
8
+ // historical id: sha256('TON') — the native asset was registered as 'TON' before the GRAM rebrand
9
+ assetId: ASSET_ID.GRAM,
9
10
  jettonMasterAddress: NULL_ADDRESS, // fake
10
11
  jettonWalletCode: Cell.EMPTY,
11
12
  };
12
13
 
14
+ /** @deprecated renamed to GRAM_TESTNET; kept for backward compatibility. */
15
+ export const TON_TESTNET = GRAM_TESTNET;
16
+
13
17
  export const JUSDT_TESTNET: PoolAssetConfig = {
14
18
  name: 'jUSDT',
15
19
  assetId: ASSET_ID.jUSDT,
@@ -15,7 +15,7 @@ import {
15
15
  PT_tsUSDe_01Sep2025_MAINNET,
16
16
  PT_tsUSDe_18Dec2025_MAINNET,
17
17
  STTON_MAINNET,
18
- TON_MAINNET,
18
+ GRAM_MAINNET,
19
19
  TON_STORM_MAINNET,
20
20
  TONUSDT_DEDUST_MAINNET,
21
21
  TONUSDT_STONFI_MAINNET,
@@ -57,7 +57,7 @@ import {
57
57
 
58
58
  // Pool assets configs
59
59
  export const MAINNET_POOL_ASSETS_CONFIG = [
60
- TON_MAINNET,
60
+ GRAM_MAINNET,
61
61
  JUSDT_MAINNET,
62
62
  JUSDC_MAINNET,
63
63
  STTON_MAINNET,
@@ -76,7 +76,7 @@ export const MAINNET_STABLE_POOL_ASSETS_CONFIG = [
76
76
  ];
77
77
 
78
78
  export const MAINNET_LP_POOL_ASSETS_CONFIG = [
79
- TON_MAINNET,
79
+ GRAM_MAINNET,
80
80
  USDT_MAINNET,
81
81
  TONUSDT_DEDUST_MAINNET,
82
82
  TON_STORM_MAINNET,
@@ -84,7 +84,7 @@ export const MAINNET_LP_POOL_ASSETS_CONFIG = [
84
84
  TONUSDT_STONFI_MAINNET,
85
85
  ];
86
86
 
87
- export const MAINNET_ALTS_POOL_ASSETS_CONFIG = [TON_MAINNET, USDT_MAINNET, CATI_MAINNET, NOT_MAINNET, DOGS_MAINNET];
87
+ export const MAINNET_ALTS_POOL_ASSETS_CONFIG = [GRAM_MAINNET, USDT_MAINNET, CATI_MAINNET, NOT_MAINNET, DOGS_MAINNET];
88
88
 
89
89
  export const MAINNET_POOL_CONFIG: PoolConfig = {
90
90
  masterAddress: EVAA_MASTER_MAINNET,
@@ -95,10 +95,10 @@ export const MAINNET_POOL_CONFIG: PoolConfig = {
95
95
  poolAssetsConfig: MAINNET_POOL_ASSETS_CONFIG,
96
96
  pythOracle: {
97
97
  feedsMap: new Map<HexString, FeedMapItem>([
98
- [FEED_ID.TON, { assetId: ASSET_ID.TON, feedId: "0x0" }],
98
+ [FEED_ID.GRAM, { assetId: ASSET_ID.GRAM, feedId: "0x0" }],
99
99
  [FEED_ID.USDT, { assetId: ASSET_ID.USDT, feedId: "0x0" }],
100
- [FEED_ID.tsTON, { assetId: ASSET_ID.tsTON, feedId: FEED_ID.TON }],
101
- [FEED_ID.stTON, { assetId: ASSET_ID.stTON, feedId: FEED_ID.TON }],
100
+ [FEED_ID.tsTON, { assetId: ASSET_ID.tsTON, feedId: FEED_ID.GRAM }],
101
+ [FEED_ID.stTON, { assetId: ASSET_ID.stTON, feedId: FEED_ID.GRAM }],
102
102
  [FEED_ID.USDe, { assetId: ASSET_ID.USDe, feedId: "0x0" }],
103
103
  [FEED_ID.tsUSDe, { assetId: ASSET_ID.tsUSDe, feedId: FEED_ID.USDe }],
104
104
  ]),
@@ -109,7 +109,10 @@ export const MAINNET_POOL_CONFIG: PoolConfig = {
109
109
  },
110
110
  }),
111
111
  poolAssetsConfig: MAINNET_POOL_ASSETS_CONFIG,
112
- poolAssetsHEConfig: [],
112
+ poolAssetsHEConfig: [
113
+ { title: 'ton', assets: [GRAM_MAINNET, TSTON_MAINNET], heCategory: 1 },
114
+ { title: 'stable', assets: [USDT_MAINNET, USDE_MAINNET, TSUSDE_MAINNET], heCategory: 2 },
115
+ ],
113
116
  lendingCode: LENDING_CODE,
114
117
  };
115
118
 
@@ -137,7 +140,10 @@ export const MAINNET_LP_POOL_CONFIG: PoolConfig = {
137
140
  evaaOracles: ORACLES_LP,
138
141
  }),
139
142
  poolAssetsConfig: MAINNET_LP_POOL_ASSETS_CONFIG,
140
- poolAssetsHEConfig: [],
143
+ poolAssetsHEConfig: [
144
+ { title: 'ton', assets: [GRAM_MAINNET, TON_STORM_MAINNET], heCategory: 1 },
145
+ { title: 'stable', assets: [USDT_MAINNET, USDT_STORM_MAINNET], heCategory: 2 },
146
+ ],
141
147
  lendingCode: LENDING_CODE,
142
148
  };
143
149
 
@@ -152,7 +158,7 @@ export const MAINNET_LP_POOL_COPY_CONFIG: PoolConfig = {
152
158
  }),
153
159
  poolAssetsConfig: MAINNET_LP_POOL_ASSETS_CONFIG,
154
160
  poolAssetsHEConfig: [
155
- { title: 'ton', assets: [TON_MAINNET, TON_STORM_MAINNET], heCategory: 1 },
161
+ { title: 'ton', assets: [GRAM_MAINNET, TON_STORM_MAINNET], heCategory: 1 },
156
162
  { title: 'stable', assets: [USDT_MAINNET, USDT_STORM_MAINNET], heCategory: 2 },
157
163
  ],
158
164
  lendingCode: LENDING_CODE,
@@ -172,7 +178,7 @@ export const MAINNET_ALTS_POOL_CONFIG: PoolConfig = {
172
178
  lendingCode: LENDING_CODE,
173
179
  };
174
180
 
175
- export const MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG = [TON_MAINNET, USDT_MAINNET, JUSDT_MAINNET];
181
+ export const MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG = [GRAM_MAINNET, USDT_MAINNET, JUSDT_MAINNET];
176
182
 
177
183
  export const MAINNET_PYTH_V8_TOB_POOL_CONFIG: PoolConfig = {
178
184
  masterAddress: EVAA_PYTH_TOB_MAINNET,
@@ -183,7 +189,7 @@ export const MAINNET_PYTH_V8_TOB_POOL_CONFIG: PoolConfig = {
183
189
  poolAssetsConfig: MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
184
190
  pythOracle: {
185
191
  feedsMap: new Map<HexString, FeedMapItem>([
186
- [FEED_ID.TON, { assetId: ASSET_ID.TON, feedId: '0x0' }],
192
+ [FEED_ID.GRAM, { assetId: ASSET_ID.GRAM, feedId: '0x0' }],
187
193
  [FEED_ID.USDT, { assetId: ASSET_ID.USDT, feedId: '0x0' }],
188
194
  ]),
189
195
  pythAddress: PYTH_ORACLE_MAINNET,
@@ -195,7 +201,7 @@ export const MAINNET_PYTH_V8_TOB_POOL_CONFIG: PoolConfig = {
195
201
  lendingCode: LENDING_CODE,
196
202
  };
197
203
 
198
- export const MAINNET_V8_TOB_POOL_ASSETS_CONFIG = [TON_MAINNET, USDT_MAINNET];
204
+ export const MAINNET_V8_TOB_POOL_ASSETS_CONFIG = [GRAM_MAINNET, USDT_MAINNET];
199
205
 
200
206
  export const MAINNET_V8_TOB_POOL_CONFIG: PoolConfig = {
201
207
  masterAddress: EVAA_TOB_MAINNET,
@@ -216,7 +222,7 @@ export const MAINNET_MASTER_TON_REWARD_CONFIG: EvaaRewardsConfig = {
216
222
  evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
217
223
  rewardMasterCode: EVAA_REWARDS_MASTER_CODE_MAINNET,
218
224
  rewardUserCode: EVAA_REWARDS_USER_CODE_MAINNET,
219
- asset: TON_MAINNET,
225
+ asset: GRAM_MAINNET,
220
226
  availableReward: 0,
221
227
  publicKey: Buffer.from('bfe9a30221db4dff4c17e55d985e0b13a8f597bbb28002f311dc4429dad1ca95', 'hex'), // adminAddress publicKey
222
228
  };
@@ -247,14 +253,14 @@ export const MAINNET_CLASSIC_HE_POOL_CONFIG: PoolConfig = {
247
253
  masterConstants: MASTER_CONSTANTS,
248
254
  collector: new FakeCollector(
249
255
  Dictionary.empty<bigint, bigint>()
250
- .set(ASSET_ID.TON, 1_300_000_000n)
256
+ .set(ASSET_ID.GRAM, 1_300_000_000n)
251
257
  .set(ASSET_ID.tsTON, 1_500_000_000n)
252
258
  .set(ASSET_ID.TUSDT, 1_000_000_000n)
253
259
  .set(ASSET_ID.TUSDe, 1_000_000_000n),
254
260
  ),
255
- poolAssetsConfig: [TON_MAINNET, TSTON_MAINNET, TUSDE_MAINNET, TUSDT_MAINNET],
261
+ poolAssetsConfig: [GRAM_MAINNET, TSTON_MAINNET, TUSDE_MAINNET, TUSDT_MAINNET],
256
262
  poolAssetsHEConfig: [
257
- { title: 'ton', assets: [TON_MAINNET, TSTON_MAINNET], heCategory: 1 },
263
+ { title: 'ton', assets: [GRAM_MAINNET, TSTON_MAINNET], heCategory: 1 },
258
264
  { title: 'stable', assets: [TUSDT_MAINNET, TUSDE_MAINNET], heCategory: 2 },
259
265
  ],
260
266
  lendingCode: LENDING_CODE,
@@ -8,8 +8,8 @@ import {
8
8
  ASSET_ID,
9
9
  EUSDT_TESTNET,
10
10
  JUSDC_TESTNET,
11
- TON_MAINNET,
12
- TON_TESTNET,
11
+ GRAM_MAINNET,
12
+ GRAM_TESTNET,
13
13
  TSTON_MAINNET,
14
14
  USDE_MAINNET,
15
15
  USDT_MAINNET,
@@ -28,9 +28,9 @@ import {
28
28
  TESTNET_PYTH_VERSION_TOB_AUDITED,
29
29
  } from '../general';
30
30
 
31
- export const TESTNET_POOL_ASSETS_CONFIG = [TON_TESTNET, JUSDC_TESTNET];
31
+ export const TESTNET_POOL_ASSETS_CONFIG = [GRAM_TESTNET, JUSDC_TESTNET];
32
32
 
33
- export const TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED = [TON_TESTNET, JUSDC_TESTNET];
33
+ export const TESTNET_POOL_ASSETS_CONFIG_TOB_AUDITED = [GRAM_TESTNET, JUSDC_TESTNET];
34
34
 
35
35
  export const TESTNET_PYTH_POOL_CONFIG_TOB_AUDITED: PoolConfig = {
36
36
  masterAddress: EVAA_MASTER_TESTNET_PYTH_TOB_AUDITED,
@@ -41,9 +41,9 @@ export const TESTNET_PYTH_POOL_CONFIG_TOB_AUDITED: PoolConfig = {
41
41
  pythOracle: {
42
42
  feedsMap: new Map<HexString, FeedMapItem>([
43
43
  [
44
- FEED_ID.TON,
44
+ FEED_ID.GRAM,
45
45
  {
46
- assetId: ASSET_ID.TON,
46
+ assetId: ASSET_ID.GRAM,
47
47
  feedId: '0x0',
48
48
  },
49
49
  ],
@@ -77,12 +77,12 @@ export const TESTNET_CLASSIC_HE_POOL_CONFIG: PoolConfig = {
77
77
  masterVersion: 0,
78
78
  masterConstants: MASTER_CONSTANTS,
79
79
  collector: new ClassicCollector({
80
- poolAssetsConfig: [TON_MAINNET, TSTON_MAINNET, USDT_MAINNET, USDE_MAINNET],
80
+ poolAssetsConfig: [GRAM_MAINNET, TSTON_MAINNET, USDT_MAINNET, USDE_MAINNET],
81
81
  minimalOracles: 1,
82
82
  evaaOracles: ORACLES_TESTNET,
83
83
  }),
84
84
  lendingCode: LENDING_CODE,
85
- poolAssetsConfig: [TON_MAINNET, TSTON_MAINNET, USDT_MAINNET, USDE_MAINNET],
85
+ poolAssetsConfig: [GRAM_MAINNET, TSTON_MAINNET, USDT_MAINNET, USDE_MAINNET],
86
86
  poolAssetsHEConfig: [],
87
87
  };
88
88
 
@@ -91,7 +91,7 @@ export const TESTNET_MASTER_REWARD_CONFIG: EvaaRewardsConfig = {
91
91
  evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
92
92
  rewardMasterCode: EVAA_REWARDS_MASTER_CODE_TESTNET,
93
93
  rewardUserCode: EVAA_REWARDS_USER_CODE_TESTNET,
94
- asset: TON_TESTNET,
94
+ asset: GRAM_TESTNET,
95
95
  availableReward: 0,
96
96
  publicKey: Buffer.from('c38be45e033419b49cd22c97fbd23610fbc851a931208f8b4a1817dd11cb63ac', 'hex'), // adminAddress publicKey
97
97
  };
@@ -11,7 +11,7 @@ import {
11
11
  SendMode,
12
12
  storeStateInit,
13
13
  } from '@ton/core';
14
- import { isTonAsset, isValidSubaccountId } from '..';
14
+ import { isGramAsset, isValidSubaccountId } from '..';
15
15
  import { parseMasterData } from '../api/parser';
16
16
  import { OracleParser } from '../api/parsers/AbstractOracleParser';
17
17
  import { ClassicOracleInfo } from '../api/parsers/ClassicOracleParser';
@@ -325,7 +325,7 @@ export abstract class AbstractEvaaMaster<T extends MasterData<MasterConfig<Oracl
325
325
  protected buildSupplyWithdrawOperationPayload(
326
326
  parameters: PythSupplyWithdrawParameters | ClassicSupplyWithdrawParameters,
327
327
  ): Cell {
328
- const isTon = isTonAsset(parameters.supplyAsset);
328
+ const isTon = isGramAsset(parameters.supplyAsset);
329
329
 
330
330
  const supplyData = beginCell();
331
331
  if (isTon) {
@@ -365,7 +365,7 @@ export abstract class AbstractEvaaMaster<T extends MasterData<MasterConfig<Oracl
365
365
  AbstractEvaaMaster.validateSupplyParameters(parameters);
366
366
 
367
367
  const subaccountId = parameters.subaccountId ?? 0;
368
- const isTon = isTonAsset(parameters.asset);
368
+ const isTon = isGramAsset(parameters.asset);
369
369
 
370
370
  const operationPayload = beginCell()
371
371
  .storeUint(OPCODES.SUPPLY_MASTER, 32)
@@ -454,7 +454,7 @@ export abstract class AbstractEvaaMaster<T extends MasterData<MasterConfig<Oracl
454
454
  .storeUint(parameters.collateralAsset, 256)
455
455
  .storeUint(parameters.minCollateralAmount, 64)
456
456
  .storeInt(parameters.includeUserCode ? -1 : 0, 2)
457
- .storeUint(isTonAsset(parameters.asset) ? parameters.liquidationAmount : 0, 64);
457
+ .storeUint(isGramAsset(parameters.asset) ? parameters.liquidationAmount : 0, 64);
458
458
  }
459
459
 
460
460
  abstract sendLiquidation(
@@ -540,7 +540,7 @@ export abstract class AbstractEvaaMaster<T extends MasterData<MasterConfig<Oracl
540
540
  }
541
541
 
542
542
  async sendTx(provider: ContractProvider, via: Sender, value: bigint, message: Cell, asset: PoolAssetConfig) {
543
- if (!isTonAsset(asset)) {
543
+ if (!isGramAsset(asset)) {
544
544
  if (!via.address) throw new Error('Via address is required for jetton supply');
545
545
  const jettonWallet = provider.open(JettonWallet.createFromAddress(getUserJettonWallet(via.address, asset)));
546
546
  await jettonWallet.sendTransfer(via, value, message);
@@ -1,5 +1,5 @@
1
1
  import { beginCell, Builder, Cell, ContractProvider, Sender } from '@ton/core';
2
- import { isTonAsset, LiquidationParameters, TON_MAINNET } from '..';
2
+ import { isGramAsset, LiquidationParameters, GRAM_MAINNET } from '..';
3
3
  import { ClassicOracleInfo, ClassicOracleParser } from '../api/parsers/ClassicOracleParser';
4
4
  import { FEES, OPCODES } from '../constants/general';
5
5
  import {
@@ -58,7 +58,7 @@ export class EvaaMasterClassic extends AbstractEvaaMaster<ClassicMasterData> {
58
58
  }
59
59
 
60
60
  createSupplyWithdrawMessage(parameters: ClassicSupplyWithdrawParameters): Cell {
61
- const isTon = isTonAsset(parameters.supplyAsset);
61
+ const isTon = isGramAsset(parameters.supplyAsset);
62
62
 
63
63
  const operationPayload = this.buildSupplyWithdrawOperationPayload(parameters);
64
64
 
@@ -89,7 +89,7 @@ export class EvaaMasterClassic extends AbstractEvaaMaster<ClassicMasterData> {
89
89
  ): Promise<void> {
90
90
  // Compatibility layer using supply-withdraw with TON zero supply
91
91
  await this.sendSupplyWithdraw(provider, via, value, {
92
- supplyAsset: TON_MAINNET,
92
+ supplyAsset: GRAM_MAINNET,
93
93
  supplyAmount: 0n,
94
94
  queryID: parameters.queryID,
95
95
  withdrawAsset: parameters.asset,
@@ -114,7 +114,7 @@ export class EvaaMasterClassic extends AbstractEvaaMaster<ClassicMasterData> {
114
114
  }
115
115
 
116
116
  createLiquidationMessage(parameters: ClassicLiquidationParameters): Cell {
117
- const isTon = isTonAsset(parameters.asset);
117
+ const isTon = isGramAsset(parameters.asset);
118
118
  const operationPayload = this.buildLiquidationOperationPayload(parameters);
119
119
 
120
120
  if (!isTon) {
@@ -2,10 +2,10 @@ import { HexString } from '@pythnetwork/hermes-client';
2
2
  import { Address, beginCell, Cell, ContractProvider, Dictionary, Sender, SendMode } from '@ton/core';
3
3
  import { PythOracleInfo, PythOracleParser } from '../api/parsers/PythOracleParser';
4
4
  import { composeFeedsCell, packPythUpdatesData } from '../api/prices';
5
- import { TON_MAINNET } from '../constants';
5
+ import { GRAM_MAINNET } from '../constants';
6
6
  import { FEES, OPCODES } from '../constants/general';
7
7
  import { PoolAssetConfig } from '../types/Master';
8
- import { isTonAsset } from '../utils/utils';
8
+ import { isGramAsset } from '../utils/utils';
9
9
  import {
10
10
  AbstractEvaaMaster,
11
11
  BaseMasterConfig,
@@ -183,7 +183,7 @@ export class EvaaMasterPyth extends AbstractEvaaMaster<PythMasterData> {
183
183
  .storeSlice(operationPayload.beginParse())
184
184
  .endCell();
185
185
 
186
- if (!isTonAsset(parameters.supplyAsset)) {
186
+ if (!isGramAsset(parameters.supplyAsset)) {
187
187
  return this.createJettonTransferMessage(parameters, FEES.SUPPLY_WITHDRAW + FEES.JETTON_FWD, messageBody);
188
188
  } else {
189
189
  return beginCell()
@@ -202,7 +202,7 @@ export class EvaaMasterPyth extends AbstractEvaaMaster<PythMasterData> {
202
202
  return this.createSupplyWithdrawMessageNoPrices(parameters, operationPayload);
203
203
  }
204
204
 
205
- if (!isTonAsset(parameters.supplyAsset)) {
205
+ if (!isGramAsset(parameters.supplyAsset)) {
206
206
  return this.createJettonPythMessage(
207
207
  parameters, // as JettonParams & { queryID: number | bigint },
208
208
  operationPayload,
@@ -251,7 +251,7 @@ export class EvaaMasterPyth extends AbstractEvaaMaster<PythMasterData> {
251
251
  parameters: PythWithdrawParameters,
252
252
  ): Promise<void> {
253
253
  const message = this.createSupplyWithdrawMessage({
254
- supplyAsset: TON_MAINNET,
254
+ supplyAsset: GRAM_MAINNET,
255
255
  supplyAmount: 0n,
256
256
  queryID: parameters.queryID,
257
257
  withdrawAsset: parameters.asset,
@@ -286,7 +286,7 @@ export class EvaaMasterPyth extends AbstractEvaaMaster<PythMasterData> {
286
286
  createLiquidationMessage(parameters: PythLiquidationParameters): Cell {
287
287
  const operationPayload = this.buildLiquidationOperationPayload(parameters);
288
288
 
289
- if (!isTonAsset(parameters.asset)) {
289
+ if (!isGramAsset(parameters.asset)) {
290
290
  return this.createJettonPythMessage(
291
291
  parameters,
292
292
  operationPayload,
@@ -57,7 +57,7 @@ function getUserJettonData(ownerAddress: Address, assetName: string, jettonWalle
57
57
  }
58
58
  export function getUserJettonWallet(ownerAddress: Address, poolAssetConfig: PoolAssetConfig) {
59
59
  const assetName = poolAssetConfig.name;
60
- if (assetName == 'TON' || poolAssetConfig.assetId === UNDEFINED_ASSET.assetId) {
60
+ if (assetName == 'GRAM' || poolAssetConfig.assetId === UNDEFINED_ASSET.assetId) {
61
61
  throw new Error(`Cant getUserJettonWallet for ${poolAssetConfig.name} asset`)
62
62
  }
63
63
  let jettonWalletCode = poolAssetConfig.jettonWalletCode;
@@ -1,14 +1,19 @@
1
1
  import { ASSET_ID } from '../constants/assets';
2
2
  import { PoolAssetConfig } from '../types/Master';
3
3
 
4
- export function isTonAsset(asset: PoolAssetConfig) {
5
- return asset.name === 'TON';
4
+ export function isGramAsset(asset: PoolAssetConfig) {
5
+ return asset.name === 'GRAM';
6
6
  }
7
7
 
8
- export function isTonAssetId(assetId: bigint) {
9
- return assetId === ASSET_ID.TON;
8
+ export function isGramAssetId(assetId: bigint) {
9
+ return assetId === ASSET_ID.GRAM;
10
10
  }
11
11
 
12
+ /** @deprecated renamed to isGramAsset; kept for backward compatibility. */
13
+ export const isTonAsset = isGramAsset;
14
+ /** @deprecated renamed to isGramAssetId; kept for backward compatibility. */
15
+ export const isTonAssetId = isGramAssetId;
16
+
12
17
  export function delay(ms: number) {
13
18
  return new Promise((resolve) => setTimeout(resolve, ms));
14
19
  }