@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":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,QAAQ,CAoElE,CAAA"}
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAGtE,MAAM,CAAC,MAAM,sBAAsB,GAAoC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE;IAC5F,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,0BAA0B,CACtE,cAAc,CAAC,kBAAkB,EACjC,gBAAgB,CACjB,CAAA;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAE5B,MAAM,UAAU,GAAG,GAAiE,EAAE;QACpF,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YAExD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;gBAChF,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;oBACtD,WAAW,EAAE,cAAc,CAAC,SAAS;oBACrC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC;oBAChD,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAQ;iBACvD,CAAC,CAAA;gBAEF,OAAO;oBACL,SAAS,EAAE,OAAO;iBACnB,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;gBAE1F,MAAM,MAAM,GAAG;oBACb,eAAe,EAAE,SAAS;oBAC1B,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,cAAc,CAAC,SAAS;oBACrC,MAAM,EAAE,cAAc,CAAC,QAAQ;oBAC/B,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;oBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;oBAC1B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC;oBAC9C,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE;gCACJ,QAAQ,EAAE,WAAW;6BACtB;yBACF;qBACF;iBACF,CAAA;gBAED,OAAO;oBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;iBAChC,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;gBACjD,WAAW,EAAE,cAAc,CAAC,SAAS;gBACrC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC;aACjD,CAAC;SACH,CAAA;IACH,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QAChD,OAAO;QACP,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC1B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC;QAC9C,SAAS,EAAE,qBAAqB,CAAC,cAAc,CAAC;QAChD,GAAG,UAAU,EAAE;KAChB,CAAC,CAAA;IAEF,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC,CAAA"}
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.8.20",
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.23.3",
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",