@cardano-sdk/core 0.23.1 → 0.24.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/dist/cjs/Asset/NftMetadata/fromMetadatum.d.ts.map +1 -1
- package/dist/cjs/Asset/NftMetadata/fromMetadatum.js +7 -2
- package/dist/cjs/Asset/NftMetadata/fromMetadatum.js.map +1 -1
- package/dist/cjs/Asset/util/subtractTokenMaps.d.ts +3 -2
- package/dist/cjs/Asset/util/subtractTokenMaps.d.ts.map +1 -1
- package/dist/cjs/Asset/util/subtractTokenMaps.js +53 -14
- package/dist/cjs/Asset/util/subtractTokenMaps.js.map +1 -1
- package/dist/cjs/Cardano/Address/RewardAccount.d.ts +3 -0
- package/dist/cjs/Cardano/Address/RewardAccount.d.ts.map +1 -1
- package/dist/cjs/Cardano/Address/RewardAccount.js +2 -0
- package/dist/cjs/Cardano/Address/RewardAccount.js.map +1 -1
- package/dist/cjs/Cardano/util/computeImplicitCoin.d.ts +2 -1
- package/dist/cjs/Cardano/util/computeImplicitCoin.d.ts.map +1 -1
- package/dist/cjs/Cardano/util/computeImplicitCoin.js +88 -5
- package/dist/cjs/Cardano/util/computeImplicitCoin.js.map +1 -1
- package/dist/cjs/Serialization/TransactionBody/TransactionBody.d.ts.map +1 -1
- package/dist/cjs/Serialization/TransactionBody/TransactionBody.js +9 -4
- package/dist/cjs/Serialization/TransactionBody/TransactionBody.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/util/index.d.ts +2 -0
- package/dist/cjs/util/index.d.ts.map +1 -1
- package/dist/cjs/util/index.js +2 -0
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/cjs/util/tokenTransferInspector.d.ts +12 -0
- package/dist/cjs/util/tokenTransferInspector.d.ts.map +1 -0
- package/dist/cjs/util/tokenTransferInspector.js +77 -0
- package/dist/cjs/util/tokenTransferInspector.js.map +1 -0
- package/dist/cjs/util/transactionSummaryInspector.d.ts +25 -0
- package/dist/cjs/util/transactionSummaryInspector.d.ts.map +1 -0
- package/dist/cjs/util/transactionSummaryInspector.js +70 -0
- package/dist/cjs/util/transactionSummaryInspector.js.map +1 -0
- package/dist/cjs/util/txInspector.d.ts +16 -8
- package/dist/cjs/util/txInspector.d.ts.map +1 -1
- package/dist/cjs/util/txInspector.js +66 -29
- package/dist/cjs/util/txInspector.js.map +1 -1
- package/dist/esm/Asset/NftMetadata/fromMetadatum.d.ts.map +1 -1
- package/dist/esm/Asset/NftMetadata/fromMetadatum.js +7 -2
- package/dist/esm/Asset/NftMetadata/fromMetadatum.js.map +1 -1
- package/dist/esm/Asset/util/subtractTokenMaps.d.ts +3 -2
- package/dist/esm/Asset/util/subtractTokenMaps.d.ts.map +1 -1
- package/dist/esm/Asset/util/subtractTokenMaps.js +48 -13
- package/dist/esm/Asset/util/subtractTokenMaps.js.map +1 -1
- package/dist/esm/Cardano/Address/RewardAccount.d.ts +3 -0
- package/dist/esm/Cardano/Address/RewardAccount.d.ts.map +1 -1
- package/dist/esm/Cardano/Address/RewardAccount.js +2 -0
- package/dist/esm/Cardano/Address/RewardAccount.js.map +1 -1
- package/dist/esm/Cardano/util/computeImplicitCoin.d.ts +2 -1
- package/dist/esm/Cardano/util/computeImplicitCoin.d.ts.map +1 -1
- package/dist/esm/Cardano/util/computeImplicitCoin.js +88 -5
- package/dist/esm/Cardano/util/computeImplicitCoin.js.map +1 -1
- package/dist/esm/Serialization/TransactionBody/TransactionBody.d.ts.map +1 -1
- package/dist/esm/Serialization/TransactionBody/TransactionBody.js +9 -4
- package/dist/esm/Serialization/TransactionBody/TransactionBody.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/util/index.d.ts +2 -0
- package/dist/esm/util/index.d.ts.map +1 -1
- package/dist/esm/util/index.js +2 -0
- package/dist/esm/util/index.js.map +1 -1
- package/dist/esm/util/tokenTransferInspector.d.ts +12 -0
- package/dist/esm/util/tokenTransferInspector.d.ts.map +1 -0
- package/dist/esm/util/tokenTransferInspector.js +70 -0
- package/dist/esm/util/tokenTransferInspector.js.map +1 -0
- package/dist/esm/util/transactionSummaryInspector.d.ts +25 -0
- package/dist/esm/util/transactionSummaryInspector.d.ts.map +1 -0
- package/dist/esm/util/transactionSummaryInspector.js +65 -0
- package/dist/esm/util/transactionSummaryInspector.js.map +1 -0
- package/dist/esm/util/txInspector.d.ts +16 -8
- package/dist/esm/util/txInspector.d.ts.map +1 -1
- package/dist/esm/util/txInspector.js +64 -29
- package/dist/esm/util/txInspector.js.map +1 -1
- package/package.json +4 -4
package/dist/esm/util/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * as util from './misc';
|
|
2
2
|
export * from './slotCalc';
|
|
3
3
|
export * from './txInspector';
|
|
4
|
+
export * from './tokenTransferInspector';
|
|
5
|
+
export * from './transactionSummaryInspector';
|
|
4
6
|
export * from './utxo';
|
|
5
7
|
export * from './calcStabilityWindow';
|
|
6
8
|
export * from './coalesceValueQuantities';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,cAAc,QAAQ,CAAC"}
|
package/dist/esm/util/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * as util from './misc';
|
|
2
2
|
export * from './slotCalc';
|
|
3
3
|
export * from './txInspector';
|
|
4
|
+
export * from './tokenTransferInspector';
|
|
5
|
+
export * from './transactionSummaryInspector';
|
|
4
6
|
export * from './utxo';
|
|
5
7
|
export * from './calcStabilityWindow';
|
|
6
8
|
export * from './coalesceValueQuantities';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as Cardano from '../Cardano';
|
|
2
|
+
import { Inspector } from './txInspector';
|
|
3
|
+
export declare type TokenTransferInspection = {
|
|
4
|
+
fromAddress: Map<Cardano.PaymentAddress, Cardano.Value>;
|
|
5
|
+
toAddress: Map<Cardano.PaymentAddress, Cardano.Value>;
|
|
6
|
+
};
|
|
7
|
+
export interface TokenTransferInspectorArgs {
|
|
8
|
+
inputResolver: Cardano.InputResolver;
|
|
9
|
+
}
|
|
10
|
+
export declare type TokenTransferInspector = (args: TokenTransferInspectorArgs) => Inspector<TokenTransferInspection>;
|
|
11
|
+
export declare const tokenTransferInspector: TokenTransferInspector;
|
|
12
|
+
//# sourceMappingURL=tokenTransferInspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransferInspector.d.ts","sourceRoot":"","sources":["../../../src/util/tokenTransferInspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AAKzD,oBAAY,uBAAuB,GAAG;IACpC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;CACtC;AAED,oBAAY,sBAAsB,GAAG,CAAC,IAAI,EAAE,0BAA0B,KAAK,SAAS,CAAC,uBAAuB,CAAC,CAAC;AAuF9G,eAAO,MAAM,sBAAsB,EAAE,sBAmBlC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { resolveInputs } from './txInspector';
|
|
2
|
+
import { coalesceValueQuantities } from './coalesceValueQuantities';
|
|
3
|
+
import { subtractValueQuantities } from './subtractValueQuantities';
|
|
4
|
+
import uniq from 'lodash/uniq';
|
|
5
|
+
const coalesceByAddress = (elements) => {
|
|
6
|
+
const grouped = elements.reduce((acc, elem) => {
|
|
7
|
+
if (!acc.has(elem.address))
|
|
8
|
+
acc.set(elem.address, []);
|
|
9
|
+
acc.get(elem.address)?.push(elem);
|
|
10
|
+
return acc;
|
|
11
|
+
}, new Map());
|
|
12
|
+
const coalescedByAddress = new Map();
|
|
13
|
+
for (const [address, elem] of grouped) {
|
|
14
|
+
coalescedByAddress.set(address, coalesceValueQuantities(elem.map((x) => x.value)));
|
|
15
|
+
}
|
|
16
|
+
return coalescedByAddress;
|
|
17
|
+
};
|
|
18
|
+
const initializeAddressMap = (addresses) => new Map(addresses.map((address) => [address, { assets: new Map(), coins: 0n }]));
|
|
19
|
+
const updateFromAddressMap = (addressMap, key, value) => {
|
|
20
|
+
if (value.coins < 0n) {
|
|
21
|
+
addressMap.get(key).coins = value.coins;
|
|
22
|
+
}
|
|
23
|
+
for (const [assetId, quantity] of value.assets?.entries() ?? [])
|
|
24
|
+
if (quantity < 0n) {
|
|
25
|
+
addressMap.get(key).assets?.set(assetId, quantity);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const updateToAddressMap = (addressMap, key, value) => {
|
|
29
|
+
if (value.coins > 0n) {
|
|
30
|
+
addressMap.get(key).coins = value.coins;
|
|
31
|
+
}
|
|
32
|
+
for (const [assetId, quantity] of value.assets?.entries() ?? []) {
|
|
33
|
+
if (quantity > 0n) {
|
|
34
|
+
addressMap.get(key).assets?.set(assetId, quantity);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const computeNetDifferences = (inputs, outputs, fromAddress, toAddress) => {
|
|
39
|
+
for (const [key, inputValue] of inputs.entries()) {
|
|
40
|
+
const outputValue = outputs.get(key) ?? { assets: new Map(), coins: 0n };
|
|
41
|
+
const difference = subtractValueQuantities([outputValue, inputValue]);
|
|
42
|
+
updateFromAddressMap(fromAddress, key, difference);
|
|
43
|
+
updateToAddressMap(toAddress, key, difference);
|
|
44
|
+
}
|
|
45
|
+
for (const [key, outputValue] of outputs.entries()) {
|
|
46
|
+
if (!inputs.has(key)) {
|
|
47
|
+
updateToAddressMap(toAddress, key, outputValue);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const removeZeroBalanceEntries = (addressMap) => {
|
|
52
|
+
for (const [key, value] of addressMap.entries()) {
|
|
53
|
+
if (value.coins === 0n && value.assets?.size === 0) {
|
|
54
|
+
addressMap.delete(key);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
export const tokenTransferInspector = ({ inputResolver }) => async (tx) => {
|
|
59
|
+
const { resolvedInputs } = await resolveInputs(tx.body.inputs, inputResolver);
|
|
60
|
+
const coalescedInputsByAddress = coalesceByAddress(resolvedInputs);
|
|
61
|
+
const coalescedOutputsByAddress = coalesceByAddress(tx.body.outputs);
|
|
62
|
+
const addresses = uniq([...coalescedInputsByAddress.keys(), ...coalescedOutputsByAddress.keys()]);
|
|
63
|
+
const fromAddress = initializeAddressMap(addresses);
|
|
64
|
+
const toAddress = initializeAddressMap(addresses);
|
|
65
|
+
computeNetDifferences(coalescedInputsByAddress, coalescedOutputsByAddress, fromAddress, toAddress);
|
|
66
|
+
removeZeroBalanceEntries(fromAddress);
|
|
67
|
+
removeZeroBalanceEntries(toAddress);
|
|
68
|
+
return { fromAddress, toAddress };
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=tokenTransferInspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransferInspector.js","sourceRoot":"","sources":["../../../src/util/tokenTransferInspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as Cardano from '../Cardano';
|
|
2
|
+
import { Inspector } from './txInspector';
|
|
3
|
+
interface TransactionSummaryInspectorArgs {
|
|
4
|
+
addresses: Cardano.PaymentAddress[];
|
|
5
|
+
rewardAccounts: Cardano.RewardAccount[];
|
|
6
|
+
inputResolver: Cardano.InputResolver;
|
|
7
|
+
protocolParameters: Cardano.ProtocolParameters;
|
|
8
|
+
}
|
|
9
|
+
export declare type TransactionSummaryInspection = {
|
|
10
|
+
assets: Cardano.TokenMap;
|
|
11
|
+
coins: Cardano.Lovelace;
|
|
12
|
+
collateral: Cardano.Lovelace;
|
|
13
|
+
deposit: Cardano.Lovelace;
|
|
14
|
+
returnedDeposit: Cardano.Lovelace;
|
|
15
|
+
fee: Cardano.Lovelace;
|
|
16
|
+
unresolved: {
|
|
17
|
+
inputs: Cardano.TxIn[];
|
|
18
|
+
value: Cardano.Value;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export declare type TransactionSummaryInspector = (args: TransactionSummaryInspectorArgs) => Inspector<TransactionSummaryInspection>;
|
|
22
|
+
export declare const getCollateral: (tx: Cardano.Tx, inputResolver: Cardano.InputResolver, addresses: Cardano.PaymentAddress[]) => Promise<Cardano.Lovelace>;
|
|
23
|
+
export declare const transactionSummaryInspector: TransactionSummaryInspector;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=transactionSummaryInspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionSummaryInspector.d.ts","sourceRoot":"","sources":["../../../src/util/transactionSummaryInspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAEtC,OAAO,EAEL,SAAS,EAOV,MAAM,eAAe,CAAC;AAOvB,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;CAChD;AAED,oBAAY,4BAA4B,GAAG;IACzC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;IACzB,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;AAS7C,eAAO,MAAM,aAAa,OACpB,QAAQ,EAAE,iBACC,QAAQ,aAAa,aACzB,QAAQ,cAAc,EAAE,KAClC,QAAQ,QAAQ,QAAQ,CAsB1B,CAAC;AAyCF,eAAO,MAAM,2BAA2B,EAAE,2BAoCvC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { AssetId } from '../Cardano';
|
|
2
|
+
import { assetsBurnedInspector, assetsMintedInspector, resolveInputs, totalAddressInputsValueInspector, totalAddressOutputsValueInspector } from './txInspector';
|
|
3
|
+
import { BigIntMath } from '@cardano-sdk/util';
|
|
4
|
+
import { coalesceTokenMaps, subtractTokenMaps } from '../Asset/util';
|
|
5
|
+
import { coalesceValueQuantities } from './coalesceValueQuantities';
|
|
6
|
+
import { computeImplicitCoin } from '../Cardano/util';
|
|
7
|
+
import { subtractValueQuantities } from './subtractValueQuantities';
|
|
8
|
+
export const getCollateral = async (tx, inputResolver, addresses) => {
|
|
9
|
+
if (!tx.body.collaterals || tx.body.collaterals.length === 0)
|
|
10
|
+
return 0n;
|
|
11
|
+
const resolvedCollateralInputs = (await resolveInputs(tx.body.collaterals, inputResolver)).resolvedInputs.filter((input) => addresses.includes(input.address));
|
|
12
|
+
const totalOwnedValueAtRisk = BigIntMath.sum(resolvedCollateralInputs.map(({ value }) => value.coins));
|
|
13
|
+
if (tx.body.collateralReturn) {
|
|
14
|
+
if (!addresses.includes(tx.body.collateralReturn.address))
|
|
15
|
+
return totalOwnedValueAtRisk;
|
|
16
|
+
return BigIntMath.max([totalOwnedValueAtRisk - tx.body.collateralReturn.value.coins, 0n]) ?? 0n;
|
|
17
|
+
}
|
|
18
|
+
return totalOwnedValueAtRisk;
|
|
19
|
+
};
|
|
20
|
+
const totalInputsValue = (resolvedInputs) => {
|
|
21
|
+
const receivedInputsValues = resolvedInputs.resolvedInputs.map((input) => input.value);
|
|
22
|
+
return coalesceValueQuantities(receivedInputsValues);
|
|
23
|
+
};
|
|
24
|
+
const totalOutputsValue = (outputs) => coalesceValueQuantities(outputs.map((output) => output.value));
|
|
25
|
+
const mintInspectionToTokenMap = (mintedAssets) => new Map(mintedAssets.map((asset) => [AssetId.fromParts(asset.policyId, asset.assetName), asset.quantity]));
|
|
26
|
+
const getImplicitAssets = async (tx) => {
|
|
27
|
+
const mintedAssets = mintInspectionToTokenMap(await assetsMintedInspector(tx));
|
|
28
|
+
const burnedAssets = mintInspectionToTokenMap(await assetsBurnedInspector(tx));
|
|
29
|
+
return coalesceTokenMaps([mintedAssets, burnedAssets]);
|
|
30
|
+
};
|
|
31
|
+
const getUnaccountedFunds = async (tx, resolvedInputs, implicitCoin, implicitAssets = new Map()) => {
|
|
32
|
+
const totalInputs = totalInputsValue(resolvedInputs);
|
|
33
|
+
const totalOutputs = totalOutputsValue(tx.body.outputs);
|
|
34
|
+
totalInputs.assets = coalesceTokenMaps([totalInputs.assets, implicitAssets]);
|
|
35
|
+
totalInputs.coins += implicitCoin;
|
|
36
|
+
return subtractValueQuantities([totalOutputs, totalInputs]);
|
|
37
|
+
};
|
|
38
|
+
export const transactionSummaryInspector = (args) => async (tx) => {
|
|
39
|
+
const { inputResolver, addresses, rewardAccounts, protocolParameters } = args;
|
|
40
|
+
const resolvedInputs = await resolveInputs(tx.body.inputs, inputResolver);
|
|
41
|
+
const fee = tx.body.fee;
|
|
42
|
+
const implicit = computeImplicitCoin(protocolParameters, { certificates: tx.body.certificates, withdrawals: tx.body.withdrawals }, rewardAccounts || []);
|
|
43
|
+
const collateral = await getCollateral(tx, inputResolver, addresses);
|
|
44
|
+
const totalOutputValue = await totalAddressOutputsValueInspector(addresses)(tx);
|
|
45
|
+
const totalInputValue = await totalAddressInputsValueInspector(addresses, inputResolver)(tx);
|
|
46
|
+
const implicitCoin = (implicit.withdrawals || 0n) + (implicit.reclaimDeposit || 0n) - (implicit.deposit || 0n);
|
|
47
|
+
const implicitAssets = await getImplicitAssets(tx);
|
|
48
|
+
const diff = {
|
|
49
|
+
assets: subtractTokenMaps([totalOutputValue.assets, totalInputValue.assets]),
|
|
50
|
+
coins: totalOutputValue.coins - totalInputValue.coins
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
assets: diff.assets ?? new Map(),
|
|
54
|
+
coins: diff.coins,
|
|
55
|
+
collateral,
|
|
56
|
+
deposit: implicit.deposit || 0n,
|
|
57
|
+
fee,
|
|
58
|
+
returnedDeposit: implicit.reclaimDeposit || 0n,
|
|
59
|
+
unresolved: {
|
|
60
|
+
inputs: resolvedInputs.unresolvedInputs,
|
|
61
|
+
value: await getUnaccountedFunds(tx, resolvedInputs, implicitCoin, implicitAssets)
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=transactionSummaryInspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionSummaryInspector.js","sourceRoot":"","sources":["../../../src/util/transactionSummaryInspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { AssetFingerprint, AssetName, Certificate, CertificateType,
|
|
2
|
-
import { PaymentAddress, RewardAccount } from '../Cardano';
|
|
3
|
-
declare type Inspector<Inspection> = (tx:
|
|
4
|
-
declare type Inspectors = {
|
|
1
|
+
import { AssetFingerprint, AssetName, Certificate, CertificateType, HydratedTxIn, Lovelace, Metadatum, PolicyId, PoolRegistrationCertificate, PoolRetirementCertificate, Script, StakeAddressCertificate, StakeDelegationCertificate, Tx, TxIn, TxOut, Value } from '../Cardano/types';
|
|
2
|
+
import { InputResolver, PaymentAddress, RewardAccount } from '../Cardano';
|
|
3
|
+
export declare type Inspector<Inspection> = (tx: Tx) => Promise<Inspection>;
|
|
4
|
+
export declare type Inspectors = {
|
|
5
5
|
[k: string]: Inspector<unknown>;
|
|
6
6
|
};
|
|
7
|
-
declare type TxInspector<T extends Inspectors> = (tx:
|
|
8
|
-
[k in keyof T]: ReturnType<T[k]
|
|
9
|
-
}
|
|
7
|
+
export declare type TxInspector<T extends Inspectors> = (tx: Tx) => Promise<{
|
|
8
|
+
[k in keyof T]: Awaited<ReturnType<T[k]>>;
|
|
9
|
+
}>;
|
|
10
10
|
export declare type SendReceiveValueInspection = Value;
|
|
11
11
|
export declare type DelegationInspection = StakeDelegationCertificate[];
|
|
12
12
|
export declare type StakeRegistrationInspection = StakeAddressCertificate[];
|
|
@@ -30,9 +30,10 @@ export declare type MetadataInspection = Metadatum;
|
|
|
30
30
|
interface SentInspectorArgs {
|
|
31
31
|
addresses?: PaymentAddress[];
|
|
32
32
|
rewardAccounts?: RewardAccount[];
|
|
33
|
+
inputResolver: InputResolver;
|
|
33
34
|
}
|
|
34
35
|
export declare type SentInspector = (args: SentInspectorArgs) => Inspector<SentInspection>;
|
|
35
|
-
export declare type TotalAddressInputsValueInspector = (ownAddresses: PaymentAddress[],
|
|
36
|
+
export declare type TotalAddressInputsValueInspector = (ownAddresses: PaymentAddress[], inputResolver: InputResolver) => Inspector<SendReceiveValueInspection>;
|
|
36
37
|
export declare type SendReceiveValueInspector = (ownAddresses: PaymentAddress[]) => Inspector<SendReceiveValueInspection>;
|
|
37
38
|
export declare type DelegationInspector = Inspector<DelegationInspection>;
|
|
38
39
|
export declare type StakeRegistrationInspector = Inspector<StakeRegistrationInspection>;
|
|
@@ -42,8 +43,15 @@ export declare type AssetsMintedInspector = Inspector<AssetsMintedInspection>;
|
|
|
42
43
|
export declare type MetadataInspector = Inspector<MetadataInspection>;
|
|
43
44
|
export declare type PoolRegistrationInspector = Inspector<PoolRegistrationInspection>;
|
|
44
45
|
export declare type PoolRetirementInspector = Inspector<PoolRetirementInspection>;
|
|
46
|
+
declare type ResolvedInput = TxIn & TxOut;
|
|
47
|
+
export declare type ResolutionResult = {
|
|
48
|
+
resolvedInputs: ResolvedInput[];
|
|
49
|
+
unresolvedInputs: TxIn[];
|
|
50
|
+
};
|
|
51
|
+
export declare const resolveInputs: (txIns: TxIn[], inputResolver: InputResolver) => Promise<ResolutionResult>;
|
|
45
52
|
export declare const totalAddressInputsValueInspector: TotalAddressInputsValueInspector;
|
|
46
53
|
export declare const totalAddressOutputsValueInspector: SendReceiveValueInspector;
|
|
54
|
+
export declare const getCertificatesByType: (tx: Tx, rewardAccounts: RewardAccount[], certificateTypes?: CertificateType[]) => Certificate[];
|
|
47
55
|
export declare const signedCertificatesInspector: SignedCertificatesInspector;
|
|
48
56
|
export declare const sentInspector: SentInspector;
|
|
49
57
|
export declare const valueSentInspector: TotalAddressInputsValueInspector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txInspector.d.ts","sourceRoot":"","sources":["../../../src/util/txInspector.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAEhB,SAAS,EACT,WAAW,EACX,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"txInspector.d.ts","sourceRoot":"","sources":["../../../src/util/txInspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,44 @@
|
|
|
1
1
|
import * as Crypto from '@cardano-sdk/crypto';
|
|
2
2
|
import { AssetFingerprint, AssetId, CertificateType, ScriptType } from '../Cardano/types';
|
|
3
3
|
import { BigIntMath } from '@cardano-sdk/util';
|
|
4
|
-
import { RewardAccount,
|
|
4
|
+
import { RewardAccount, isAddressWithin } from '../Cardano';
|
|
5
5
|
import { coalesceValueQuantities } from './coalesceValueQuantities';
|
|
6
6
|
import { nativeScriptPolicyId } from './nativeScript';
|
|
7
7
|
import { removeNegativesFromTokenMap } from '../Asset/util';
|
|
8
|
-
import { resolveInputValue } from '../Cardano/util/resolveInputValue';
|
|
9
8
|
import { subtractValueQuantities } from './subtractValueQuantities';
|
|
10
|
-
export const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
.
|
|
9
|
+
export const resolveInputs = async (txIns, inputResolver) => {
|
|
10
|
+
const resolvedInputs = [];
|
|
11
|
+
const unresolvedInputs = [];
|
|
12
|
+
for (const input of txIns) {
|
|
13
|
+
const resolvedInput = await inputResolver.resolveInput(input);
|
|
14
|
+
if (resolvedInput) {
|
|
15
|
+
resolvedInputs.push({
|
|
16
|
+
address: resolvedInput.address,
|
|
17
|
+
index: input.index,
|
|
18
|
+
txId: input.txId,
|
|
19
|
+
value: resolvedInput.value
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
unresolvedInputs.push(input);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
resolvedInputs,
|
|
28
|
+
unresolvedInputs
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export const totalAddressInputsValueInspector = (ownAddresses, inputResolver) => async (tx) => {
|
|
32
|
+
const { resolvedInputs } = await resolveInputs(tx.body.inputs, inputResolver);
|
|
33
|
+
const receivedInputs = resolvedInputs.filter((input) => isAddressWithin(ownAddresses)(input));
|
|
34
|
+
const receivedInputsValues = receivedInputs.map((input) => input.value);
|
|
15
35
|
return coalesceValueQuantities(receivedInputsValues);
|
|
16
36
|
};
|
|
17
|
-
export const totalAddressOutputsValueInspector = (ownAddresses) => (tx) => {
|
|
37
|
+
export const totalAddressOutputsValueInspector = (ownAddresses) => async (tx) => {
|
|
18
38
|
const receivedOutputs = tx.body.outputs.filter((out) => isAddressWithin(ownAddresses)(out));
|
|
19
39
|
return coalesceValueQuantities(receivedOutputs.map((output) => output.value));
|
|
20
40
|
};
|
|
21
|
-
export const
|
|
41
|
+
export const getCertificatesByType = (tx, rewardAccounts, certificateTypes) => {
|
|
22
42
|
if (!tx.body.certificates || tx.body.certificates.length === 0)
|
|
23
43
|
return [];
|
|
24
44
|
const certificates = certificateTypes
|
|
@@ -34,16 +54,26 @@ export const signedCertificatesInspector = (rewardAccounts, certificateTypes) =>
|
|
|
34
54
|
return false;
|
|
35
55
|
});
|
|
36
56
|
};
|
|
37
|
-
export const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
57
|
+
export const signedCertificatesInspector = (rewardAccounts, certificateTypes) => async (tx) => getCertificatesByType(tx, rewardAccounts, certificateTypes);
|
|
58
|
+
export const sentInspector = ({ addresses, rewardAccounts, inputResolver }) => async (tx) => {
|
|
59
|
+
const certificates = rewardAccounts?.length ? await signedCertificatesInspector(rewardAccounts)(tx) : [];
|
|
60
|
+
let inputs = [];
|
|
61
|
+
if (addresses) {
|
|
62
|
+
const { resolvedInputs } = await resolveInputs(tx.body.inputs, inputResolver);
|
|
63
|
+
const sentInputs = resolvedInputs.filter((input) => isAddressWithin(addresses)(input));
|
|
64
|
+
inputs = sentInputs.map((input) => ({ address: input.address, index: input.index, txId: input.txId }));
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
certificates,
|
|
68
|
+
inputs
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
export const valueSentInspector = (ownAddresses, inputResolver) => async (tx) => {
|
|
42
72
|
let assets = new Map();
|
|
43
|
-
if (sentInspector({ addresses: ownAddresses })(tx).inputs.length === 0)
|
|
73
|
+
if ((await sentInspector({ addresses: ownAddresses, inputResolver })(tx)).inputs.length === 0)
|
|
44
74
|
return { coins: 0n };
|
|
45
|
-
const totalOutputValue = totalAddressOutputsValueInspector(ownAddresses)(tx);
|
|
46
|
-
const totalInputValue = totalAddressInputsValueInspector(ownAddresses,
|
|
75
|
+
const totalOutputValue = await totalAddressOutputsValueInspector(ownAddresses)(tx);
|
|
76
|
+
const totalInputValue = await totalAddressInputsValueInspector(ownAddresses, inputResolver)(tx);
|
|
47
77
|
const diff = subtractValueQuantities([totalInputValue, totalOutputValue]);
|
|
48
78
|
if (diff.assets)
|
|
49
79
|
assets = removeNegativesFromTokenMap(diff.assets);
|
|
@@ -52,10 +82,10 @@ export const valueSentInspector = (ownAddresses, historicalTxs) => (tx) => {
|
|
|
52
82
|
coins: diff.coins < 0n ? 0n : diff.coins
|
|
53
83
|
};
|
|
54
84
|
};
|
|
55
|
-
export const valueReceivedInspector = (ownAddresses,
|
|
85
|
+
export const valueReceivedInspector = (ownAddresses, inputResolver) => async (tx) => {
|
|
56
86
|
let assets = new Map();
|
|
57
|
-
const totalOutputValue = totalAddressOutputsValueInspector(ownAddresses)(tx);
|
|
58
|
-
const totalInputValue = totalAddressInputsValueInspector(ownAddresses,
|
|
87
|
+
const totalOutputValue = await totalAddressOutputsValueInspector(ownAddresses)(tx);
|
|
88
|
+
const totalInputValue = await totalAddressInputsValueInspector(ownAddresses, inputResolver)(tx);
|
|
59
89
|
const diff = subtractValueQuantities([totalOutputValue, totalInputValue]);
|
|
60
90
|
if (diff.assets)
|
|
61
91
|
assets = removeNegativesFromTokenMap(diff.assets);
|
|
@@ -64,14 +94,14 @@ export const valueReceivedInspector = (ownAddresses, historicalTxs) => (tx) => {
|
|
|
64
94
|
coins: diff.coins < 0n ? 0n : diff.coins
|
|
65
95
|
};
|
|
66
96
|
};
|
|
67
|
-
const certificateInspector = (type) => (tx) => tx.body.certificates?.filter((cert) => cert.__typename === type) ?? [];
|
|
97
|
+
const certificateInspector = (type) => async (tx) => tx.body.certificates?.filter((cert) => cert.__typename === type) ?? [];
|
|
68
98
|
export const delegationInspector = certificateInspector(CertificateType.StakeDelegation);
|
|
69
99
|
export const stakeKeyDeregistrationInspector = certificateInspector(CertificateType.StakeDeregistration);
|
|
70
100
|
export const stakeKeyRegistrationInspector = certificateInspector(CertificateType.StakeRegistration);
|
|
71
101
|
export const poolRegistrationInspector = certificateInspector(CertificateType.PoolRegistration);
|
|
72
102
|
export const poolRetirementInspector = certificateInspector(CertificateType.PoolRetirement);
|
|
73
|
-
export const withdrawalInspector = (tx) => tx.body.withdrawals?.length ? BigIntMath.sum(tx.body.withdrawals.map(({ quantity }) => quantity)) : 0n;
|
|
74
|
-
export const mintInspector = (matchQuantityCriteria) => (tx) => {
|
|
103
|
+
export const withdrawalInspector = async (tx) => tx.body.withdrawals?.length ? BigIntMath.sum(tx.body.withdrawals.map(({ quantity }) => quantity)) : 0n;
|
|
104
|
+
export const mintInspector = (matchQuantityCriteria) => async (tx) => {
|
|
75
105
|
const assets = [];
|
|
76
106
|
const scriptMap = new Map();
|
|
77
107
|
if (!tx.body.mint)
|
|
@@ -106,10 +136,15 @@ export const mintInspector = (matchQuantityCriteria) => (tx) => {
|
|
|
106
136
|
};
|
|
107
137
|
export const assetsMintedInspector = mintInspector((quantity) => quantity > 0);
|
|
108
138
|
export const assetsBurnedInspector = mintInspector((quantity) => quantity < 0);
|
|
109
|
-
export const metadataInspector = (tx) => tx.auxiliaryData?.blob ?? new Map();
|
|
110
|
-
export const createTxInspector = (inspectors) => (tx) =>
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
139
|
+
export const metadataInspector = async (tx) => tx.auxiliaryData?.blob ?? new Map();
|
|
140
|
+
export const createTxInspector = (inspectors) => async (tx) => {
|
|
141
|
+
const results = await Promise.all(Object.entries(inspectors).map(async ([key, inspector]) => {
|
|
142
|
+
const result = await inspector(tx);
|
|
143
|
+
return { key, result };
|
|
144
|
+
}));
|
|
145
|
+
return results.reduce((acc, { key, result }) => {
|
|
146
|
+
acc[key] = result;
|
|
147
|
+
return acc;
|
|
148
|
+
}, {});
|
|
149
|
+
};
|
|
115
150
|
//# sourceMappingURL=txInspector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txInspector.js","sourceRoot":"","sources":["../../../src/util/txInspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,OAAO,EAGP,eAAe,
|
|
1
|
+
{"version":3,"file":"txInspector.js","sourceRoot":"","sources":["../../../src/util/txInspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,OAAO,EAGP,eAAe,EAQf,UAAU,EAQX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAiC,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAwEpE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,aAA4B,EAA6B,EAAE;IAC5G,MAAM,cAAc,GAAoB,EAAE,CAAC;IAC3C,MAAM,gBAAgB,GAAW,EAAE,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;QACzB,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE9D,IAAI,aAAa,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC;gBAClB,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,aAAa,CAAC,KAAK;aAC3B,CAAC,CAAC;SACJ;aAAM;YACL,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;IAED,OAAO;QACL,cAAc;QACd,gBAAgB;KACjB,CAAC;AACJ,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,gCAAgC,GAC3C,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;IAC5C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE9E,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9F,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAExE,OAAO,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AACvD,CAAC,CAAC;AASJ,MAAM,CAAC,MAAM,iCAAiC,GAA8B,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;IACzG,MAAM,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5F,OAAO,uBAAuB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,EAAM,EACN,cAA+B,EAC/B,gBAAoC,EACpC,EAAE;IACF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1E,MAAM,YAAY,GAAG,gBAAgB;QACnC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAClG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;IAEzB,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;QACzC,IAAI,iBAAiB,IAAI,WAAW,IAAI,WAAW,CAAC,eAAe,EAAE;YACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5E,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;SACrF;QAED,IAAI,gBAAgB,IAAI,WAAW;YAAE,OAAO,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC9G,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,2BAA2B,GACtC,CAAC,cAA+B,EAAE,gBAAoC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CACtF,qBAAqB,CAAC,EAAE,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAMhE,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,EAAE,CACjD,KAAK,EAAE,EAAE,EAAE,EAAE;IACX,MAAM,YAAY,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,2BAA2B,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,IAAI,MAAM,GAAmB,EAAE,CAAC;IAEhC,IAAI,SAAS,EAAE;QACb,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KACxG;IAED,OAAO;QACL,YAAY;QACZ,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AASJ,MAAM,CAAC,MAAM,kBAAkB,GAAqC,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;IAChH,IAAI,MAAM,GAAa,IAAI,GAAG,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEpH,MAAM,gBAAgB,GAAG,MAAM,iCAAiC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,MAAM,gCAAgC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE1E,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;KACzC,CAAC;AACJ,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,sBAAsB,GAAqC,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;IACpH,IAAI,MAAM,GAAa,IAAI,GAAG,EAAE,CAAC;IACjC,MAAM,gBAAgB,GAAG,MAAM,iCAAiC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,MAAM,gCAAgC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC;IAE1E,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;KACzC,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,oBAAoB,GACxB,CAGE,IAAqB,EACP,EAAE,CAClB,KAAK,EAAE,EAAE,EAAE,EAAE,CACV,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAO,IAAI,EAAE,CAAC;AAQlF,MAAM,CAAC,MAAM,mBAAmB,GAAwB,oBAAoB,CAC1E,eAAe,CAAC,eAAe,CAChC,CAAC;AAQF,MAAM,CAAC,MAAM,+BAA+B,GAC1C,oBAAoB,CAA8B,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAQzF,MAAM,CAAC,MAAM,6BAA6B,GACxC,oBAAoB,CAA8B,eAAe,CAAC,iBAAiB,CAAC,CAAC;AAQvF,MAAM,CAAC,MAAM,yBAAyB,GAA8B,oBAAoB,CACtF,eAAe,CAAC,gBAAgB,CACjC,CAAC;AAQF,MAAM,CAAC,MAAM,uBAAuB,GAA4B,oBAAoB,CAClF,eAAe,CAAC,cAAc,CAC/B,CAAC;AAQF,MAAM,CAAC,MAAM,mBAAmB,GAAwB,KAAK,EAAE,EAAE,EAAE,EAAE,CACnE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAkBzG,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,qBAA4C,EAAyB,EAAE,CACxE,KAAK,EAAE,EAAE,EAAE,EAAE;IACX,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAE5B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAMjC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAEvF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,QAAQ,MAAM,CAAC,MAAM,EAAE;YACrB,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBACtC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAChC,MAAM;aACP;YACD,KAAK,UAAU,CAAC,MAAM,CAAC;YACvB,QAAQ;SAET;KACF;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAK,CAAC,OAAO,EAAE,EAAE;QAClD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpF,MAAM,WAAW,GAAgB;YAC/B,SAAS;YACT,WAAW,EAAE,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC5D,QAAQ;YACR,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;SAChC,CAAC;QAEF,IAAI,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC3E;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,qBAAqB,GAA0B,aAAa,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAG9G,MAAM,CAAC,MAAM,qBAAqB,GAA0B,aAAa,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAO9G,MAAM,CAAC,MAAM,iBAAiB,GAAsB,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAOtG,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAuB,UAAa,EAAkB,EAAE,CACxD,KAAK,EAAE,EAAE,EAAE,EAAE;IACX,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QAC7C,GAAG,CAAC,GAAc,CAAC,GAAG,MAAyC,CAAC;QAChE,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAmD,CAAC,CAAC;AAC1D,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cardano-sdk/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "Core types and libraries for Cardano",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16.20.2"
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@cardano-ogmios/client": "5.6.0",
|
|
59
59
|
"@cardano-ogmios/schema": "5.6.0",
|
|
60
|
-
"@cardano-sdk/crypto": "~0.1.
|
|
61
|
-
"@cardano-sdk/util": "~0.
|
|
60
|
+
"@cardano-sdk/crypto": "~0.1.20",
|
|
61
|
+
"@cardano-sdk/util": "~0.15.0",
|
|
62
62
|
"@foxglove/crc": "^0.0.3",
|
|
63
63
|
"@scure/base": "^1.1.1",
|
|
64
64
|
"fraction.js": "4.0.1",
|
|
@@ -74,5 +74,5 @@
|
|
|
74
74
|
"LICENSE",
|
|
75
75
|
"NOTICE"
|
|
76
76
|
],
|
|
77
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "17887140f948a61653e01c781c7aa6e3e40d9e38"
|
|
78
78
|
}
|