@evaafi/sdk 0.9.7 → 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
  ]),
@@ -57,7 +57,7 @@ exports.MAINNET_POOL_CONFIG = {
57
57
  }),
58
58
  poolAssetsConfig: exports.MAINNET_POOL_ASSETS_CONFIG,
59
59
  poolAssetsHEConfig: [
60
- { title: 'ton', assets: [assets_1.TON_MAINNET, assets_1.TSTON_MAINNET], heCategory: 1 },
60
+ { title: 'ton', assets: [assets_1.GRAM_MAINNET, assets_1.TSTON_MAINNET], heCategory: 1 },
61
61
  { title: 'stable', assets: [assets_1.USDT_MAINNET, assets_1.USDE_MAINNET, assets_1.TSUSDE_MAINNET], heCategory: 2 },
62
62
  ],
63
63
  lendingCode: general_1.LENDING_CODE,
@@ -86,7 +86,7 @@ exports.MAINNET_LP_POOL_CONFIG = {
86
86
  }),
87
87
  poolAssetsConfig: exports.MAINNET_LP_POOL_ASSETS_CONFIG,
88
88
  poolAssetsHEConfig: [
89
- { title: 'ton', assets: [assets_1.TON_MAINNET, assets_1.TON_STORM_MAINNET], heCategory: 1 },
89
+ { title: 'ton', assets: [assets_1.GRAM_MAINNET, assets_1.TON_STORM_MAINNET], heCategory: 1 },
90
90
  { title: 'stable', assets: [assets_1.USDT_MAINNET, assets_1.USDT_STORM_MAINNET], heCategory: 2 },
91
91
  ],
92
92
  lendingCode: general_1.LENDING_CODE,
@@ -102,7 +102,7 @@ exports.MAINNET_LP_POOL_COPY_CONFIG = {
102
102
  }),
103
103
  poolAssetsConfig: exports.MAINNET_LP_POOL_ASSETS_CONFIG,
104
104
  poolAssetsHEConfig: [
105
- { 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 },
106
106
  { title: 'stable', assets: [assets_1.USDT_MAINNET, assets_1.USDT_STORM_MAINNET], heCategory: 2 },
107
107
  ],
108
108
  lendingCode: general_1.LENDING_CODE,
@@ -120,7 +120,7 @@ exports.MAINNET_ALTS_POOL_CONFIG = {
120
120
  poolAssetsHEConfig: [],
121
121
  lendingCode: general_1.LENDING_CODE,
122
122
  };
123
- 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];
124
124
  exports.MAINNET_PYTH_V8_TOB_POOL_CONFIG = {
125
125
  masterAddress: general_1.EVAA_PYTH_TOB_MAINNET,
126
126
  masterVersion: general_1.EVAA_PYTH_TOB_VERSION,
@@ -130,7 +130,7 @@ exports.MAINNET_PYTH_V8_TOB_POOL_CONFIG = {
130
130
  poolAssetsConfig: exports.MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
131
131
  pythOracle: {
132
132
  feedsMap: new Map([
133
- [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' }],
134
134
  [feeds_1.FEED_ID.USDT, { assetId: assets_1.ASSET_ID.USDT, feedId: '0x0' }],
135
135
  ]),
136
136
  pythAddress: general_1.PYTH_ORACLE_MAINNET,
@@ -141,7 +141,7 @@ exports.MAINNET_PYTH_V8_TOB_POOL_CONFIG = {
141
141
  poolAssetsHEConfig: [],
142
142
  lendingCode: general_1.LENDING_CODE,
143
143
  };
144
- 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];
145
145
  exports.MAINNET_V8_TOB_POOL_CONFIG = {
146
146
  masterAddress: general_1.EVAA_TOB_MAINNET,
147
147
  masterVersion: general_1.EVAA_TOB_VERSION,
@@ -160,7 +160,7 @@ exports.MAINNET_MASTER_TON_REWARD_CONFIG = {
160
160
  evaaMasterAddress: new core_1.Address(0, Buffer.alloc(32, 0)),
161
161
  rewardMasterCode: general_1.EVAA_REWARDS_MASTER_CODE_MAINNET,
162
162
  rewardUserCode: general_1.EVAA_REWARDS_USER_CODE_MAINNET,
163
- asset: assets_1.TON_MAINNET,
163
+ asset: assets_1.GRAM_MAINNET,
164
164
  availableReward: 0,
165
165
  publicKey: Buffer.from('bfe9a30221db4dff4c17e55d985e0b13a8f597bbb28002f311dc4429dad1ca95', 'hex'), // adminAddress publicKey
166
166
  };
@@ -187,13 +187,13 @@ exports.MAINNET_CLASSIC_HE_POOL_CONFIG = {
187
187
  masterVersion: 0,
188
188
  masterConstants: general_1.MASTER_CONSTANTS,
189
189
  collector: new oracles_1.FakeCollector(core_1.Dictionary.empty()
190
- .set(assets_1.ASSET_ID.TON, 1300000000n)
190
+ .set(assets_1.ASSET_ID.GRAM, 1300000000n)
191
191
  .set(assets_1.ASSET_ID.tsTON, 1500000000n)
192
192
  .set(assets_1.ASSET_ID.TUSDT, 1000000000n)
193
193
  .set(assets_1.ASSET_ID.TUSDe, 1000000000n)),
194
- 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],
195
195
  poolAssetsHEConfig: [
196
- { 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 },
197
197
  { title: 'stable', assets: [assets_1.TUSDT_MAINNET, assets_1.TUSDE_MAINNET], heCategory: 2 },
198
198
  ],
199
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.7",
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
  ]),
@@ -110,7 +110,7 @@ export const MAINNET_POOL_CONFIG: PoolConfig = {
110
110
  }),
111
111
  poolAssetsConfig: MAINNET_POOL_ASSETS_CONFIG,
112
112
  poolAssetsHEConfig: [
113
- { title: 'ton', assets: [TON_MAINNET, TSTON_MAINNET], heCategory: 1 },
113
+ { title: 'ton', assets: [GRAM_MAINNET, TSTON_MAINNET], heCategory: 1 },
114
114
  { title: 'stable', assets: [USDT_MAINNET, USDE_MAINNET, TSUSDE_MAINNET], heCategory: 2 },
115
115
  ],
116
116
  lendingCode: LENDING_CODE,
@@ -141,7 +141,7 @@ export const MAINNET_LP_POOL_CONFIG: PoolConfig = {
141
141
  }),
142
142
  poolAssetsConfig: MAINNET_LP_POOL_ASSETS_CONFIG,
143
143
  poolAssetsHEConfig: [
144
- { title: 'ton', assets: [TON_MAINNET, TON_STORM_MAINNET], heCategory: 1 },
144
+ { title: 'ton', assets: [GRAM_MAINNET, TON_STORM_MAINNET], heCategory: 1 },
145
145
  { title: 'stable', assets: [USDT_MAINNET, USDT_STORM_MAINNET], heCategory: 2 },
146
146
  ],
147
147
  lendingCode: LENDING_CODE,
@@ -158,7 +158,7 @@ export const MAINNET_LP_POOL_COPY_CONFIG: PoolConfig = {
158
158
  }),
159
159
  poolAssetsConfig: MAINNET_LP_POOL_ASSETS_CONFIG,
160
160
  poolAssetsHEConfig: [
161
- { title: 'ton', assets: [TON_MAINNET, TON_STORM_MAINNET], heCategory: 1 },
161
+ { title: 'ton', assets: [GRAM_MAINNET, TON_STORM_MAINNET], heCategory: 1 },
162
162
  { title: 'stable', assets: [USDT_MAINNET, USDT_STORM_MAINNET], heCategory: 2 },
163
163
  ],
164
164
  lendingCode: LENDING_CODE,
@@ -178,7 +178,7 @@ export const MAINNET_ALTS_POOL_CONFIG: PoolConfig = {
178
178
  lendingCode: LENDING_CODE,
179
179
  };
180
180
 
181
- 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];
182
182
 
183
183
  export const MAINNET_PYTH_V8_TOB_POOL_CONFIG: PoolConfig = {
184
184
  masterAddress: EVAA_PYTH_TOB_MAINNET,
@@ -189,7 +189,7 @@ export const MAINNET_PYTH_V8_TOB_POOL_CONFIG: PoolConfig = {
189
189
  poolAssetsConfig: MAINNET_PYTH_V8_TOB_POOL_ASSETS_CONFIG,
190
190
  pythOracle: {
191
191
  feedsMap: new Map<HexString, FeedMapItem>([
192
- [FEED_ID.TON, { assetId: ASSET_ID.TON, feedId: '0x0' }],
192
+ [FEED_ID.GRAM, { assetId: ASSET_ID.GRAM, feedId: '0x0' }],
193
193
  [FEED_ID.USDT, { assetId: ASSET_ID.USDT, feedId: '0x0' }],
194
194
  ]),
195
195
  pythAddress: PYTH_ORACLE_MAINNET,
@@ -201,7 +201,7 @@ export const MAINNET_PYTH_V8_TOB_POOL_CONFIG: PoolConfig = {
201
201
  lendingCode: LENDING_CODE,
202
202
  };
203
203
 
204
- 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];
205
205
 
206
206
  export const MAINNET_V8_TOB_POOL_CONFIG: PoolConfig = {
207
207
  masterAddress: EVAA_TOB_MAINNET,
@@ -222,7 +222,7 @@ export const MAINNET_MASTER_TON_REWARD_CONFIG: EvaaRewardsConfig = {
222
222
  evaaMasterAddress: new Address(0, Buffer.alloc(32, 0)),
223
223
  rewardMasterCode: EVAA_REWARDS_MASTER_CODE_MAINNET,
224
224
  rewardUserCode: EVAA_REWARDS_USER_CODE_MAINNET,
225
- asset: TON_MAINNET,
225
+ asset: GRAM_MAINNET,
226
226
  availableReward: 0,
227
227
  publicKey: Buffer.from('bfe9a30221db4dff4c17e55d985e0b13a8f597bbb28002f311dc4429dad1ca95', 'hex'), // adminAddress publicKey
228
228
  };
@@ -253,14 +253,14 @@ export const MAINNET_CLASSIC_HE_POOL_CONFIG: PoolConfig = {
253
253
  masterConstants: MASTER_CONSTANTS,
254
254
  collector: new FakeCollector(
255
255
  Dictionary.empty<bigint, bigint>()
256
- .set(ASSET_ID.TON, 1_300_000_000n)
256
+ .set(ASSET_ID.GRAM, 1_300_000_000n)
257
257
  .set(ASSET_ID.tsTON, 1_500_000_000n)
258
258
  .set(ASSET_ID.TUSDT, 1_000_000_000n)
259
259
  .set(ASSET_ID.TUSDe, 1_000_000_000n),
260
260
  ),
261
- poolAssetsConfig: [TON_MAINNET, TSTON_MAINNET, TUSDE_MAINNET, TUSDT_MAINNET],
261
+ poolAssetsConfig: [GRAM_MAINNET, TSTON_MAINNET, TUSDE_MAINNET, TUSDT_MAINNET],
262
262
  poolAssetsHEConfig: [
263
- { title: 'ton', assets: [TON_MAINNET, TSTON_MAINNET], heCategory: 1 },
263
+ { title: 'ton', assets: [GRAM_MAINNET, TSTON_MAINNET], heCategory: 1 },
264
264
  { title: 'stable', assets: [TUSDT_MAINNET, TUSDE_MAINNET], heCategory: 2 },
265
265
  ],
266
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
  }