@cardano-sdk/core 0.34.0 → 0.35.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/dist/cjs/Asset/types/AssetInfo.d.ts.map +1 -1
- package/dist/cjs/Cardano/types/Cip1854ExtendedAccountPublicKey.d.ts +9 -0
- package/dist/cjs/Cardano/types/Cip1854ExtendedAccountPublicKey.d.ts.map +1 -0
- package/dist/cjs/Cardano/types/Cip1854ExtendedAccountPublicKey.js +50 -0
- package/dist/cjs/Cardano/types/Cip1854ExtendedAccountPublicKey.js.map +1 -0
- package/dist/cjs/Cardano/types/index.d.ts +1 -0
- package/dist/cjs/Cardano/types/index.d.ts.map +1 -1
- package/dist/cjs/Cardano/types/index.js +1 -0
- package/dist/cjs/Cardano/types/index.js.map +1 -1
- package/dist/cjs/errors.d.ts +3 -0
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +7 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/util/promiseTimeout.d.ts +2 -0
- package/dist/cjs/util/promiseTimeout.d.ts.map +1 -0
- package/dist/cjs/util/promiseTimeout.js +16 -0
- package/dist/cjs/util/promiseTimeout.js.map +1 -0
- package/dist/cjs/util/tokenTransferInspector.d.ts +4 -0
- package/dist/cjs/util/tokenTransferInspector.d.ts.map +1 -1
- package/dist/cjs/util/tokenTransferInspector.js +32 -7
- package/dist/cjs/util/tokenTransferInspector.js.map +1 -1
- package/dist/cjs/util/transactionSummaryInspector.d.ts +4 -0
- package/dist/cjs/util/transactionSummaryInspector.d.ts.map +1 -1
- package/dist/cjs/util/transactionSummaryInspector.js +28 -7
- package/dist/cjs/util/transactionSummaryInspector.js.map +1 -1
- package/dist/cjs/util/tryGetAssetInfos.d.ts +14 -0
- package/dist/cjs/util/tryGetAssetInfos.d.ts.map +1 -0
- package/dist/cjs/util/tryGetAssetInfos.js +53 -0
- package/dist/cjs/util/tryGetAssetInfos.js.map +1 -0
- package/dist/esm/Asset/types/AssetInfo.d.ts.map +1 -1
- package/dist/esm/Cardano/types/Cip1854ExtendedAccountPublicKey.d.ts +9 -0
- package/dist/esm/Cardano/types/Cip1854ExtendedAccountPublicKey.d.ts.map +1 -0
- package/dist/esm/Cardano/types/Cip1854ExtendedAccountPublicKey.js +23 -0
- package/dist/esm/Cardano/types/Cip1854ExtendedAccountPublicKey.js.map +1 -0
- package/dist/esm/Cardano/types/index.d.ts +1 -0
- package/dist/esm/Cardano/types/index.d.ts.map +1 -1
- package/dist/esm/Cardano/types/index.js +1 -0
- package/dist/esm/Cardano/types/index.js.map +1 -1
- package/dist/esm/errors.d.ts +3 -0
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +5 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/util/promiseTimeout.d.ts +2 -0
- package/dist/esm/util/promiseTimeout.d.ts.map +1 -0
- package/dist/esm/util/promiseTimeout.js +12 -0
- package/dist/esm/util/promiseTimeout.js.map +1 -0
- package/dist/esm/util/tokenTransferInspector.d.ts +4 -0
- package/dist/esm/util/tokenTransferInspector.d.ts.map +1 -1
- package/dist/esm/util/tokenTransferInspector.js +32 -7
- package/dist/esm/util/tokenTransferInspector.js.map +1 -1
- package/dist/esm/util/transactionSummaryInspector.d.ts +4 -0
- package/dist/esm/util/transactionSummaryInspector.d.ts.map +1 -1
- package/dist/esm/util/transactionSummaryInspector.js +28 -7
- package/dist/esm/util/transactionSummaryInspector.js.map +1 -1
- package/dist/esm/util/tryGetAssetInfos.d.ts +14 -0
- package/dist/esm/util/tryGetAssetInfos.d.ts.map +1 -0
- package/dist/esm/util/tryGetAssetInfos.js +26 -0
- package/dist/esm/util/tryGetAssetInfos.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promiseTimeout.d.ts","sourceRoot":"","sources":["../../../src/util/promiseTimeout.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,oCAAqC,MAAM,wBAYrE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TimeoutError } from '../errors.js';
|
|
2
|
+
export const promiseTimeout = (promise, timeout) => {
|
|
3
|
+
let timeoutId;
|
|
4
|
+
return Promise.race([
|
|
5
|
+
promise,
|
|
6
|
+
new Promise((_, reject) => (timeoutId = setTimeout(() => reject(new TimeoutError('Failed to resolve the promise in time')), timeout)))
|
|
7
|
+
]).finally(() => {
|
|
8
|
+
if (timeoutId)
|
|
9
|
+
clearTimeout(timeoutId);
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=promiseTimeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promiseTimeout.js","sourceRoot":"","sources":["../../../src/util/promiseTimeout.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,OAAmB,EAAE,OAAe,EAAE,EAAE;IACxE,IAAI,SAAyB,CAAC;IAE9B,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO;QACP,IAAI,OAAO,CACT,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACZ,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,uCAAuC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAC7G;KACF,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACd,IAAI,SAAS;YAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -2,6 +2,8 @@ import * as Cardano from '../Cardano/index.js';
|
|
|
2
2
|
import { AssetInfo } from '../Asset/index.js';
|
|
3
3
|
import { AssetProvider } from '../Provider/index.js';
|
|
4
4
|
import { Inspector } from './txInspector.js';
|
|
5
|
+
import { Logger } from 'ts-log';
|
|
6
|
+
import { Milliseconds } from './time.js';
|
|
5
7
|
export declare type AssetInfoWithAmount = {
|
|
6
8
|
amount: Cardano.Lovelace;
|
|
7
9
|
assetInfo: AssetInfo;
|
|
@@ -18,6 +20,8 @@ export interface TokenTransferInspectorArgs {
|
|
|
18
20
|
inputResolver: Cardano.InputResolver;
|
|
19
21
|
fromAddressAssetProvider: AssetProvider;
|
|
20
22
|
toAddressAssetProvider: AssetProvider;
|
|
23
|
+
timeout: Milliseconds;
|
|
24
|
+
logger: Logger;
|
|
21
25
|
}
|
|
22
26
|
export declare type TokenTransferInspector = (args: TokenTransferInspectorArgs) => Inspector<TokenTransferInspection>;
|
|
23
27
|
export declare const tokenTransferInspector: TokenTransferInspector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenTransferInspector.d.ts","sourceRoot":"","sources":["../../../src/util/tokenTransferInspector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokenTransferInspector.d.ts","sourceRoot":"","sources":["../../../src/util/tokenTransferInspector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAmC,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAQtC,oBAAY,mBAAmB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAErF,oBAAY,kBAAkB,GAAG;IAC/B,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClD,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;CACzB,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IACpC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAC7D,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;CAC5D,CAAC;AAGF,MAAM,WAAW,0BAA0B;IAEzC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;IAGrC,wBAAwB,EAAE,aAAa,CAAC;IAGxC,sBAAsB,EAAE,aAAa,CAAC;IAGtC,OAAO,EAAE,YAAY,CAAC;IAGtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,sBAAsB,GAAG,CAAC,IAAI,EAAE,0BAA0B,KAAK,SAAS,CAAC,uBAAuB,CAAC,CAAC;AAkI9G,eAAO,MAAM,sBAAsB,EAAE,sBA2ClC,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { resolveInputs } from './txInspector.js';
|
|
2
|
+
import { TimeoutError } from '../errors.js';
|
|
2
3
|
import { coalesceValueQuantities } from './coalesceValueQuantities.js';
|
|
4
|
+
import { promiseTimeout } from './promiseTimeout.js';
|
|
3
5
|
import { subtractValueQuantities } from './subtractValueQuantities.js';
|
|
6
|
+
import { tryGetAssetInfos } from './tryGetAssetInfos.js';
|
|
4
7
|
import uniq from 'lodash/uniq.js';
|
|
5
8
|
const coalesceByAddress = (elements) => {
|
|
6
9
|
const grouped = elements.reduce((acc, elem) => {
|
|
@@ -55,16 +58,18 @@ const removeZeroBalanceEntries = (addressMap) => {
|
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
60
|
};
|
|
58
|
-
const
|
|
61
|
+
const intoTokenTransferValue = async ({ logger, assetProvider, timeout, addressMap }) => {
|
|
59
62
|
const tokenTransferValue = new Map();
|
|
60
63
|
for (const [address, value] of addressMap.entries()) {
|
|
61
64
|
const coins = value.coins;
|
|
62
65
|
const assetIds = uniq(value.assets && value.assets.size > 0 ? [...value.assets.keys()] : []);
|
|
63
66
|
const assetInfos = new Map();
|
|
64
67
|
if (assetIds.length > 0) {
|
|
65
|
-
const assets = await
|
|
68
|
+
const assets = await tryGetAssetInfos({
|
|
66
69
|
assetIds,
|
|
67
|
-
|
|
70
|
+
assetProvider,
|
|
71
|
+
logger,
|
|
72
|
+
timeout
|
|
68
73
|
});
|
|
69
74
|
for (const asset of assets) {
|
|
70
75
|
const amount = value.assets?.get(asset.assetId) ?? 0n;
|
|
@@ -78,8 +83,18 @@ const toTokenTransferValue = async (assetProvider, addressMap) => {
|
|
|
78
83
|
}
|
|
79
84
|
return tokenTransferValue;
|
|
80
85
|
};
|
|
81
|
-
export const tokenTransferInspector = ({ inputResolver, fromAddressAssetProvider, toAddressAssetProvider }) => async (tx) => {
|
|
82
|
-
|
|
86
|
+
export const tokenTransferInspector = ({ inputResolver, fromAddressAssetProvider, toAddressAssetProvider, timeout, logger }) => async (tx) => {
|
|
87
|
+
let resolvedInputs;
|
|
88
|
+
try {
|
|
89
|
+
const inputResolution = await promiseTimeout(resolveInputs(tx.body.inputs, inputResolver), timeout);
|
|
90
|
+
resolvedInputs = inputResolution.resolvedInputs;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
if (error instanceof TimeoutError) {
|
|
94
|
+
logger.error('Error: Inputs resolution timed out');
|
|
95
|
+
}
|
|
96
|
+
resolvedInputs = [];
|
|
97
|
+
}
|
|
83
98
|
const coalescedInputsByAddress = coalesceByAddress(resolvedInputs);
|
|
84
99
|
const coalescedOutputsByAddress = coalesceByAddress(tx.body.outputs);
|
|
85
100
|
const addresses = uniq([...coalescedInputsByAddress.keys(), ...coalescedOutputsByAddress.keys()]);
|
|
@@ -89,8 +104,18 @@ export const tokenTransferInspector = ({ inputResolver, fromAddressAssetProvider
|
|
|
89
104
|
removeZeroBalanceEntries(fromAddress);
|
|
90
105
|
removeZeroBalanceEntries(toAddress);
|
|
91
106
|
return {
|
|
92
|
-
fromAddress: await
|
|
93
|
-
|
|
107
|
+
fromAddress: await intoTokenTransferValue({
|
|
108
|
+
addressMap: fromAddress,
|
|
109
|
+
assetProvider: fromAddressAssetProvider,
|
|
110
|
+
logger,
|
|
111
|
+
timeout
|
|
112
|
+
}),
|
|
113
|
+
toAddress: await intoTokenTransferValue({
|
|
114
|
+
addressMap: toAddress,
|
|
115
|
+
assetProvider: toAddressAssetProvider,
|
|
116
|
+
logger,
|
|
117
|
+
timeout
|
|
118
|
+
})
|
|
94
119
|
};
|
|
95
120
|
};
|
|
96
121
|
//# sourceMappingURL=tokenTransferInspector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenTransferInspector.js","sourceRoot":"","sources":["../../../src/util/tokenTransferInspector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokenTransferInspector.js","sourceRoot":"","sources":["../../../src/util/tokenTransferInspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import * as Crypto from '@cardano-sdk/crypto';
|
|
|
3
3
|
import { AssetInfoWithAmount } from './tokenTransferInspector.js';
|
|
4
4
|
import { AssetProvider } from '../Provider/index.js';
|
|
5
5
|
import { Inspector } from './txInspector.js';
|
|
6
|
+
import { Logger } from 'ts-log';
|
|
7
|
+
import { Milliseconds } from './time.js';
|
|
6
8
|
interface TransactionSummaryInspectorArgs {
|
|
7
9
|
addresses: Cardano.PaymentAddress[];
|
|
8
10
|
rewardAccounts: Cardano.RewardAccount[];
|
|
@@ -10,6 +12,8 @@ interface TransactionSummaryInspectorArgs {
|
|
|
10
12
|
protocolParameters: Cardano.ProtocolParameters;
|
|
11
13
|
assetProvider: AssetProvider;
|
|
12
14
|
dRepKeyHash?: Crypto.Ed25519KeyHashHex;
|
|
15
|
+
timeout: Milliseconds;
|
|
16
|
+
logger: Logger;
|
|
13
17
|
}
|
|
14
18
|
export declare type TransactionSummaryInspection = {
|
|
15
19
|
assets: Map<Cardano.AssetId, AssetInfoWithAmount>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionSummaryInspector.d.ts","sourceRoot":"","sources":["../../../src/util/transactionSummaryInspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAEL,SAAS,EAOV,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"transactionSummaryInspector.d.ts","sourceRoot":"","sources":["../../../src/util/transactionSummaryInspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAEL,SAAS,EAOV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAStC,UAAU,+BAA+B;IACvC,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;IACxC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;IACrC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAC/C,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,4BAA4B,GAAG;IACzC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClD,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC;IAClC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;IACtB,UAAU,EAAE;QACV,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,oBAAY,2BAA2B,GAAG,CACxC,IAAI,EAAE,+BAA+B,KAClC,SAAS,CAAC,4BAA4B,CAAC,CAAC;AAgB7C,eAAO,MAAM,aAAa,OACpB,QAAQ,EAAE,iBACC,QAAQ,aAAa,aACzB,QAAQ,cAAc,EAAE,KAClC,QAAQ,QAAQ,QAAQ,CAsB1B,CAAC;AAuEF,eAAO,MAAM,2BAA2B,EAAE,2BAiEvC,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { AssetId } from '../Cardano/index.js';
|
|
2
2
|
import { assetsBurnedInspector, assetsMintedInspector, resolveInputs, totalAddressInputsValueInspector, totalAddressOutputsValueInspector } from './txInspector.js';
|
|
3
3
|
import { BigIntMath } from '@cardano-sdk/util';
|
|
4
|
+
import { TimeoutError } from '../errors.js';
|
|
4
5
|
import { coalesceTokenMaps, subtractTokenMaps } from '../Asset/util/index.js';
|
|
5
6
|
import { coalesceValueQuantities } from './coalesceValueQuantities.js';
|
|
6
7
|
import { computeImplicitCoin } from '../Cardano/util/index.js';
|
|
8
|
+
import { promiseTimeout } from './promiseTimeout.js';
|
|
7
9
|
import { subtractValueQuantities } from './subtractValueQuantities.js';
|
|
10
|
+
import { tryGetAssetInfos } from './tryGetAssetInfos.js';
|
|
8
11
|
export const getCollateral = async (tx, inputResolver, addresses) => {
|
|
9
12
|
if (!tx.body.collaterals || tx.body.collaterals.length === 0)
|
|
10
13
|
return 0n;
|
|
@@ -36,15 +39,17 @@ const getUnaccountedFunds = async (tx, resolvedInputs, implicitCoin, fee, implic
|
|
|
36
39
|
totalOutputs.coins += fee;
|
|
37
40
|
return subtractValueQuantities([totalOutputs, totalInputs]);
|
|
38
41
|
};
|
|
39
|
-
const
|
|
42
|
+
const intoAssetInfoWithAmount = async ({ assetProvider, logger, timeout, tokenMap }) => {
|
|
40
43
|
if (!tokenMap)
|
|
41
44
|
return new Map();
|
|
42
45
|
const assetIds = tokenMap && tokenMap.size > 0 ? [...tokenMap.keys()] : [];
|
|
43
46
|
const assetInfos = new Map();
|
|
44
47
|
if (assetIds.length > 0) {
|
|
45
|
-
const assets = await
|
|
48
|
+
const assets = await tryGetAssetInfos({
|
|
46
49
|
assetIds,
|
|
47
|
-
|
|
50
|
+
assetProvider,
|
|
51
|
+
logger,
|
|
52
|
+
timeout
|
|
48
53
|
});
|
|
49
54
|
for (const asset of assets) {
|
|
50
55
|
const amount = tokenMap?.get(asset.assetId) ?? 0n;
|
|
@@ -53,9 +58,20 @@ const toAssetInfoWithAmount = async (assetProvider, tokenMap) => {
|
|
|
53
58
|
}
|
|
54
59
|
return assetInfos;
|
|
55
60
|
};
|
|
56
|
-
export const transactionSummaryInspector = (
|
|
57
|
-
|
|
58
|
-
|
|
61
|
+
export const transactionSummaryInspector = ({ inputResolver, addresses, rewardAccounts, protocolParameters, assetProvider, dRepKeyHash, timeout, logger }) => async (tx) => {
|
|
62
|
+
let resolvedInputs;
|
|
63
|
+
try {
|
|
64
|
+
resolvedInputs = await promiseTimeout(resolveInputs(tx.body.inputs, inputResolver), timeout);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
if (error instanceof TimeoutError) {
|
|
68
|
+
logger.error('Error: Inputs resolution timed out');
|
|
69
|
+
}
|
|
70
|
+
resolvedInputs = {
|
|
71
|
+
resolvedInputs: [],
|
|
72
|
+
unresolvedInputs: tx.body.inputs
|
|
73
|
+
};
|
|
74
|
+
}
|
|
59
75
|
const fee = tx.body.fee;
|
|
60
76
|
const implicit = computeImplicitCoin(protocolParameters, { certificates: tx.body.certificates, withdrawals: tx.body.withdrawals }, rewardAccounts || [], dRepKeyHash);
|
|
61
77
|
const collateral = await getCollateral(tx, inputResolver, addresses);
|
|
@@ -68,7 +84,12 @@ export const transactionSummaryInspector = (args) => async (tx) => {
|
|
|
68
84
|
coins: totalOutputValue.coins - totalInputValue.coins
|
|
69
85
|
};
|
|
70
86
|
return {
|
|
71
|
-
assets: await
|
|
87
|
+
assets: await intoAssetInfoWithAmount({
|
|
88
|
+
assetProvider,
|
|
89
|
+
logger,
|
|
90
|
+
timeout,
|
|
91
|
+
tokenMap: diff.assets
|
|
92
|
+
}),
|
|
72
93
|
coins: diff.coins,
|
|
73
94
|
collateral,
|
|
74
95
|
deposit: implicit.deposit || 0n,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionSummaryInspector.js","sourceRoot":"","sources":["../../../src/util/transactionSummaryInspector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAY,MAAM,YAAY,CAAC;AAG/C,OAAO,EAIL,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,gCAAgC,EAChC,iCAAiC,EAClC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"transactionSummaryInspector.js","sourceRoot":"","sources":["../../../src/util/transactionSummaryInspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as Cardano from '../Cardano/index.js';
|
|
2
|
+
import { AssetInfo } from '../Asset/index.js';
|
|
3
|
+
import { AssetProvider } from '../Provider/index.js';
|
|
4
|
+
import { Logger } from 'ts-log';
|
|
5
|
+
import { Milliseconds } from './time.js';
|
|
6
|
+
declare type TryGetAssetInfosProps = {
|
|
7
|
+
assetIds: Cardano.AssetId[];
|
|
8
|
+
assetProvider: AssetProvider;
|
|
9
|
+
timeout: Milliseconds;
|
|
10
|
+
logger: Logger;
|
|
11
|
+
};
|
|
12
|
+
export declare const tryGetAssetInfos: ({ assetIds, assetProvider, logger, timeout }: TryGetAssetInfosProps) => Promise<AssetInfo[]>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=tryGetAssetInfos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tryGetAssetInfos.d.ts","sourceRoot":"","sources":["../../../src/util/tryGetAssetInfos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,aAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5B,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,gBAAgB,iDAAwD,qBAAqB,yBA0BzG,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as Cardano from '../Cardano/index.js';
|
|
2
|
+
import { promiseTimeout } from './promiseTimeout.js';
|
|
3
|
+
export const tryGetAssetInfos = async ({ assetIds, assetProvider, logger, timeout }) => {
|
|
4
|
+
try {
|
|
5
|
+
return await promiseTimeout(assetProvider.getAssets({
|
|
6
|
+
assetIds,
|
|
7
|
+
extraData: { nftMetadata: true, tokenMetadata: true }
|
|
8
|
+
}), timeout);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
logger.error('Error: Failed to retrieve assets', error);
|
|
12
|
+
return assetIds.map((assetId) => {
|
|
13
|
+
const policyId = Cardano.AssetId.getPolicyId(assetId);
|
|
14
|
+
const name = Cardano.AssetId.getAssetName(assetId);
|
|
15
|
+
return {
|
|
16
|
+
assetId,
|
|
17
|
+
fingerprint: Cardano.AssetFingerprint.fromParts(policyId, name),
|
|
18
|
+
name,
|
|
19
|
+
policyId,
|
|
20
|
+
quantity: 0n,
|
|
21
|
+
supply: 0n
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=tryGetAssetInfos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tryGetAssetInfos.js","sourceRoot":"","sources":["../../../src/util/tryGetAssetInfos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAKtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASlD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAyB,EAAE,EAAE;IAC5G,IAAI;QACF,OAAO,MAAM,cAAc,CACzB,aAAa,CAAC,SAAS,CAAC;YACtB,QAAQ;YACR,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;SACtD,CAAC,EACF,OAAO,CACR,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QAExD,OAAO,QAAQ,CAAC,GAAG,CAAY,CAAC,OAAO,EAAE,EAAE;YACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO;gBACP,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC;gBAC/D,IAAI;gBACJ,QAAQ;gBACR,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;AACH,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cardano-sdk/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.1",
|
|
4
4
|
"description": "Core types and libraries for Cardano",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16.20.2"
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"@cardano-ogmios/schema": "6.3.0",
|
|
59
59
|
"@cardano-sdk/crypto": "~0.1.25",
|
|
60
60
|
"@cardano-sdk/util": "~0.15.2",
|
|
61
|
+
"@cardano-sdk/util-dev": "~0.21.5",
|
|
61
62
|
"@foxglove/crc": "^0.0.3",
|
|
62
63
|
"@scure/base": "^1.1.1",
|
|
63
64
|
"fraction.js": "4.0.1",
|
|
@@ -73,5 +74,5 @@
|
|
|
73
74
|
"LICENSE",
|
|
74
75
|
"NOTICE"
|
|
75
76
|
],
|
|
76
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "56a83cdd04d017353fe9cfd402b293c6845fdcad"
|
|
77
78
|
}
|