@vultisig/core-mpc 1.8.20 → 1.9.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.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @vultisig/core-mpc
|
|
2
2
|
|
|
3
|
+
## 1.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#1042](https://github.com/vultisig/vultisig-sdk/pull/1042) [`ad6196b`](https://github.com/vultisig/vultisig-sdk/commit/ad6196b32ae879e7b0e0fda48e462fc7a05eb1de) Thanks [@Ehsan-saradar](https://github.com/Ehsan-saradar)! - feat(ripple): XRP trust-line (TrustSet) support for issued tokens
|
|
8
|
+
|
|
9
|
+
Add support for opening/modifying an XRPL trust line so a vault can hold issued
|
|
10
|
+
currencies (e.g. RLUSD). `getRippleSigningInputs` now emits a WalletCore
|
|
11
|
+
`OperationTrustSet` (LimitAmount = { currency, issuer, value }) when the keysign
|
|
12
|
+
coin is an issued currency, and falls through to the existing Payment path for
|
|
13
|
+
native XRP. New `chains/ripple/issuedCurrency` helpers encode the composite
|
|
14
|
+
`currency.issuer` token id, normalise human tickers to on-ledger currency codes,
|
|
15
|
+
format issued-currency values, and expose the 0.2 XRP owner-reserve delta
|
|
16
|
+
(`rippleOwnerReserveDrops`). `isValidTokenId` validates XRPL `currency.issuer`
|
|
17
|
+
ids.
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies [[`ad6196b`](https://github.com/vultisig/vultisig-sdk/commit/ad6196b32ae879e7b0e0fda48e462fc7a05eb1de)]:
|
|
22
|
+
- @vultisig/core-chain@2.24.0
|
|
23
|
+
|
|
3
24
|
## 1.8.20
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ripple.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ripple.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,QAAQ,CAyFlE,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Buffer } from 'buffer';
|
|
2
|
+
import { formatIssuedCurrencyValue, parseRippleTokenId, toXrplCurrencyCode, } from '@vultisig/core-chain/chains/ripple/issuedCurrency';
|
|
2
3
|
import { assertField } from '@vultisig/lib-utils/record/assertField';
|
|
3
4
|
import { TW } from '@trustwallet/wallet-core';
|
|
4
5
|
import Long from 'long';
|
|
@@ -8,6 +9,24 @@ export const getRippleSigningInputs = ({ keysignPayload }) => {
|
|
|
8
9
|
const { gas, sequence, lastLedgerSequence } = getBlockchainSpecificValue(keysignPayload.blockchainSpecific, 'rippleSpecific');
|
|
9
10
|
const coin = assertField(keysignPayload, 'coin');
|
|
10
11
|
const account = coin.address;
|
|
12
|
+
// An issued-currency coin (non-native, with a `currency.issuer` contract
|
|
13
|
+
// address) signals a TrustSet: open/modify the trust line whose limit is the
|
|
14
|
+
// keysign amount. Native XRP falls through to the Payment path below.
|
|
15
|
+
const getTrustSet = () => {
|
|
16
|
+
if (coin.isNativeToken || !coin.contractAddress) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
const { currency, issuer } = parseRippleTokenId(coin.contractAddress);
|
|
20
|
+
return {
|
|
21
|
+
opTrustSet: TW.Ripple.Proto.OperationTrustSet.create({
|
|
22
|
+
limitAmount: TW.Ripple.Proto.CurrencyAmount.create({
|
|
23
|
+
currency: toXrplCurrencyCode(currency),
|
|
24
|
+
issuer,
|
|
25
|
+
value: formatIssuedCurrencyValue(BigInt(keysignPayload.toAmount), coin.decimals),
|
|
26
|
+
}),
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
};
|
|
11
30
|
const getPayment = () => {
|
|
12
31
|
if (keysignPayload.memo) {
|
|
13
32
|
const destinationTag = parseInt(keysignPayload.memo, 10);
|
|
@@ -57,7 +76,7 @@ export const getRippleSigningInputs = ({ keysignPayload }) => {
|
|
|
57
76
|
sequence: Number(sequence),
|
|
58
77
|
lastLedgerSequence: Number(lastLedgerSequence),
|
|
59
78
|
publicKey: getKeysignTwPublicKey(keysignPayload),
|
|
60
|
-
...getPayment(),
|
|
79
|
+
...(getTrustSet() ?? getPayment()),
|
|
61
80
|
});
|
|
62
81
|
return [input];
|
|
63
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ripple.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ripple.js","sourceRoot":"","sources":["../../../../../../../packages/core/mpc/keysign/signingInputs/resolvers/ripple.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-mpc",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "MPC, keysign, and vault types shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -1044,7 +1044,7 @@
|
|
|
1044
1044
|
"@noble/hashes": "^1.8.0",
|
|
1045
1045
|
"@solana/web3.js": "^1.98.4",
|
|
1046
1046
|
"@trustwallet/wallet-core": "^4.7.0",
|
|
1047
|
-
"@vultisig/core-chain": "2.
|
|
1047
|
+
"@vultisig/core-chain": "2.24.0",
|
|
1048
1048
|
"@vultisig/core-config": "0.9.1",
|
|
1049
1049
|
"@vultisig/lib-dkls": "0.9.0",
|
|
1050
1050
|
"@vultisig/lib-mldsa": "0.9.0",
|