@cardano-sdk/core 0.23.0 → 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/CardanoNode/util/cardanoNodeErrors.d.ts.map +1 -1
- package/dist/cjs/CardanoNode/util/cardanoNodeErrors.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/slotCalc.d.ts.map +1 -1
- package/dist/cjs/util/slotCalc.js +10 -4
- package/dist/cjs/util/slotCalc.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/CardanoNode/util/cardanoNodeErrors.d.ts.map +1 -1
- package/dist/esm/CardanoNode/util/cardanoNodeErrors.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/slotCalc.d.ts.map +1 -1
- package/dist/esm/util/slotCalc.js +10 -4
- package/dist/esm/util/slotCalc.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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotCalc.d.ts","sourceRoot":"","sources":["../../../src/util/slotCalc.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAMtE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD,oBAAY,eAAe,GAAG;KAAG,GAAG,IAAI,aAAa,GAAG,UAAU,EAAE;CAAE,CAAC;AAkCvE,eAAO,MAAM,mBAAmB,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,OAUnF,CAAC;AAKF,eAAO,MAAM,kBAAkB,iBAAkB,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"slotCalc.d.ts","sourceRoot":"","sources":["../../../src/util/slotCalc.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAMtE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD,oBAAY,eAAe,GAAG;KAAG,GAAG,IAAI,aAAa,GAAG,UAAU,EAAE;CAAE,CAAC;AAkCvE,eAAO,MAAM,mBAAmB,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,OAUnF,CAAC;AAKF,eAAO,MAAM,kBAAkB,iBAAkB,UAAU,EAAE,cAQ3C,IAAI,KAAG,IAUxB,CAAC;AAKF,eAAO,MAAM,uBAAuB,iBAAkB,UAAU,EAAE,YAOlD,IAAI,KAAG,SAmBtB,CAAC;AA2CF,eAAO,MAAM,cAAc,aAlCoB,OAAO,gBAAgB,UAAU,EAAE;;;;sCAkCf,CAAC;AAQpE,eAAO,MAAM,qBAAqB,cAAsB,mBAAmB,gBACjD,OAAO;;;;4EAChC,CAAC;AAMF,oBAAY,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAMjE,oBAAY,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMnE,oBAAY,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -30,7 +30,8 @@ export const createSlotEpochCalc = memoize((eraSummaries) => {
|
|
|
30
30
|
return (slotNo) => EpochNo(calc(slotNo).epochNo);
|
|
31
31
|
});
|
|
32
32
|
export const createSlotTimeCalc = (eraSummaries) => {
|
|
33
|
-
const
|
|
33
|
+
const eraSummariesWithoutSkippedEras = Object.values(groupBy(eraSummaries, 'start.slot')).map(last);
|
|
34
|
+
const eraSummariesDesc = orderBy(eraSummariesWithoutSkippedEras, ({ start }) => start.slot, 'desc');
|
|
34
35
|
return (slotNo) => {
|
|
35
36
|
const activeEraSummary = eraSummariesDesc.find(({ start }) => start.slot <= slotNo);
|
|
36
37
|
if (!activeEraSummary) {
|
|
@@ -67,12 +68,17 @@ const epochSlotsCalcImplementation = (epochNo, eraSummaries) => {
|
|
|
67
68
|
let atSlot = eraSummaries[0].start.slot;
|
|
68
69
|
let eraSummaryIdx = 0;
|
|
69
70
|
const maxEraSummaryIdx = eraSummaries.length - 1;
|
|
71
|
+
const checkNextEraSummary = () => eraSummaryIdx < maxEraSummaryIdx && atSlot >= eraSummaries[eraSummaryIdx + 1].start.slot;
|
|
72
|
+
const findNextEraSummary = () => {
|
|
73
|
+
while (checkNextEraSummary())
|
|
74
|
+
eraSummaryIdx++;
|
|
75
|
+
};
|
|
76
|
+
findNextEraSummary();
|
|
70
77
|
while (atEpoch !== epochNo) {
|
|
71
78
|
atSlot += eraSummaries[eraSummaryIdx].parameters.epochLength;
|
|
72
79
|
atEpoch++;
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
}
|
|
80
|
+
if (checkNextEraSummary())
|
|
81
|
+
findNextEraSummary();
|
|
76
82
|
}
|
|
77
83
|
const eraSummary = eraSummaries[eraSummaryIdx];
|
|
78
84
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotCalc.js","sourceRoot":"","sources":["../../../src/util/slotCalc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAiB,IAAI,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAarC,MAAM,OAAO,eAAgB,SAAQ,WAAW;CAAG;AAInD,MAAM,uBAAuB,GAAG,CAAC,YAA0B,EAAE,EAAE;IAK7D,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAiB,CAAC;IACpH,MAAM,eAAe,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3F,OAAO,CAAC,MAAY,EAAE,EAAE;QACtB,MAAM,uBAAuB,GAAG,OAAO,CACrC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,EAC3D,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAC1B,CAAC;QACF,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,MAAM,IAAI,eAAe,CAAC,0BAA0B,MAAM,QAAQ,CAAC,CAAC;SACrE;QACD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,iBAA6B,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvD,iBAAiB,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,cAAc,GAA2B,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9E,OAAO,IAAI,IAAI,CAAC,KAAK,CACnB,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;gBACrE,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAC3C,CAAC;SACH;QACD,OAAO,EAAE,eAAe,EAAE,iBAAkB,EAAE,OAAO,EAAE,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,mBAAmB,GAA8D,OAAO,CACnG,CAAC,YAA0B,EAAE,EAAE;IAC7B,MAAM,IAAI,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAMnD,OAAO,CAAC,MAAY,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAClE,CAAC,CACF,CAAC;AAKF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,YAA0B,EAAE,EAAE;IAC/D,MAAM,
|
|
1
|
+
{"version":3,"file":"slotCalc.js","sourceRoot":"","sources":["../../../src/util/slotCalc.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"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"}
|
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
|
}
|