@txnod/sdk 1.0.1 → 1.1.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/AGENTS.md +1 -1
- package/CHANGELOG.md +33 -0
- package/dist/_shared/index.d.ts +26 -16
- package/dist/client-sandbox.d.ts +181 -6
- package/dist/client-sandbox.d.ts.map +1 -1
- package/dist/client-sandbox.js +216 -5
- package/dist/client-sandbox.js.map +1 -1
- package/dist/client.d.ts +59 -9
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +58 -6
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +187 -4
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +208 -4
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/internals/error-ctor-map.d.ts +4 -3
- package/dist/internals/error-ctor-map.d.ts.map +1 -1
- package/dist/internals/error-ctor-map.js +5 -1
- package/dist/internals/error-ctor-map.js.map +1 -1
- package/dist/verify/chains/bsc.d.ts +1 -7
- package/dist/verify/chains/bsc.d.ts.map +1 -1
- package/dist/verify/chains/bsc.js +1 -7
- package/dist/verify/chains/bsc.js.map +1 -1
- package/dist/verify/chains/btc.d.ts +1 -8
- package/dist/verify/chains/btc.d.ts.map +1 -1
- package/dist/verify/chains/btc.js +1 -8
- package/dist/verify/chains/btc.js.map +1 -1
- package/dist/verify/chains/cardano.d.ts +6 -13
- package/dist/verify/chains/cardano.d.ts.map +1 -1
- package/dist/verify/chains/cardano.js +6 -13
- package/dist/verify/chains/cardano.js.map +1 -1
- package/dist/verify/chains/evm.d.ts +1 -6
- package/dist/verify/chains/evm.d.ts.map +1 -1
- package/dist/verify/chains/evm.js +8 -7
- package/dist/verify/chains/evm.js.map +1 -1
- package/dist/verify/chains/polygon.d.ts +1 -7
- package/dist/verify/chains/polygon.d.ts.map +1 -1
- package/dist/verify/chains/polygon.js +1 -7
- package/dist/verify/chains/polygon.js.map +1 -1
- package/dist/verify/chains/secp256k1-bip32.d.ts +2 -8
- package/dist/verify/chains/secp256k1-bip32.d.ts.map +1 -1
- package/dist/verify/chains/secp256k1-bip32.js +5 -13
- package/dist/verify/chains/secp256k1-bip32.js.map +1 -1
- package/dist/verify/chains/ton-cell.d.ts.map +1 -1
- package/dist/verify/chains/ton-cell.js +4 -7
- package/dist/verify/chains/ton-cell.js.map +1 -1
- package/dist/verify/chains/ton.d.ts +3 -7
- package/dist/verify/chains/ton.d.ts.map +1 -1
- package/dist/verify/chains/ton.js +1 -3
- package/dist/verify/chains/ton.js.map +1 -1
- package/dist/verify/chains/tron.d.ts +1 -7
- package/dist/verify/chains/tron.d.ts.map +1 -1
- package/dist/verify/chains/tron.js +1 -7
- package/dist/verify/chains/tron.js.map +1 -1
- package/dist/verify/errors.d.ts +6 -8
- package/dist/verify/errors.d.ts.map +1 -1
- package/dist/verify/errors.js +6 -8
- package/dist/verify/errors.js.map +1 -1
- package/dist/verify/index.d.ts +1 -1
- package/dist/verify/index.js +2 -2
- package/dist/verify/index.js.map +1 -1
- package/docs/02-invoices.md +46 -2
- package/docs/04-webhooks.md +4 -1
- package/docs/05-errors.md +24 -4
- package/docs/05-sandbox.md +13 -5
- package/docs/examples/sandbox-vitest-suite.md +2 -2
- package/docs/reference/client.md +39 -2
- package/docs/reference/errors.md +13 -2
- package/docs/reference/types.md +5 -4
- package/package.json +13 -13
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
export const PACKAGE_NAME = '@txnod/sdk';
|
|
12
12
|
/**
|
|
13
13
|
* The current `@txnod/sdk` version string, kept in sync with `package.json`
|
|
14
|
-
* via
|
|
14
|
+
* via a CI guard.
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
17
|
* ```ts
|
|
@@ -19,11 +19,11 @@ export const PACKAGE_NAME = '@txnod/sdk';
|
|
|
19
19
|
* console.log(`@txnod/sdk v${SDK_VERSION}`);
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
export const SDK_VERSION = '1.0
|
|
22
|
+
export const SDK_VERSION = '1.1.0';
|
|
23
23
|
export { TxnodClient, } from './client.js';
|
|
24
24
|
export { getSdkEnv } from './env.js';
|
|
25
25
|
export { TxnodClientSandbox, } from './client-sandbox.js';
|
|
26
|
-
export { TxnodAmountOutOfRangeError, TxnodAuthInvalidError, TxnodCoinNotEnabledError, TxnodEnvironmentUnknownError, TxnodError, TxnodEventNotFoundError, TxnodExternalIdConflictError, TxnodHmacError, TxnodInvalidCoinError, TxnodInvalidStateTransitionError, TxnodInvalidWebhookUrlError, TxnodInvalidXpubFormatError, TxnodInvoiceNotCancellableError, TxnodInvoiceNotFoundError, TxnodKeyRevokedError, TxnodKeySuspendedError, TxnodOrphanAlreadyAttributedError, TxnodOrphanNotFoundError, TxnodPermissionDeniedError, TxnodPoolExhaustedError, TxnodProductionKeyAgainstSandboxProjectError, TxnodProjectNotFoundError, TxnodProjectSuspendedError, TxnodRateLimitError, TxnodSandboxActiveInvoiceCapReachedError, TxnodSandboxDeleteFailedError, TxnodSandboxInvoiceNotFoundError, TxnodSandboxInvoiceTerminalError, TxnodSandboxInvoiceTransitionInvalidError, TxnodSandboxKeyAgainstProductionProjectError, TxnodSandboxKeyInProductionError, TxnodSandboxPerOperatorCapReachedError, TxnodSandboxProjectRequiredError, TxnodProductionProjectRequiredError, TxnodSandboxProvisioningFailedError, TxnodSandboxRateLimitExceededError, TxnodSandboxResetFailedError, TxnodSandboxXpubInProductionError, TxnodServerError, TxnodSignatureFormatError, TxnodSignatureInvalidError, TxnodSignatureReplayedError, TxnodSubscriptionExpiredError, TxnodTimestampError, TxnodTimestampOutOfWindowError, TxnodTonCommentParseFailedError, TxnodTonConnectDomainMismatchError, TxnodTonConnectNetworkMismatchError, TxnodTonConnectPayloadExpiredError, TxnodTonConnectPayloadUnknownError, TxnodTonConnectSignatureInvalidError, TxnodTonConnectTimestampSkewError, TxnodTonConnectUnknownWalletVersionError, TxnodTonInvalidWalletVersionError, TxnodTonJettonResolveFailedError, TxnodTonOperatorWalletNotDeployedError, TxnodTronNoActivatedAddressesError, TxnodValidationError, TxnodWalletHasActiveBindingsError, TxnodWalletKindMismatchError, TxnodWalletNotBoundError, TxnodWalletNotFoundError, TxnodWalletNotOwnedError, TxnodWebhookCapacityExhaustedError, TxnodWebhookPayloadParseError, TxnodXpubNotVerifiedError, } from './errors.js';
|
|
26
|
+
export { TxnodAmountOutOfRangeError, TxnodAuthInvalidError, TxnodCoinNotEnabledError, TxnodEnvironmentUnknownError, TxnodError, TxnodEventNotFoundError, TxnodEventNotResendableError, TxnodExternalIdConflictError, TxnodHmacError, TxnodInvalidCoinError, TxnodInvalidStateTransitionError, TxnodInvalidWebhookUrlError, TxnodInvalidXpubFormatError, TxnodInvoiceNotCancellableError, TxnodInvoiceNotFoundError, TxnodKeyRevokedError, TxnodKeySuspendedError, TxnodOrphanAlreadyAttributedError, TxnodOrphanNotFoundError, TxnodOverlayMatchingModeError, TxnodPermissionDeniedError, TxnodPoolExhaustedError, TxnodProductionKeyAgainstSandboxProjectError, TxnodProjectNotFoundError, TxnodProjectSuspendedError, TxnodRateLimitError, TxnodRateQuoteUnavailableError, TxnodSandboxActiveInvoiceCapReachedError, TxnodSandboxDeleteFailedError, TxnodSandboxInvoiceNotFoundError, TxnodSandboxInvoiceTerminalError, TxnodSandboxInvoiceTransitionInvalidError, TxnodSandboxKeyAgainstProductionProjectError, TxnodSandboxKeyInProductionError, TxnodSandboxPerOperatorCapReachedError, TxnodSandboxProjectRequiredError, TxnodProductionProjectRequiredError, TxnodSandboxProvisioningFailedError, TxnodSandboxRateLimitExceededError, TxnodSandboxResetFailedError, TxnodSandboxXpubInProductionError, TxnodServerError, TxnodSignatureFormatError, TxnodSignatureInvalidError, TxnodSignatureReplayedError, TxnodSubscriptionExpiredError, TxnodTimestampError, TxnodTimestampOutOfWindowError, TxnodTonCommentParseFailedError, TxnodTonConnectDomainMismatchError, TxnodTonConnectNetworkMismatchError, TxnodTonConnectPayloadExpiredError, TxnodTonConnectPayloadUnknownError, TxnodTonConnectSignatureInvalidError, TxnodTonConnectTimestampSkewError, TxnodTonConnectUnknownWalletVersionError, TxnodTonInvalidWalletVersionError, TxnodTonJettonResolveFailedError, TxnodTonOperatorWalletNotDeployedError, TxnodTronNoActivatedAddressesError, TxnodValidationError, TxnodWalletHasActiveBindingsError, TxnodWalletKindMismatchError, TxnodWalletNotBoundError, TxnodWalletNotFoundError, TxnodWalletNotOwnedError, TxnodTxNotFoundError, TxnodTxAlreadyAttributedError, TxnodWebhookCapacityExhaustedError, TxnodWebhookPayloadParseError, TxnodXpubNotVerifiedError, } from './errors.js';
|
|
27
27
|
export { verifyWebhookSignature } from './verify-webhook-signature.js';
|
|
28
28
|
export { verifyAddress } from './verify/index.js';
|
|
29
29
|
export { verifyTonAddress } from './verify/chains/ton.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,YAAqB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAgB,CAAC;AAE5C,OAAO,EACL,WAAW,GAIZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EACL,kBAAkB,GAInB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,UAAU,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,cAAc,EACd,qBAAqB,EACrB,gCAAgC,EAChC,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,EAC/B,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,iCAAiC,EACjC,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,4CAA4C,EAC5C,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,wCAAwC,EACxC,6BAA6B,EAC7B,gCAAgC,EAChC,gCAAgC,EAChC,yCAAyC,EACzC,4CAA4C,EAC5C,gCAAgC,EAChC,sCAAsC,EACtC,gCAAgC,EAChC,mCAAmC,EACnC,mCAAmC,EACnC,kCAAkC,EAClC,4BAA4B,EAC5B,iCAAiC,EACjC,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,EAC/B,kCAAkC,EAClC,mCAAmC,EACnC,kCAAkC,EAClC,kCAAkC,EAClC,oCAAoC,EACpC,iCAAiC,EACjC,wCAAwC,EACxC,iCAAiC,EACjC,gCAAgC,EAChC,sCAAsC,EACtC,kCAAkC,EAClC,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,kCAAkC,EAClC,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAsB,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,YAAqB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAgB,CAAC;AAE5C,OAAO,EACL,WAAW,GAIZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EACL,kBAAkB,GAInB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,UAAU,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,qBAAqB,EACrB,gCAAgC,EAChC,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,EAC/B,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,iCAAiC,EACjC,wBAAwB,EACxB,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,EACvB,4CAA4C,EAC5C,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,8BAA8B,EAC9B,wCAAwC,EACxC,6BAA6B,EAC7B,gCAAgC,EAChC,gCAAgC,EAChC,yCAAyC,EACzC,4CAA4C,EAC5C,gCAAgC,EAChC,sCAAsC,EACtC,gCAAgC,EAChC,mCAAmC,EACnC,mCAAmC,EACnC,kCAAkC,EAClC,4BAA4B,EAC5B,iCAAiC,EACjC,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,EAC/B,kCAAkC,EAClC,mCAAmC,EACnC,kCAAkC,EAClC,kCAAkC,EAClC,oCAAoC,EACpC,iCAAiC,EACjC,wCAAwC,EACxC,iCAAiC,EACjC,gCAAgC,EAChC,sCAAsC,EACtC,kCAAkC,EAClC,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,kCAAkC,EAClC,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAsB,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { ErrorCode, ProblemDetails } from '../_shared/index.js';
|
|
2
|
-
import { TxnodError, TxnodPoolExhaustedError, TxnodRateLimitError, TxnodWebhookCapacityExhaustedError } from '../errors.js';
|
|
2
|
+
import { TxnodError, TxnodPoolExhaustedError, TxnodRateLimitError, TxnodRateQuoteUnavailableError, TxnodWebhookCapacityExhaustedError } from '../errors.js';
|
|
3
3
|
export type ErrorCtor = new (details: ProblemDetails) => TxnodError;
|
|
4
4
|
export type RateLimitCtor = new (details: ProblemDetails, retryAfterSeconds: number) => TxnodRateLimitError;
|
|
5
5
|
export type PoolExhaustedCtor = new (details: ProblemDetails, retryAfterSeconds: number) => TxnodPoolExhaustedError;
|
|
6
6
|
export type WebhookCapacityExhaustedCtor = new (details: ProblemDetails, retryAfterSeconds: number) => TxnodWebhookCapacityExhaustedError;
|
|
7
|
-
export type
|
|
8
|
-
export type
|
|
7
|
+
export type RateQuoteUnavailableCtor = new (details: ProblemDetails, retryAfterSeconds: number) => TxnodRateQuoteUnavailableError;
|
|
8
|
+
export type RetryAfterCtor = RateLimitCtor | PoolExhaustedCtor | WebhookCapacityExhaustedCtor | RateQuoteUnavailableCtor;
|
|
9
|
+
export type CodeRequiringRetryAfter = 'rate_limit_exceeded' | 'pool_exhausted' | 'webhook_capacity_exhausted' | 'rate_quote_unavailable';
|
|
9
10
|
export declare const RETRY_AFTER_CODES: ReadonlySet<ErrorCode>;
|
|
10
11
|
export declare const CODE_TO_CTOR: Partial<Record<ErrorCode, ErrorCtor | RetryAfterCtor>>;
|
|
11
12
|
//# sourceMappingURL=error-ctor-map.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-ctor-map.d.ts","sourceRoot":"","sources":["../../src/internals/error-ctor-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAIL,UAAU,
|
|
1
|
+
{"version":3,"file":"error-ctor-map.d.ts","sourceRoot":"","sources":["../../src/internals/error-ctor-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAIL,UAAU,EAgBV,uBAAuB,EAGvB,mBAAmB,EACnB,8BAA8B,EAwB9B,kCAAkC,EAenC,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,SAAS,GAAG,KAAK,OAAO,EAAE,cAAc,KAAK,UAAU,CAAC;AACpE,MAAM,MAAM,aAAa,GAAG,KAC1B,OAAO,EAAE,cAAc,EACvB,iBAAiB,EAAE,MAAM,KACtB,mBAAmB,CAAC;AACzB,MAAM,MAAM,iBAAiB,GAAG,KAC9B,OAAO,EAAE,cAAc,EACvB,iBAAiB,EAAE,MAAM,KACtB,uBAAuB,CAAC;AAC7B,MAAM,MAAM,4BAA4B,GAAG,KACzC,OAAO,EAAE,cAAc,EACvB,iBAAiB,EAAE,MAAM,KACtB,kCAAkC,CAAC;AACxC,MAAM,MAAM,wBAAwB,GAAG,KACrC,OAAO,EAAE,cAAc,EACvB,iBAAiB,EAAE,MAAM,KACtB,8BAA8B,CAAC;AACpC,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,iBAAiB,GACjB,4BAA4B,GAC5B,wBAAwB,CAAC;AAO7B,MAAM,MAAM,uBAAuB,GAC/B,qBAAqB,GACrB,gBAAgB,GAChB,4BAA4B,GAC5B,wBAAwB,CAAC;AAC7B,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,SAAS,CAOpD,CAAC;AAUF,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CACvC,SAAS,EACT,SAAS,GAAG,cAAc,CAC3B,CAgEA,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { TxnodAmountOutOfRangeError, TxnodAuthInvalidError, TxnodCoinNotEnabledError, TxnodEventNotFoundError, TxnodExternalIdConflictError, TxnodInvalidCoinError, TxnodInvalidStateTransitionError, TxnodInvalidWebhookUrlError, TxnodInvalidXpubFormatError, TxnodInvoiceNotCancellableError, TxnodInvoiceNotFoundError, TxnodKeyRevokedError, TxnodKeySuspendedError, TxnodOrphanAlreadyAttributedError, TxnodOrphanNotFoundError, TxnodPermissionDeniedError, TxnodPoolExhaustedError, TxnodProjectNotFoundError, TxnodProjectSuspendedError, TxnodRateLimitError, TxnodServerError, TxnodSignatureInvalidError, TxnodSignatureReplayedError, TxnodSubscriptionExpiredError, TxnodTimestampOutOfWindowError, TxnodTonCommentParseFailedError, TxnodTonConnectDomainMismatchError, TxnodTonConnectNetworkMismatchError, TxnodTonConnectPayloadExpiredError, TxnodTonConnectPayloadUnknownError, TxnodTonConnectSignatureInvalidError, TxnodTonConnectTimestampSkewError, TxnodTonConnectUnknownWalletVersionError, TxnodTonInvalidWalletVersionError, TxnodTonJettonResolveFailedError, TxnodTonOperatorWalletNotDeployedError, TxnodTronNoActivatedAddressesError, TxnodValidationError, TxnodWalletHasActiveBindingsError, TxnodWalletKindMismatchError, TxnodWalletNotBoundError, TxnodWalletNotFoundError, TxnodWalletNotOwnedError, TxnodWebhookCapacityExhaustedError, TxnodXpubNotVerifiedError, TxnodSandboxProjectRequiredError, TxnodProductionProjectRequiredError, TxnodSandboxPerOperatorCapReachedError, TxnodSandboxKeyAgainstProductionProjectError, TxnodProductionKeyAgainstSandboxProjectError, TxnodSandboxProvisioningFailedError, TxnodSandboxInvoiceTransitionInvalidError, TxnodSandboxInvoiceNotFoundError, TxnodSandboxInvoiceTerminalError, TxnodSandboxRateLimitExceededError, TxnodSandboxResetFailedError, TxnodSandboxDeleteFailedError, TxnodSandboxActiveInvoiceCapReachedError, } from '../errors.js';
|
|
1
|
+
import { TxnodAmountOutOfRangeError, TxnodAuthInvalidError, TxnodCoinNotEnabledError, TxnodEventNotFoundError, TxnodEventNotResendableError, TxnodExternalIdConflictError, TxnodInvalidCoinError, TxnodInvalidStateTransitionError, TxnodInvalidWebhookUrlError, TxnodInvalidXpubFormatError, TxnodInvoiceNotCancellableError, TxnodInvoiceNotFoundError, TxnodKeyRevokedError, TxnodKeySuspendedError, TxnodOrphanAlreadyAttributedError, TxnodOrphanNotFoundError, TxnodOverlayMatchingModeError, TxnodPermissionDeniedError, TxnodPoolExhaustedError, TxnodProjectNotFoundError, TxnodProjectSuspendedError, TxnodRateLimitError, TxnodRateQuoteUnavailableError, TxnodServerError, TxnodSignatureInvalidError, TxnodSignatureReplayedError, TxnodSubscriptionExpiredError, TxnodTimestampOutOfWindowError, TxnodTonCommentParseFailedError, TxnodTonConnectDomainMismatchError, TxnodTonConnectNetworkMismatchError, TxnodTonConnectPayloadExpiredError, TxnodTonConnectPayloadUnknownError, TxnodTonConnectSignatureInvalidError, TxnodTonConnectTimestampSkewError, TxnodTonConnectUnknownWalletVersionError, TxnodTonInvalidWalletVersionError, TxnodTonJettonResolveFailedError, TxnodTonOperatorWalletNotDeployedError, TxnodTronNoActivatedAddressesError, TxnodValidationError, TxnodWalletHasActiveBindingsError, TxnodWalletKindMismatchError, TxnodWalletNotBoundError, TxnodWalletNotFoundError, TxnodWalletNotOwnedError, TxnodWebhookCapacityExhaustedError, TxnodXpubNotVerifiedError, TxnodSandboxProjectRequiredError, TxnodProductionProjectRequiredError, TxnodSandboxPerOperatorCapReachedError, TxnodSandboxKeyAgainstProductionProjectError, TxnodProductionKeyAgainstSandboxProjectError, TxnodSandboxProvisioningFailedError, TxnodSandboxInvoiceTransitionInvalidError, TxnodSandboxInvoiceNotFoundError, TxnodSandboxInvoiceTerminalError, TxnodSandboxRateLimitExceededError, TxnodSandboxResetFailedError, TxnodSandboxDeleteFailedError, TxnodSandboxActiveInvoiceCapReachedError, } from '../errors.js';
|
|
2
2
|
export const RETRY_AFTER_CODES = new Set([
|
|
3
3
|
'rate_limit_exceeded',
|
|
4
4
|
'pool_exhausted',
|
|
5
5
|
'webhook_capacity_exhausted',
|
|
6
|
+
'rate_quote_unavailable',
|
|
6
7
|
]);
|
|
7
8
|
// Entries ordered to match `ERROR_CODES` tuple — drift is grep-visible.
|
|
8
9
|
//
|
|
@@ -36,11 +37,13 @@ export const CODE_TO_CTOR = {
|
|
|
36
37
|
pool_exhausted: TxnodPoolExhaustedError,
|
|
37
38
|
webhook_capacity_exhausted: TxnodWebhookCapacityExhaustedError,
|
|
38
39
|
internal_error: TxnodServerError,
|
|
40
|
+
rate_quote_unavailable: TxnodRateQuoteUnavailableError,
|
|
39
41
|
invoice_not_cancellable: TxnodInvoiceNotCancellableError,
|
|
40
42
|
invalid_state_transition: TxnodInvalidStateTransitionError,
|
|
41
43
|
orphan_not_found: TxnodOrphanNotFoundError,
|
|
42
44
|
orphan_already_attributed: TxnodOrphanAlreadyAttributedError,
|
|
43
45
|
event_not_found: TxnodEventNotFoundError,
|
|
46
|
+
event_not_resendable: TxnodEventNotResendableError,
|
|
44
47
|
wallet_not_bound: TxnodWalletNotBoundError,
|
|
45
48
|
wallet_not_owned: TxnodWalletNotOwnedError,
|
|
46
49
|
wallet_has_active_bindings: TxnodWalletHasActiveBindingsError,
|
|
@@ -71,5 +74,6 @@ export const CODE_TO_CTOR = {
|
|
|
71
74
|
sandbox_reset_failed: TxnodSandboxResetFailedError,
|
|
72
75
|
sandbox_delete_failed: TxnodSandboxDeleteFailedError,
|
|
73
76
|
sandbox_active_invoice_cap_reached: TxnodSandboxActiveInvoiceCapReachedError,
|
|
77
|
+
overlay_matching_mode_required_exact: TxnodOverlayMatchingModeError,
|
|
74
78
|
};
|
|
75
79
|
//# sourceMappingURL=error-ctor-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-ctor-map.js","sourceRoot":"","sources":["../../src/internals/error-ctor-map.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EAExB,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,gCAAgC,EAChC,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,EAC/B,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,iCAAiC,EACjC,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,+BAA+B,EAC/B,kCAAkC,EAClC,mCAAmC,EACnC,kCAAkC,EAClC,kCAAkC,EAClC,oCAAoC,EACpC,iCAAiC,EACjC,wCAAwC,EACxC,iCAAiC,EACjC,gCAAgC,EAChC,sCAAsC,EACtC,kCAAkC,EAClC,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,kCAAkC,EAClC,yBAAyB,EACzB,gCAAgC,EAChC,mCAAmC,EACnC,sCAAsC,EACtC,4CAA4C,EAC5C,4CAA4C,EAC5C,mCAAmC,EACnC,yCAAyC,EACzC,gCAAgC,EAChC,gCAAgC,EAChC,kCAAkC,EAClC,4BAA4B,EAC5B,6BAA6B,EAC7B,wCAAwC,GACzC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"error-ctor-map.js","sourceRoot":"","sources":["../../src/internals/error-ctor-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* BNB Smart Chain verification — shares BIP-44 coin_type=60' with Ethereum
|
|
3
|
-
* (architecture addendum §4.4). Cross-checked byte-for-byte against server-side
|
|
4
|
-
* derivation in apps/web/lib/derivation/evm.ts.
|
|
5
|
-
*
|
|
6
|
-
* Sources:
|
|
7
|
-
* - PRD FR96.
|
|
8
|
-
* - Architecture addendum §4.1, §4.3, §4.4, AD-7.
|
|
2
|
+
* BNB Smart Chain verification — shares BIP-44 coin_type=60' with Ethereum.
|
|
9
3
|
*/
|
|
10
4
|
export interface VerifyBscInput {
|
|
11
5
|
xpub: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bsc.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/bsc.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bsc.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/bsc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAErD"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* BNB Smart Chain verification — shares BIP-44 coin_type=60' with Ethereum
|
|
3
|
-
* (architecture addendum §4.4). Cross-checked byte-for-byte against server-side
|
|
4
|
-
* derivation in apps/web/lib/derivation/evm.ts.
|
|
5
|
-
*
|
|
6
|
-
* Sources:
|
|
7
|
-
* - PRD FR96.
|
|
8
|
-
* - Architecture addendum §4.1, §4.3, §4.4, AD-7.
|
|
2
|
+
* BNB Smart Chain verification — shares BIP-44 coin_type=60' with Ethereum.
|
|
9
3
|
*/
|
|
10
4
|
import { verifyEvm } from './evm.js';
|
|
11
5
|
/** Throws AddressVerificationError on mismatch; returns void on success. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bsc.js","sourceRoot":"","sources":["../../../src/verify/chains/bsc.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bsc.js","sourceRoot":"","sources":["../../../src/verify/chains/bsc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQrC,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* BTC native-SegWit (BIP-84) verification.
|
|
3
|
-
* Cross-checked byte-for-byte against server-side derivation in
|
|
4
|
-
* apps/web/lib/derivation/btc.ts (Story 25.3 AC 9 fixture vectors).
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
* - PRD FR96: SDK locally verifies createInvoice address derives from xpub.
|
|
8
|
-
* - Architecture addendum §4.1, §4.3, AD-7.
|
|
9
|
-
* - Discovery §C.6 (Paul Miller / @noble / @scure family rationale),
|
|
10
|
-
* §E.1 (path 3 — audited deps + CI guard),
|
|
11
|
-
* sub-idea #2.1 (BTC SegWit-only default — Taproot deferred).
|
|
4
|
+
* Specs:
|
|
12
5
|
* - BIP-84 (https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki).
|
|
13
6
|
* - BIP-173 (https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki).
|
|
14
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btc.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/btc.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"btc.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/btc.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAkCrD"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* BTC native-SegWit (BIP-84) verification.
|
|
3
|
-
* Cross-checked byte-for-byte against server-side derivation in
|
|
4
|
-
* apps/web/lib/derivation/btc.ts (Story 25.3 AC 9 fixture vectors).
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
* - PRD FR96: SDK locally verifies createInvoice address derives from xpub.
|
|
8
|
-
* - Architecture addendum §4.1, §4.3, AD-7.
|
|
9
|
-
* - Discovery §C.6 (Paul Miller / @noble / @scure family rationale),
|
|
10
|
-
* §E.1 (path 3 — audited deps + CI guard),
|
|
11
|
-
* sub-idea #2.1 (BTC SegWit-only default — Taproot deferred).
|
|
4
|
+
* Specs:
|
|
12
5
|
* - BIP-84 (https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki).
|
|
13
6
|
* - BIP-173 (https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki).
|
|
14
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btc.js","sourceRoot":"","sources":["../../../src/verify/chains/btc.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"btc.js","sourceRoot":"","sources":["../../../src/verify/chains/btc.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAQxD,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,QAAQ,GACZ,kFAAkF,CAAC;IACrF,IAAI,GAAgB,CAAC;IACrB,IAAI,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,GAAG,GAAG,IAAI,CAAC;SACrD,IAAI,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,GAAG,GAAG,IAAI,CAAC;SAC1D,CAAC;QACJ,MAAM,IAAI,wBAAwB,CAAC;YACjC,KAAK,EAAE,KAAK;YACZ,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,eAAe,EAAE,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,sEAAsE;IACtE,8DAA8D;IAC9D,MAAM,MAAM,GAAG,0BAA0B,CAAC;QACxC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE1C,IAAI,OAAO,KAAK,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,IAAI,wBAAwB,CAAC;YACjC,KAAK,EAAE,KAAK;YACZ,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,eAAe,EAAE,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cardano CIP-1852 verification — full base_address reconstruction defending
|
|
3
|
-
* against the
|
|
4
|
-
* Cross-checked byte-for-byte against server-side derivation in
|
|
5
|
-
* apps/web/lib/derivation/cardano.ts.
|
|
3
|
+
* against the stake-substitution attack class.
|
|
6
4
|
*
|
|
7
|
-
*
|
|
8
|
-
* - PRD FR96: SDK locally verifies createInvoice address derives from xpub.
|
|
9
|
-
* - PRD NFR-S11: full base-address reconstruction (no stake-only compares).
|
|
10
|
-
* - Architecture addendum §4.1, §4.3.
|
|
11
|
-
* - Discovery §E.2 (stake-substitution attack analysis),
|
|
12
|
-
* §C.3 (~200 LOC hand-rolled CIP-1852 budget).
|
|
5
|
+
* Specs:
|
|
13
6
|
* - CIP-1852 (https://cips.cardano.org/cip/CIP-1852).
|
|
14
7
|
* - CIP-19 (https://cips.cardano.org/cip/CIP-19).
|
|
15
8
|
* - BIP32-Ed25519 paper, Khovratovich & Law:
|
|
@@ -42,10 +35,10 @@ export interface VerifyCardanoInput {
|
|
|
42
35
|
* from the operator's CIP-5 `acct_xvk1…` account-extended verification key at
|
|
43
36
|
* the given CIP-1852 payment path. Reconstructs the FULL base address — both
|
|
44
37
|
* `payment_key_hash` (path `0/index`) AND `stake_key_hash` (path `2/0`) — and
|
|
45
|
-
* compares the full bech32 string.
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
38
|
+
* compares the full bech32 string. An attacker who controls a payment keypair
|
|
39
|
+
* cannot have an `evil_payment_hash || legit_stake_hash` address pass
|
|
40
|
+
* verification, because the SDK rederives both halves from the operator's
|
|
41
|
+
* account xvk and rejects on mismatch.
|
|
49
42
|
*
|
|
50
43
|
* Throws `AddressVerificationError` on mismatch (or unsupported HRP).
|
|
51
44
|
* Throws `TxnodInvalidXpubFormatError` on malformed xpub or path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/cardano.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/cardano.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AA+GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA8C7D"}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cardano CIP-1852 verification — full base_address reconstruction defending
|
|
3
|
-
* against the
|
|
4
|
-
* Cross-checked byte-for-byte against server-side derivation in
|
|
5
|
-
* apps/web/lib/derivation/cardano.ts.
|
|
3
|
+
* against the stake-substitution attack class.
|
|
6
4
|
*
|
|
7
|
-
*
|
|
8
|
-
* - PRD FR96: SDK locally verifies createInvoice address derives from xpub.
|
|
9
|
-
* - PRD NFR-S11: full base-address reconstruction (no stake-only compares).
|
|
10
|
-
* - Architecture addendum §4.1, §4.3.
|
|
11
|
-
* - Discovery §E.2 (stake-substitution attack analysis),
|
|
12
|
-
* §C.3 (~200 LOC hand-rolled CIP-1852 budget).
|
|
5
|
+
* Specs:
|
|
13
6
|
* - CIP-1852 (https://cips.cardano.org/cip/CIP-1852).
|
|
14
7
|
* - CIP-19 (https://cips.cardano.org/cip/CIP-19).
|
|
15
8
|
* - BIP32-Ed25519 paper, Khovratovich & Law:
|
|
@@ -102,10 +95,10 @@ function softCKDpub(parent, i) {
|
|
|
102
95
|
* from the operator's CIP-5 `acct_xvk1…` account-extended verification key at
|
|
103
96
|
* the given CIP-1852 payment path. Reconstructs the FULL base address — both
|
|
104
97
|
* `payment_key_hash` (path `0/index`) AND `stake_key_hash` (path `2/0`) — and
|
|
105
|
-
* compares the full bech32 string.
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
98
|
+
* compares the full bech32 string. An attacker who controls a payment keypair
|
|
99
|
+
* cannot have an `evil_payment_hash || legit_stake_hash` address pass
|
|
100
|
+
* verification, because the SDK rederives both halves from the operator's
|
|
101
|
+
* account xvk and rejects on mismatch.
|
|
109
102
|
*
|
|
110
103
|
* Throws `AddressVerificationError` on mismatch (or unsupported HRP).
|
|
111
104
|
* Throws `TxnodInvalidXpubFormatError` on malformed xpub or path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../src/verify/chains/cardano.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cardano.js","sourceRoot":"","sources":["../../../src/verify/chains/cardano.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* EVM (ETH / Polygon PoS / BSC) verification — BIP-44 coin_type=60'.
|
|
3
|
-
* Cross-checked byte-for-byte against server-side derivation in
|
|
4
|
-
* apps/web/lib/derivation/evm.ts (Story 25.3 AC 9 fixture vectors).
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
* - PRD FR96: SDK locally verifies createInvoice address derives from xpub.
|
|
8
|
-
* - Architecture addendum §4.1, §4.3, §4.4 (EVM triplet shares coin_type=60'), AD-7.
|
|
9
|
-
* - Discovery §C.6, §E.1.
|
|
4
|
+
* Specs:
|
|
10
5
|
* - EIP-55 (https://eips.ethereum.org/EIPS/eip-55).
|
|
11
6
|
* - SLIP-0044 coin_type=60 (https://github.com/satoshilabs/slips/blob/master/slip-0044.md).
|
|
12
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/evm.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/evm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;CAClC;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAuBrD"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* EVM (ETH / Polygon PoS / BSC) verification — BIP-44 coin_type=60'.
|
|
3
|
-
* Cross-checked byte-for-byte against server-side derivation in
|
|
4
|
-
* apps/web/lib/derivation/evm.ts (Story 25.3 AC 9 fixture vectors).
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
* - PRD FR96: SDK locally verifies createInvoice address derives from xpub.
|
|
8
|
-
* - Architecture addendum §4.1, §4.3, §4.4 (EVM triplet shares coin_type=60'), AD-7.
|
|
9
|
-
* - Discovery §C.6, §E.1.
|
|
4
|
+
* Specs:
|
|
10
5
|
* - EIP-55 (https://eips.ethereum.org/EIPS/eip-55).
|
|
11
6
|
* - SLIP-0044 coin_type=60 (https://github.com/satoshilabs/slips/blob/master/slip-0044.md).
|
|
12
7
|
*/
|
|
@@ -34,7 +29,13 @@ export function verifyEvm(input) {
|
|
|
34
29
|
const uncompressed = secp256k1.Point.fromBytes(pubkey).toBytes(false);
|
|
35
30
|
const addressBytes = keccak_256(uncompressed.slice(1)).slice(-20);
|
|
36
31
|
const derived = eip55Encode(addressBytes);
|
|
37
|
-
|
|
32
|
+
// EVM hex addresses are case-insensitive by definition — EIP-55 casing is a
|
|
33
|
+
// display-layer checksum only. The API serves canonical-lowercase addresses
|
|
34
|
+
// (see the gateway's canonical-lowercase storage rule), while this function
|
|
35
|
+
// derives the checksummed form, so the comparison must ignore case. TRON
|
|
36
|
+
// (base58check), TON (base64url) and bech32 chains stay exact-compare in
|
|
37
|
+
// their own verifiers.
|
|
38
|
+
if (derived.toLowerCase() !== input.expected_address.toLowerCase()) {
|
|
38
39
|
throw new AddressVerificationError({
|
|
39
40
|
chain: input.chain,
|
|
40
41
|
derivation_path: input.derivation_path,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../src/verify/chains/evm.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../src/verify/chains/evm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,SAAS,WAAW,CAAC,OAAmB;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AASD,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,MAAM,GAAG,0BAA0B,CAAC;QACxC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAE1C,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,yEAAyE;IACzE,uBAAuB;IACvB,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,wBAAwB,CAAC;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,eAAe,EAAE,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Polygon PoS verification — shares BIP-44 coin_type=60' with Ethereum
|
|
3
|
-
* (architecture addendum §4.4). Cross-checked byte-for-byte against server-side
|
|
4
|
-
* derivation in apps/web/lib/derivation/evm.ts.
|
|
5
|
-
*
|
|
6
|
-
* Sources:
|
|
7
|
-
* - PRD FR96.
|
|
8
|
-
* - Architecture addendum §4.1, §4.3, §4.4, AD-7.
|
|
2
|
+
* Polygon PoS verification — shares BIP-44 coin_type=60' with Ethereum.
|
|
9
3
|
*/
|
|
10
4
|
export interface VerifyPolygonInput {
|
|
11
5
|
xpub: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/polygon.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/polygon.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAE7D"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Polygon PoS verification — shares BIP-44 coin_type=60' with Ethereum
|
|
3
|
-
* (architecture addendum §4.4). Cross-checked byte-for-byte against server-side
|
|
4
|
-
* derivation in apps/web/lib/derivation/evm.ts.
|
|
5
|
-
*
|
|
6
|
-
* Sources:
|
|
7
|
-
* - PRD FR96.
|
|
8
|
-
* - Architecture addendum §4.1, §4.3, §4.4, AD-7.
|
|
2
|
+
* Polygon PoS verification — shares BIP-44 coin_type=60' with Ethereum.
|
|
9
3
|
*/
|
|
10
4
|
import { verifyEvm } from './evm.js';
|
|
11
5
|
/** Throws AddressVerificationError on mismatch; returns void on success. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../../src/verify/chains/polygon.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../../src/verify/chains/polygon.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQrC,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared secp256k1 BIP-32 derivation core for BTC / EVM / TRON / Polygon / BSC.
|
|
3
|
-
* Cardano (Ed25519 + CIP-1852) lives in chains/cardano.ts
|
|
4
|
-
* Cross-checked byte-for-byte against server-side derivation in
|
|
5
|
-
* apps/web/lib/derivation/{btc,evm,tron}.ts (Story 25.3 AC 9 fixture vectors).
|
|
3
|
+
* Cardano (Ed25519 + CIP-1852) lives in chains/cardano.ts.
|
|
6
4
|
*
|
|
7
|
-
*
|
|
8
|
-
* - PRD FR96: SDK locally verifies createInvoice address derives from xpub.
|
|
9
|
-
* - Architecture addendum §4.1 (SDK directory layout).
|
|
10
|
-
* - Discovery §C.6 (Paul Miller / @noble / @scure family rationale),
|
|
11
|
-
* §E.1 (path 3 — audited deps + CI guard).
|
|
5
|
+
* Specs:
|
|
12
6
|
* - BIP-32 (https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki).
|
|
13
7
|
*/
|
|
14
8
|
export interface DeriveSecp256k1ChildPubkeyInput {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1-bip32.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/secp256k1-bip32.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"secp256k1-bip32.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/secp256k1-bip32.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4DH,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB;AAQD,uEAAuE;AACvE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,GACrC,UAAU,CA4BZ"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared secp256k1 BIP-32 derivation core for BTC / EVM / TRON / Polygon / BSC.
|
|
3
|
-
* Cardano (Ed25519 + CIP-1852) lives in chains/cardano.ts
|
|
4
|
-
* Cross-checked byte-for-byte against server-side derivation in
|
|
5
|
-
* apps/web/lib/derivation/{btc,evm,tron}.ts (Story 25.3 AC 9 fixture vectors).
|
|
3
|
+
* Cardano (Ed25519 + CIP-1852) lives in chains/cardano.ts.
|
|
6
4
|
*
|
|
7
|
-
*
|
|
8
|
-
* - PRD FR96: SDK locally verifies createInvoice address derives from xpub.
|
|
9
|
-
* - Architecture addendum §4.1 (SDK directory layout).
|
|
10
|
-
* - Discovery §C.6 (Paul Miller / @noble / @scure family rationale),
|
|
11
|
-
* §E.1 (path 3 — audited deps + CI guard).
|
|
5
|
+
* Specs:
|
|
12
6
|
* - BIP-32 (https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki).
|
|
13
7
|
*/
|
|
14
8
|
import { HDKey } from '@scure/bip32';
|
|
@@ -18,8 +12,7 @@ import { TxnodInvalidXpubFormatError } from '../../errors.js';
|
|
|
18
12
|
import { syntheticDetails } from '../../internals/synthetic-details.js';
|
|
19
13
|
const b58check = createBase58check(sha256);
|
|
20
14
|
const XPUB_VERSION_MAINNET = new Uint8Array([0x04, 0x88, 0xb2, 0x1e]);
|
|
21
|
-
// Allowlist of accepted **public** extended-key version bytes
|
|
22
|
-
// `packages/shared/src/wallets/xpub-reencode.ts` byte-for-byte.
|
|
15
|
+
// Allowlist of accepted **public** extended-key version bytes.
|
|
23
16
|
const ALLOWED_VERSIONS = new Set([
|
|
24
17
|
0x0488b21e, // xpub
|
|
25
18
|
0x043587cf, // tpub
|
|
@@ -37,9 +30,8 @@ const VERSION_BYTE_LENGTH = 4;
|
|
|
37
30
|
* "Version mismatch". Address-encoding (which IS network-sensitive for
|
|
38
31
|
* BTC) lives downstream in `chains/btc.ts` and is unaffected.
|
|
39
32
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* `packages/shared/src/wallets/xpub-reencode.ts` — keep the two in sync.
|
|
33
|
+
* Inlined by design — the SDK keeps zero runtime dependencies on the rest of
|
|
34
|
+
* the monorepo.
|
|
43
35
|
*/
|
|
44
36
|
function reencodeAsMainnetXpub(extended) {
|
|
45
37
|
const decoded = b58check.decode(extended);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1-bip32.js","sourceRoot":"","sources":["../../../src/verify/chains/secp256k1-bip32.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"secp256k1-bip32.js","sourceRoot":"","sources":["../../../src/verify/chains/secp256k1-bip32.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ton-cell.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/ton-cell.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ton-cell.d.ts","sourceRoot":"","sources":["../../../src/verify/chains/ton-cell.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
// SDK-side second copy of `packages/shared/src/chains/ton-cell.ts` — kept
|
|
2
|
-
// SDK-self-contained per CLAUDE.md "Package boundaries" (no runtime import
|
|
3
|
-
// from `@txnod/shared`). Byte-for-byte parity with the shared copy is
|
|
4
|
-
// asserted in the co-located cell-parity test (`ton.test.ts`).
|
|
5
|
-
//
|
|
6
1
|
// Vendored TON Cell + Address + beginCell core, narrowed to the
|
|
7
2
|
// address-derivation write path. Pure functions, no class hierarchies, no
|
|
8
|
-
// runtime dependency on `@ton/core`. The
|
|
9
|
-
//
|
|
3
|
+
// runtime dependency on `@ton/core`. The SDK keeps zero runtime dependencies
|
|
4
|
+
// on other monorepo packages; this module is the self-contained inline copy
|
|
5
|
+
// the verify path uses. The full upstream library is pulled in only as a
|
|
6
|
+
// `devDependency` for parity tests.
|
|
10
7
|
//
|
|
11
8
|
// Upstream provenance recorded inline on each export via `@source` tags:
|
|
12
9
|
// `@ton/core@0.63.1` (resolved 2026-04-29 via `npm view @ton/core version`)
|