@cardano-sdk/cardano-services-client 0.15.0 → 0.16.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/TxSubmitProvider/TxSubmitApiProvider.d.ts.map +1 -1
- package/dist/cjs/TxSubmitProvider/TxSubmitApiProvider.js +2 -1
- package/dist/cjs/TxSubmitProvider/TxSubmitApiProvider.js.map +1 -1
- package/dist/cjs/TxSubmitProvider/cardanoTxSubmitErrorMapper.d.ts +3 -0
- package/dist/cjs/TxSubmitProvider/cardanoTxSubmitErrorMapper.d.ts.map +1 -0
- package/dist/cjs/TxSubmitProvider/cardanoTxSubmitErrorMapper.js +23 -0
- package/dist/cjs/TxSubmitProvider/cardanoTxSubmitErrorMapper.js.map +1 -0
- package/dist/cjs/TxSubmitProvider/txSubmitHttpProvider.d.ts.map +1 -1
- package/dist/cjs/TxSubmitProvider/txSubmitHttpProvider.js +24 -15
- package/dist/cjs/TxSubmitProvider/txSubmitHttpProvider.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/TxSubmitProvider/TxSubmitApiProvider.d.ts.map +1 -1
- package/dist/esm/TxSubmitProvider/TxSubmitApiProvider.js +2 -1
- package/dist/esm/TxSubmitProvider/TxSubmitApiProvider.js.map +1 -1
- package/dist/esm/TxSubmitProvider/cardanoTxSubmitErrorMapper.d.ts +3 -0
- package/dist/esm/TxSubmitProvider/cardanoTxSubmitErrorMapper.d.ts.map +1 -0
- package/dist/esm/TxSubmitProvider/cardanoTxSubmitErrorMapper.js +19 -0
- package/dist/esm/TxSubmitProvider/cardanoTxSubmitErrorMapper.js.map +1 -0
- package/dist/esm/TxSubmitProvider/txSubmitHttpProvider.d.ts.map +1 -1
- package/dist/esm/TxSubmitProvider/txSubmitHttpProvider.js +25 -16
- package/dist/esm/TxSubmitProvider/txSubmitHttpProvider.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/package.json +6 -6
- package/package.json +6 -6
package/dist/cjs/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TxSubmitApiProvider.d.ts","sourceRoot":"","sources":["../../../src/TxSubmitProvider/TxSubmitApiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,YAAY,EAAc,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"TxSubmitApiProvider.d.ts","sourceRoot":"","sources":["../../../src/TxSubmitProvider/TxSubmitApiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,YAAY,EAAc,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,qBAAa,mBAAoB,YAAW,gBAAgB;;gBAM9C,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,SAAmB;IAM7E,QAAQ,CAAC,EAAE,iBAAiB,EAAE,EAAE,YAAY;IAkClD,WAAW;;;CAGZ"}
|
|
@@ -12,6 +12,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
12
12
|
var _TxSubmitApiProvider_axios, _TxSubmitApiProvider_healthStatus, _TxSubmitApiProvider_logger, _TxSubmitApiProvider_path;
|
|
13
13
|
import { Cardano, ProviderError, ProviderFailure, TxBodyCBOR } from '@cardano-sdk/core';
|
|
14
14
|
import { hexStringToBuffer } from '@cardano-sdk/util';
|
|
15
|
+
import { mapCardanoTxSubmitError } from './cardanoTxSubmitErrorMapper';
|
|
15
16
|
import axios from 'axios';
|
|
16
17
|
export class TxSubmitApiProvider {
|
|
17
18
|
constructor(submitApiBaseUrl, logger, submitApiPath = '/api/submit/tx') {
|
|
@@ -45,7 +46,7 @@ export class TxSubmitApiProvider {
|
|
|
45
46
|
const { data, status } = error.response;
|
|
46
47
|
if (typeof status === 'number' && status >= 400 && status < 500)
|
|
47
48
|
__classPrivateFieldSet(this, _TxSubmitApiProvider_healthStatus, true, "f");
|
|
48
|
-
throw new ProviderError(ProviderFailure.BadRequest,
|
|
49
|
+
throw new ProviderError(ProviderFailure.BadRequest, mapCardanoTxSubmitError(data), data);
|
|
49
50
|
}
|
|
50
51
|
throw new ProviderError(ProviderFailure.Unknown, error, 'submitting tx');
|
|
51
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TxSubmitApiProvider.js","sourceRoot":"","sources":["../../../src/TxSubmitProvider/TxSubmitApiProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAgB,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AAExH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,MAAM,OAAO,mBAAmB;IAM9B,YAAY,gBAAqB,EAAE,MAAc,EAAE,aAAa,GAAG,gBAAgB;QALnF,6CAAsB;QACtB,4CAAgB,IAAI,EAAC;QACrB,8CAAgB;QAChB,4CAAc;QAGZ,uBAAA,IAAI,8BAAU,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,MAAA,CAAC;QACjE,uBAAA,IAAI,+BAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,6BAAS,aAAa,MAAA,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAgB;QAChD,IAAI,IAAuC,CAAC;QAE5C,IAAI;YACF,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAEtF,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,iBAAiB,IAAI,MAAM,CAAC,CAAC;YAEhD,MAAM,uBAAA,IAAI,kCAAO,MAAX,IAAI,EAAQ;gBAChB,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;gBAC1C,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,uBAAA,IAAI,iCAAM;aAChB,CAAC,CAAC;YAEH,uBAAA,IAAI,qCAAiB,IAAI,MAAA,CAAC;YAC1B,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;SAC5C;QAAC,OAAO,KAAK,EAAE;YACd,uBAAA,IAAI,qCAAiB,KAAK,MAAA,CAAC;YAC3B,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC;YAClD,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE1B,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAC/C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAExC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;oBAAE,uBAAA,IAAI,qCAAiB,IAAI,MAAA,CAAC;gBAE3F,MAAM,IAAI,aAAa,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE,IAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"TxSubmitApiProvider.js","sourceRoot":"","sources":["../../../src/TxSubmitProvider/TxSubmitApiProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAgB,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AAExH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,MAAM,OAAO,mBAAmB;IAM9B,YAAY,gBAAqB,EAAE,MAAc,EAAE,aAAa,GAAG,gBAAgB;QALnF,6CAAsB;QACtB,4CAAgB,IAAI,EAAC;QACrB,8CAAgB;QAChB,4CAAc;QAGZ,uBAAA,IAAI,8BAAU,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,MAAA,CAAC;QACjE,uBAAA,IAAI,+BAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,6BAAS,aAAa,MAAA,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAgB;QAChD,IAAI,IAAuC,CAAC;QAE5C,IAAI;YACF,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAEtF,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,iBAAiB,IAAI,MAAM,CAAC,CAAC;YAEhD,MAAM,uBAAA,IAAI,kCAAO,MAAX,IAAI,EAAQ;gBAChB,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;gBAC1C,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,uBAAA,IAAI,iCAAM;aAChB,CAAC,CAAC;YAEH,uBAAA,IAAI,qCAAiB,IAAI,MAAA,CAAC;YAC1B,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;SAC5C;QAAC,OAAO,KAAK,EAAE;YACd,uBAAA,IAAI,qCAAiB,KAAK,MAAA,CAAC;YAC3B,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC;YAClD,uBAAA,IAAI,mCAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE1B,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAC/C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAExC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;oBAAE,uBAAA,IAAI,qCAAiB,IAAI,MAAA,CAAC;gBAE3F,MAAM,IAAI,aAAa,CAAC,eAAe,CAAC,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAc,CAAC,CAAC;aACpG;YAED,MAAM,IAAI,aAAa,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;SAC1E;IACH,CAAC;IAED,WAAW;QACT,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,uBAAA,IAAI,yCAAc,EAAE,CAAC,CAAC;IACrD,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardanoTxSubmitErrorMapper.d.ts","sourceRoot":"","sources":["../../../src/TxSubmitProvider/cardanoTxSubmitErrorMapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,mBAAmB,CAAC;AAE7E,eAAO,MAAM,uBAAuB,cAAe,OAAO,KAAG,iBAAiB,GAAG,IAgBhF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TxSubmissionError, TxSubmissionErrorCode } from '@cardano-sdk/core';
|
|
2
|
+
export const mapCardanoTxSubmitError = (errorData) => {
|
|
3
|
+
if (typeof errorData === 'string') {
|
|
4
|
+
if (/outsideofvalidity/i.test(errorData)) {
|
|
5
|
+
return new TxSubmissionError(TxSubmissionErrorCode.OutsideOfValidityInterval, null, errorData);
|
|
6
|
+
}
|
|
7
|
+
if (/valuenotconserved/i.test(errorData)) {
|
|
8
|
+
return new TxSubmissionError(TxSubmissionErrorCode.ValueNotConserved, null, errorData);
|
|
9
|
+
}
|
|
10
|
+
if (/nonadacollateral/i.test(errorData)) {
|
|
11
|
+
return new TxSubmissionError(TxSubmissionErrorCode.NonAdaCollateral, null, errorData);
|
|
12
|
+
}
|
|
13
|
+
if (/incompletewithdrawals/i.test(errorData)) {
|
|
14
|
+
return new TxSubmissionError(TxSubmissionErrorCode.IncompleteWithdrawals, null, errorData);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=cardanoTxSubmitErrorMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cardanoTxSubmitErrorMapper.js","sourceRoot":"","sources":["../../../src/TxSubmitProvider/cardanoTxSubmitErrorMapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAAkB,EAA4B,EAAE;IACtF,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxC,OAAO,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,yBAAyB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SAChG;QACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxC,OAAO,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SACxF;QACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACvC,OAAO,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SACvF;QACD,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5C,OAAO,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SAC5F;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txSubmitHttpProvider.d.ts","sourceRoot":"","sources":["../../../src/TxSubmitProvider/txSubmitHttpProvider.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"txSubmitHttpProvider.d.ts","sourceRoot":"","sources":["../../../src/TxSubmitProvider/txSubmitHttpProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAUL,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAsB,MAAM,iBAAiB,CAAC;AAuD/E,eAAO,MAAM,oBAAoB,WAAY,yBAAyB,gBAAgB,CAAC,KAAG,gBA+BtF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CardanoNodeUtil, GeneralCardanoNodeError, GeneralCardanoNodeErrorCode, HandleOwnerChangeError, ProviderError, ProviderFailure, TxSubmissionError, reasonToProviderFailure } from '@cardano-sdk/core';
|
|
2
2
|
import { createHttpProvider } from '../HttpProvider';
|
|
3
3
|
import { apiVersion } from '../version';
|
|
4
4
|
import { mapHealthCheckError } from '../mapHealthCheckError';
|
|
@@ -7,22 +7,31 @@ const paths = {
|
|
|
7
7
|
submitTx: '/submit'
|
|
8
8
|
};
|
|
9
9
|
const toTxSubmissionError = (error) => {
|
|
10
|
-
if (typeof error === 'object' &&
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const ErrorClass = CardanoNodeErrors.TxSubmissionErrors[txSubmissionErrorName];
|
|
14
|
-
if (ErrorClass) {
|
|
15
|
-
Object.setPrototypeOf(error, ErrorClass.prototype);
|
|
16
|
-
return error;
|
|
10
|
+
if (typeof error === 'object' && error !== null && typeof error?.message === 'string') {
|
|
11
|
+
if (CardanoNodeUtil.isTxSubmissionErrorCode(error.code)) {
|
|
12
|
+
return Object.setPrototypeOf(error, TxSubmissionError.prototype);
|
|
17
13
|
}
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
if (CardanoNodeUtil.isGeneralCardanoNodeErrorCode(error.code)) {
|
|
15
|
+
return error instanceof GeneralCardanoNodeError
|
|
16
|
+
? error
|
|
17
|
+
: new GeneralCardanoNodeError(error.code, error.data || null, error.message);
|
|
18
|
+
}
|
|
19
|
+
if (error.code === undefined || error.code === null) {
|
|
20
|
+
return new GeneralCardanoNodeError(GeneralCardanoNodeErrorCode.Unknown, error?.data || null, error.message);
|
|
21
21
|
}
|
|
22
|
-
return new CardanoNodeErrors.UnknownTxSubmissionError(error);
|
|
23
22
|
}
|
|
24
23
|
return null;
|
|
25
24
|
};
|
|
25
|
+
const codeToProviderFailure = (code) => {
|
|
26
|
+
switch (code) {
|
|
27
|
+
case GeneralCardanoNodeErrorCode.Unknown:
|
|
28
|
+
return ProviderFailure.Unknown;
|
|
29
|
+
case GeneralCardanoNodeErrorCode.ServerNotReady:
|
|
30
|
+
return ProviderFailure.ServerUnavailable;
|
|
31
|
+
default:
|
|
32
|
+
return ProviderFailure.BadRequest;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
26
35
|
export const txSubmitHttpProvider = (config) => createHttpProvider({
|
|
27
36
|
...config,
|
|
28
37
|
apiVersion: apiVersion.txSubmit,
|
|
@@ -35,15 +44,15 @@ export const txSubmitHttpProvider = (config) => createHttpProvider({
|
|
|
35
44
|
if (typeof error === 'object' && typeof error.innerError === 'object') {
|
|
36
45
|
const txSubmissionError = toTxSubmissionError(error.innerError);
|
|
37
46
|
if (txSubmissionError) {
|
|
38
|
-
|
|
39
|
-
? ProviderFailure.Unknown
|
|
40
|
-
: ProviderFailure.BadRequest;
|
|
41
|
-
throw new ProviderError(failure, txSubmissionError);
|
|
47
|
+
throw new ProviderError(codeToProviderFailure(txSubmissionError.code), txSubmissionError);
|
|
42
48
|
}
|
|
43
49
|
if (error.name === 'HandleOwnerChangeError') {
|
|
44
50
|
Object.setPrototypeOf(error, HandleOwnerChangeError);
|
|
45
51
|
}
|
|
46
52
|
}
|
|
53
|
+
if (error.reason && typeof error.reason === 'string') {
|
|
54
|
+
throw new ProviderError(reasonToProviderFailure(error.reason), error);
|
|
55
|
+
}
|
|
47
56
|
}
|
|
48
57
|
}
|
|
49
58
|
throw new ProviderError(ProviderFailure.Unknown, error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txSubmitHttpProvider.js","sourceRoot":"","sources":["../../../src/TxSubmitProvider/txSubmitHttpProvider.ts"],"names":[],"mappings":"AACA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"txSubmitHttpProvider.js","sourceRoot":"","sources":["../../../src/TxSubmitProvider/txSubmitHttpProvider.ts"],"names":[],"mappings":"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"}
|