@vultisig/core-chain 2.17.2 → 2.17.3
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 +8 -0
- package/dist/chains/cardano/cip30/cardanoTxTtl.d.ts +8 -0
- package/dist/chains/cardano/cip30/cardanoTxTtl.d.ts.map +1 -0
- package/dist/chains/cardano/cip30/cardanoTxTtl.js +36 -0
- package/dist/chains/cardano/cip30/cardanoTxTtl.js.map +1 -0
- package/dist/chains/cardano/config.d.ts +1 -0
- package/dist/chains/cardano/config.d.ts.map +1 -1
- package/dist/chains/cardano/config.js +1 -0
- package/dist/chains/cardano/config.js.map +1 -1
- package/dist/tx/broadcast/resolvers/cardano.d.ts.map +1 -1
- package/dist/tx/broadcast/resolvers/cardano.js +13 -1
- package/dist/tx/broadcast/resolvers/cardano.js.map +1 -1
- package/dist/tx/broadcast/resolvers/utxo.js +1 -1
- package/dist/tx/broadcast/resolvers/utxo.js.map +1 -1
- package/package.json +6 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @vultisig/core-chain
|
|
2
2
|
|
|
3
|
+
## 2.17.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#753](https://github.com/vultisig/vultisig-sdk/pull/753) [`e988851`](https://github.com/vultisig/vultisig-sdk/commit/e98885119f18078a0dde1f1ebdbca20f842c9325) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Fail Cardano broadcasts before submission when the signed transaction TTL is expired or too close to expiry.
|
|
8
|
+
|
|
9
|
+
- [#754](https://github.com/vultisig/vultisig-sdk/pull/754) [`35c48e3`](https://github.com/vultisig/vultisig-sdk/commit/35c48e3eac615d62697c9052f43a9dab918b94dd) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Route UTXO and Cardano broadcast timeouts through transaction hash verification before treating them as landed.
|
|
10
|
+
|
|
3
11
|
## 2.17.2
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract the absolute slot TTL from a signed Cardano transaction CBOR.
|
|
3
|
+
*
|
|
4
|
+
* Cardano transaction bodies are CBOR maps; key 3 is `ttl`. We only decode for
|
|
5
|
+
* inspection and never re-encode, so this cannot perturb the tx hash.
|
|
6
|
+
*/
|
|
7
|
+
export declare const getCardanoTxTtl: (txCbor: Uint8Array) => bigint;
|
|
8
|
+
//# sourceMappingURL=cardanoTxTtl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardanoTxTtl.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cardano/cip30/cardanoTxTtl.ts"],"names":[],"mappings":"AA4BA;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,UAAU,KAAG,MAQpD,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { decode } from 'cbor-x';
|
|
2
|
+
const ttlBodyKey = 3;
|
|
3
|
+
const getBodyValue = (body, key) => {
|
|
4
|
+
if (body instanceof Map) {
|
|
5
|
+
return body.get(key);
|
|
6
|
+
}
|
|
7
|
+
if (body && typeof body === 'object') {
|
|
8
|
+
return body[String(key)];
|
|
9
|
+
}
|
|
10
|
+
return undefined;
|
|
11
|
+
};
|
|
12
|
+
const toTtl = (value) => {
|
|
13
|
+
if (typeof value === 'bigint')
|
|
14
|
+
return value;
|
|
15
|
+
if (typeof value === 'number' && Number.isSafeInteger(value) && value >= 0) {
|
|
16
|
+
return BigInt(value);
|
|
17
|
+
}
|
|
18
|
+
if (typeof value === 'string' && /^\d+$/.test(value)) {
|
|
19
|
+
return BigInt(value);
|
|
20
|
+
}
|
|
21
|
+
throw new Error('Invalid Cardano transaction TTL');
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Extract the absolute slot TTL from a signed Cardano transaction CBOR.
|
|
25
|
+
*
|
|
26
|
+
* Cardano transaction bodies are CBOR maps; key 3 is `ttl`. We only decode for
|
|
27
|
+
* inspection and never re-encode, so this cannot perturb the tx hash.
|
|
28
|
+
*/
|
|
29
|
+
export const getCardanoTxTtl = (txCbor) => {
|
|
30
|
+
const decoded = decode(txCbor);
|
|
31
|
+
if (!Array.isArray(decoded) || decoded.length < 1) {
|
|
32
|
+
throw new Error('Invalid Cardano transaction CBOR: expected array');
|
|
33
|
+
}
|
|
34
|
+
return toTtl(getBodyValue(decoded[0], ttlBodyKey));
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=cardanoTxTtl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardanoTxTtl.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cardano/cip30/cardanoTxTtl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,UAAU,GAAG,CAAC,CAAA;AAEpB,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,GAAW,EAAW,EAAE;IAC3D,IAAI,IAAI,YAAY,GAAG,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAQ,IAAgC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,CAAC,KAAc,EAAU,EAAE;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;AACpD,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAkB,EAAU,EAAE;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAE9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAA;AACpD,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cardano/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,MAAM,CAAA;AACpC,eAAO,MAAM,iBAAiB,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cardano/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,MAAM,CAAA;AACpC,eAAO,MAAM,iBAAiB,UAAU,CAAA;AACxC,eAAO,MAAM,+BAA+B,KAAK,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cardano/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../packages/core/chain/chains/cardano/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAA;AACxC,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAQvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAsBjD,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAuBtE,CAAA"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { getCardanoTxTtl } from '@vultisig/core-chain/chains/cardano/cip30/cardanoTxTtl';
|
|
2
|
+
import { getCardanoCurrentSlot } from '@vultisig/core-chain/chains/cardano/client/currentSlot';
|
|
3
|
+
import { cardanoBroadcastTtlSafetyMargin } from '@vultisig/core-chain/chains/cardano/config';
|
|
1
4
|
import { getCardanoTxHash } from '@vultisig/core-chain/tx/hash/resolvers/cardano';
|
|
2
5
|
import { isInError } from '@vultisig/lib-utils/error/isInError';
|
|
3
6
|
import { submitCardanoCbor } from '../../../chains/cardano/submit/submitCardanoCbor.js';
|
|
@@ -8,8 +11,17 @@ import { selectEncodedBytes } from './utxo.js';
|
|
|
8
11
|
* reports this, we hash the tx locally to return the deterministic id.
|
|
9
12
|
*/
|
|
10
13
|
const alreadyCommittedCode = 3117;
|
|
14
|
+
const assertCardanoTtlFreshForBroadcast = async (encodedBytes) => {
|
|
15
|
+
const ttl = getCardanoTxTtl(encodedBytes);
|
|
16
|
+
const currentSlot = await getCardanoCurrentSlot();
|
|
17
|
+
const minimumFreshTtl = currentSlot + BigInt(cardanoBroadcastTtlSafetyMargin);
|
|
18
|
+
if (ttl <= minimumFreshTtl) {
|
|
19
|
+
throw new Error(`Cardano transaction TTL is expired or too close to expiry; rebuild the transaction and retry (ttl=${ttl}, currentSlot=${currentSlot}, safetyMargin=${cardanoBroadcastTtlSafetyMargin} slots)`);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
11
22
|
export const broadcastCardanoTx = async ({ chain, tx }) => {
|
|
12
23
|
const encodedBytes = selectEncodedBytes(chain, tx);
|
|
24
|
+
await assertCardanoTtlFreshForBroadcast(encodedBytes);
|
|
13
25
|
const cborHex = Buffer.from(encodedBytes).toString('hex');
|
|
14
26
|
const { txHash, errorMessage, rpcErrorCode } = await submitCardanoCbor(cborHex);
|
|
15
27
|
if (txHash)
|
|
@@ -18,7 +30,7 @@ export const broadcastCardanoTx = async ({ chain, tx }) => {
|
|
|
18
30
|
return (await getCardanoTxHash(tx)).replace(/^0x/i, '');
|
|
19
31
|
}
|
|
20
32
|
const error = errorMessage ?? 'unknown broadcast failure';
|
|
21
|
-
if (isInError(error, 'BadInputsUTxO', '
|
|
33
|
+
if (isInError(error, 'BadInputsUTxO', 'txn-mempool-conflict', 'already known')) {
|
|
22
34
|
return null;
|
|
23
35
|
}
|
|
24
36
|
const broadcastError = new Error(`Failed to broadcast transaction: ${error}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/cardano.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAA;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAE3C;;;GAGG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAA4C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IACjG,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzD,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAE/E,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,IAAI,YAAY,KAAK,oBAAoB,EAAE,CAAC;QAC1C,OAAO,CAAC,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,IAAI,2BAA2B,CAAA;IAEzD,IAAI,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/cardano.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAA;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAA;AAC9F,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAA;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAA;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAE3C;;;GAGG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAEjC,MAAM,iCAAiC,GAAG,KAAK,EAAE,YAAwB,EAAE,EAAE;IAC3E,MAAM,GAAG,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IACzC,MAAM,WAAW,GAAG,MAAM,qBAAqB,EAAE,CAAA;IACjD,MAAM,eAAe,GAAG,WAAW,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAA;IAE7E,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,qGAAqG,GAAG,iBAAiB,WAAW,kBAAkB,+BAA+B,SAAS,CAC/L,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAA4C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IACjG,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAClD,MAAM,iCAAiC,CAAC,YAAY,CAAC,CAAA;IAErD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzD,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAE/E,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,IAAI,YAAY,KAAK,oBAAoB,EAAE,CAAC;QAC1C,OAAO,CAAC,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,IAAI,2BAA2B,CAAA;IAEzD,IAAI,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,CAAC,EAAE,CAAC;QAC/E,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAA;IAC7E,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;IACjE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -17,7 +17,7 @@ export const broadcastUtxoTx = async ({ chain, tx }) => {
|
|
|
17
17
|
return response.data.transaction_hash;
|
|
18
18
|
}
|
|
19
19
|
const error = 'context' in response ? response.context.error : extractErrorMsg(response);
|
|
20
|
-
if (isInError(error, 'BadInputsUTxO', '
|
|
20
|
+
if (isInError(error, 'BadInputsUTxO', 'txn-mempool-conflict', 'already known')) {
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
23
23
|
const broadcastError = new Error(`Failed to broadcast transaction: ${extractErrorMsg(error)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/utxo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAA;AAGvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAiBhE,MAAM,CAAC,MAAM,eAAe,GAAwC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IAC1F,MAAM,GAAG,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,mBAAmB,CAAA;IAC7D,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAwB,CAAC,CAAA;IAExE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAA8B,GAAG,EAAE;QAChE,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;SAChD;KACF,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAA;IACvC,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;IAExF,IAAI,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/tx/broadcast/resolvers/utxo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAA;AAGvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAiBhE,MAAM,CAAC,MAAM,eAAe,GAAwC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;IAC1F,MAAM,GAAG,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,mBAAmB,CAAA;IAC7D,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAwB,CAAC,CAAA;IAExE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAA8B,GAAG,EAAE;QAChE,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;SAChD;KACF,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAA;IACvC,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;IAExF,IAAI,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,CAAC,EAAE,CAAC;QAC/E,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,oCAAoC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC9F,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;IACjE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CACzB,EAAsB,EAGtB,EAAE,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,iBAAiB,IAAI,EAAE,IAAI,CAAC,CAAE,EAAU,CAAC,eAAe,CAAA;AAErG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAqB,EAAE,EAAsB,EAAc,EAAE;IAC9F,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC3F,OAAO,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "2.17.
|
|
3
|
+
"version": "2.17.3",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -110,6 +110,11 @@
|
|
|
110
110
|
"import": "./dist/chains/cardano/cip30/cardanoTxBodyHash.js",
|
|
111
111
|
"default": "./dist/chains/cardano/cip30/cardanoTxBodyHash.js"
|
|
112
112
|
},
|
|
113
|
+
"./chains/cardano/cip30/cardanoTxTtl": {
|
|
114
|
+
"types": "./dist/chains/cardano/cip30/cardanoTxTtl.d.ts",
|
|
115
|
+
"import": "./dist/chains/cardano/cip30/cardanoTxTtl.js",
|
|
116
|
+
"default": "./dist/chains/cardano/cip30/cardanoTxTtl.js"
|
|
117
|
+
},
|
|
113
118
|
"./chains/cardano/cip30/cborEncoder": {
|
|
114
119
|
"types": "./dist/chains/cardano/cip30/cborEncoder.d.ts",
|
|
115
120
|
"import": "./dist/chains/cardano/cip30/cborEncoder.js",
|