@vultisig/core-chain 2.16.0 → 2.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/chains/ton/api.d.ts.map +1 -1
- package/dist/chains/ton/api.js +18 -14
- package/dist/chains/ton/api.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @vultisig/core-chain
|
|
2
2
|
|
|
3
|
+
## 2.16.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#702](https://github.com/vultisig/vultisig-sdk/pull/702) [`cb2e8f0`](https://github.com/vultisig/vultisig-sdk/commit/cb2e8f00861daff26ac8b04a34e22be9b243235c) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - Fix TON jetton balances showing a stranger's holdings. Jetton wallet lookups
|
|
8
|
+
queried the proxy with `owner_id` + `jetton_master_id`, which toncenter v3
|
|
9
|
+
ignores (it filters on `owner_address` + `jetton_address`). The proxy then
|
|
10
|
+
returned an unfiltered global list and the code took the first entry — a random
|
|
11
|
+
wallet — so an address with no USDT reported ~200M USDT. Restore the correct
|
|
12
|
+
params and filter the response by both owner and jetton master instead of
|
|
13
|
+
trusting the first entry. This also keeps jetton transfers from resolving the
|
|
14
|
+
wrong source wallet.
|
|
15
|
+
|
|
3
16
|
## 2.16.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/api.ts"],"names":[],"mappings":"AAwBA,KAAK,oBAAoB,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAiCD,4FAA4F;AAC5F,eAAO,MAAM,sBAAsB,GAAU,OAAO,oBAAoB,KAAG,OAAO,CAAC,MAAM,CAOxF,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,GAAU,OAAO,oBAAoB,KAAG,OAAO,CAAC,MAAM,CAIlF,CAAA;AAOD,eAAO,MAAM,iBAAiB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAKvE,CAAA;AA4CD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,qBAAqB,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAsC/F,CAAA"}
|
package/dist/chains/ton/api.js
CHANGED
|
@@ -2,32 +2,36 @@ import { rootApiUrl } from '@vultisig/core-config';
|
|
|
2
2
|
import { queryUrl } from '@vultisig/lib-utils/query/queryUrl';
|
|
3
3
|
import { tonAddressToRaw } from './address.js';
|
|
4
4
|
const tonApiUrl = `${rootApiUrl}/ton`;
|
|
5
|
+
const matchesRawAddress = (value, expected) => value.toLowerCase() === expected.toLowerCase();
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* Queries the Vultisig proxy (pass-through to toncenter v3) for the jetton wallet
|
|
8
|
+
* matching a given owner + jetton master.
|
|
9
|
+
*
|
|
10
|
+
* toncenter filters on `owner_address` + `jetton_address`. We additionally filter
|
|
11
|
+
* the response client-side: if the proxy ever ignores those params it returns an
|
|
12
|
+
* unfiltered global list, and blindly taking the first entry would surface a
|
|
13
|
+
* stranger's balance (e.g. a whale's 200M USDT instead of the user's 0).
|
|
10
14
|
*/
|
|
11
|
-
const
|
|
15
|
+
const queryOwnerJettonWallet = async ({ ownerAddress, jettonMasterAddress, }) => {
|
|
12
16
|
const rawOwner = tonAddressToRaw(ownerAddress);
|
|
13
17
|
const rawMaster = tonAddressToRaw(jettonMasterAddress);
|
|
14
|
-
|
|
18
|
+
const url = `${tonApiUrl}/v3/jetton/wallets?owner_address=${rawOwner}&jetton_address=${rawMaster}`;
|
|
19
|
+
const response = await queryUrl(url);
|
|
20
|
+
const wallet = response.jetton_wallets.find(({ owner, jetton }) => matchesRawAddress(owner, rawOwner) && matchesRawAddress(jetton, rawMaster));
|
|
21
|
+
return { wallet, addressBook: response.address_book };
|
|
15
22
|
};
|
|
16
23
|
/** Resolves the user-friendly jetton wallet address for a given owner and jetton master. */
|
|
17
24
|
export const getJettonWalletAddress = async (input) => {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
if (!jettonAddress) {
|
|
25
|
+
const { wallet, addressBook } = await queryOwnerJettonWallet(input);
|
|
26
|
+
if (!wallet) {
|
|
21
27
|
throw new Error('No jetton wallet found');
|
|
22
28
|
}
|
|
23
|
-
|
|
24
|
-
return addressEntry?.user_friendly || jettonAddress;
|
|
29
|
+
return addressBook[wallet.address]?.user_friendly || wallet.address;
|
|
25
30
|
};
|
|
26
31
|
/** Fetches the balance of a specific jetton for a given owner address. */
|
|
27
32
|
export const getJettonBalance = async (input) => {
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
return BigInt(balance || '0');
|
|
33
|
+
const { wallet } = await queryOwnerJettonWallet(input);
|
|
34
|
+
return BigInt(wallet?.balance || '0');
|
|
31
35
|
};
|
|
32
36
|
export const getTonWalletState = async (address) => {
|
|
33
37
|
const url = `${tonApiUrl}/v3/addressInformation?address=${address}&use_v2=false`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,SAAS,GAAG,GAAG,UAAU,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/ton/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,SAAS,GAAG,GAAG,UAAU,MAAM,CAAA;AAwBrC,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAW,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAA;AAEtH;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAG,KAAK,EAAE,EACpC,YAAY,EACZ,mBAAmB,GACE,EAGpB,EAAE;IACH,MAAM,QAAQ,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAA;IAEtD,MAAM,GAAG,GAAG,GAAG,SAAS,oCAAoC,QAAQ,mBAAmB,SAAS,EAAE,CAAA;IAClG,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAuB,GAAG,CAAC,CAAA;IAE1D,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CACzC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAClG,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAA;AACvD,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,KAA2B,EAAmB,EAAE;IAC3F,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACnE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,IAAI,MAAM,CAAC,OAAO,CAAA;AACrE,CAAC,CAAA;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAA2B,EAAmB,EAAE;IACrF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAEtD,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IAC1E,MAAM,GAAG,GAAG,GAAG,SAAS,kCAAkC,OAAO,eAAe,CAAA;IAChF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAA6B,GAAG,CAAC,CAAA;IAEhE,OAAO,QAAQ,CAAC,MAAM,CAAA;AACxB,CAAC,CAAA;AAkDD;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,mBAA2B,EAA6B,EAAE;IAClG,MAAM,GAAG,GAAG,GAAG,SAAS,8BAA8B,kBAAkB,CAAC,mBAAmB,CAAC,UAAU,CAAA;IACvG,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAwB,GAAG,CAAC,CAAA;IAE3D,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,mBAAmB,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,KAAyB,EAAsB,EAAE;QACjE,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAA;QAC7B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACtC,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;IACpG,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAA;IAErC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,mBAAmB,gBAAgB,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,IAAI,OAAO,EAAE,QAAQ,CAAA;IACjE,MAAM,cAAc,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IAErE,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,IAAI,GACR,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC;QACvC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC;QACtC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAE1B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;AACnC,CAAC,CAAA"}
|