@florent-uzio/custody 2.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/LICENSE +15 -0
- package/README.md +280 -0
- package/dist/constants/defaults.d.ts +3 -0
- package/dist/constants/defaults.d.ts.map +1 -0
- package/dist/constants/defaults.js +3 -0
- package/dist/constants/defaults.js.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +3 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/urls.d.ts +86 -0
- package/dist/constants/urls.d.ts.map +1 -0
- package/dist/constants/urls.js +109 -0
- package/dist/constants/urls.js.map +1 -0
- package/dist/helpers/async/async.d.ts +6 -0
- package/dist/helpers/async/async.d.ts.map +1 -0
- package/dist/helpers/async/async.js +6 -0
- package/dist/helpers/async/async.js.map +1 -0
- package/dist/helpers/async/index.d.ts +2 -0
- package/dist/helpers/async/index.d.ts.map +1 -0
- package/dist/helpers/async/index.js +2 -0
- package/dist/helpers/async/index.js.map +1 -0
- package/dist/helpers/index.d.ts +4 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +4 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/typeof-fns/index.d.ts +2 -0
- package/dist/helpers/typeof-fns/index.d.ts.map +1 -0
- package/dist/helpers/typeof-fns/index.js +2 -0
- package/dist/helpers/typeof-fns/index.js.map +1 -0
- package/dist/helpers/typeof-fns/typeof-fns.d.ts +18 -0
- package/dist/helpers/typeof-fns/typeof-fns.d.ts.map +1 -0
- package/dist/helpers/typeof-fns/typeof-fns.js +48 -0
- package/dist/helpers/typeof-fns/typeof-fns.js.map +1 -0
- package/dist/helpers/url/index.d.ts +2 -0
- package/dist/helpers/url/index.d.ts.map +1 -0
- package/dist/helpers/url/index.js +2 -0
- package/dist/helpers/url/index.js.map +1 -0
- package/dist/helpers/url/url.d.ts +39 -0
- package/dist/helpers/url/url.d.ts.map +1 -0
- package/dist/helpers/url/url.js +54 -0
- package/dist/helpers/url/url.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.helpers.d.ts +2 -0
- package/dist/main.helpers.d.ts.map +1 -0
- package/dist/main.helpers.js +99 -0
- package/dist/main.helpers.js.map +1 -0
- package/dist/main.js +41 -0
- package/dist/main.js.map +1 -0
- package/dist/models/custody-error.d.ts +22 -0
- package/dist/models/custody-error.d.ts.map +1 -0
- package/dist/models/custody-error.js +47 -0
- package/dist/models/custody-error.js.map +1 -0
- package/dist/models/custody-types.d.ts +14664 -0
- package/dist/models/custody-types.d.ts.map +1 -0
- package/dist/models/custody-types.js +6 -0
- package/dist/models/custody-types.js.map +1 -0
- package/dist/models/index.d.ts +4 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/ledger-ids.d.ts +19 -0
- package/dist/models/ledger-ids.d.ts.map +1 -0
- package/dist/models/ledger-ids.js +2 -0
- package/dist/models/ledger-ids.js.map +1 -0
- package/dist/namespaces/accounts.d.ts +32 -0
- package/dist/namespaces/accounts.d.ts.map +1 -0
- package/dist/namespaces/accounts.js +66 -0
- package/dist/namespaces/accounts.js.map +1 -0
- package/dist/namespaces/channels.d.ts +14 -0
- package/dist/namespaces/channels.d.ts.map +1 -0
- package/dist/namespaces/channels.js +15 -0
- package/dist/namespaces/channels.js.map +1 -0
- package/dist/namespaces/domains.d.ts +7 -0
- package/dist/namespaces/domains.d.ts.map +1 -0
- package/dist/namespaces/domains.js +8 -0
- package/dist/namespaces/domains.js.map +1 -0
- package/dist/namespaces/endpoints.d.ts +7 -0
- package/dist/namespaces/endpoints.d.ts.map +1 -0
- package/dist/namespaces/endpoints.js +8 -0
- package/dist/namespaces/endpoints.js.map +1 -0
- package/dist/namespaces/events.d.ts +6 -0
- package/dist/namespaces/events.d.ts.map +1 -0
- package/dist/namespaces/events.js +7 -0
- package/dist/namespaces/events.js.map +1 -0
- package/dist/namespaces/genesis.d.ts +6 -0
- package/dist/namespaces/genesis.d.ts.map +1 -0
- package/dist/namespaces/genesis.js +7 -0
- package/dist/namespaces/genesis.js.map +1 -0
- package/dist/namespaces/index.d.ts +16 -0
- package/dist/namespaces/index.d.ts.map +1 -0
- package/dist/namespaces/index.js +16 -0
- package/dist/namespaces/index.js.map +1 -0
- package/dist/namespaces/intents.d.ts +13 -0
- package/dist/namespaces/intents.d.ts.map +1 -0
- package/dist/namespaces/intents.js +70 -0
- package/dist/namespaces/intents.js.map +1 -0
- package/dist/namespaces/ledgers.d.ts +11 -0
- package/dist/namespaces/ledgers.d.ts.map +1 -0
- package/dist/namespaces/ledgers.js +12 -0
- package/dist/namespaces/ledgers.js.map +1 -0
- package/dist/namespaces/policies.d.ts +7 -0
- package/dist/namespaces/policies.d.ts.map +1 -0
- package/dist/namespaces/policies.js +8 -0
- package/dist/namespaces/policies.js.map +1 -0
- package/dist/namespaces/requests.d.ts +8 -0
- package/dist/namespaces/requests.d.ts.map +1 -0
- package/dist/namespaces/requests.js +9 -0
- package/dist/namespaces/requests.js.map +1 -0
- package/dist/namespaces/tickers.d.ts +7 -0
- package/dist/namespaces/tickers.d.ts.map +1 -0
- package/dist/namespaces/tickers.js +8 -0
- package/dist/namespaces/tickers.js.map +1 -0
- package/dist/namespaces/transactions.d.ts +12 -0
- package/dist/namespaces/transactions.d.ts.map +1 -0
- package/dist/namespaces/transactions.js +13 -0
- package/dist/namespaces/transactions.js.map +1 -0
- package/dist/namespaces/user-invitations.d.ts +13 -0
- package/dist/namespaces/user-invitations.d.ts.map +1 -0
- package/dist/namespaces/user-invitations.js +14 -0
- package/dist/namespaces/user-invitations.js.map +1 -0
- package/dist/namespaces/users.d.ts +9 -0
- package/dist/namespaces/users.d.ts.map +1 -0
- package/dist/namespaces/users.js +10 -0
- package/dist/namespaces/users.js.map +1 -0
- package/dist/namespaces/vaults.d.ts +9 -0
- package/dist/namespaces/vaults.d.ts.map +1 -0
- package/dist/namespaces/vaults.js +12 -0
- package/dist/namespaces/vaults.js.map +1 -0
- package/dist/ripple-custody.d.ts +95 -0
- package/dist/ripple-custody.d.ts.map +1 -0
- package/dist/ripple-custody.js +138 -0
- package/dist/ripple-custody.js.map +1 -0
- package/dist/ripple-custody.types.d.ts +29 -0
- package/dist/ripple-custody.types.d.ts.map +1 -0
- package/dist/ripple-custody.types.js +2 -0
- package/dist/ripple-custody.types.js.map +1 -0
- package/dist/services/accounts/accounts.types.d.ts +48 -0
- package/dist/services/accounts/accounts.types.d.ts.map +1 -0
- package/dist/services/accounts/accounts.types.js +2 -0
- package/dist/services/accounts/accounts.types.js.map +1 -0
- package/dist/services/accounts/index.d.ts +2 -0
- package/dist/services/accounts/index.d.ts.map +1 -0
- package/dist/services/accounts/index.js +2 -0
- package/dist/services/accounts/index.js.map +1 -0
- package/dist/services/apis/api.service.d.ts +64 -0
- package/dist/services/apis/api.service.d.ts.map +1 -0
- package/dist/services/apis/api.service.js +235 -0
- package/dist/services/apis/api.service.js.map +1 -0
- package/dist/services/apis/api.service.types.d.ts +16 -0
- package/dist/services/apis/api.service.types.d.ts.map +1 -0
- package/dist/services/apis/api.service.types.js +3 -0
- package/dist/services/apis/api.service.types.js.map +1 -0
- package/dist/services/apis/index.d.ts +3 -0
- package/dist/services/apis/index.d.ts.map +1 -0
- package/dist/services/apis/index.js +3 -0
- package/dist/services/apis/index.js.map +1 -0
- package/dist/services/auth/auth.service.d.ts +56 -0
- package/dist/services/auth/auth.service.d.ts.map +1 -0
- package/dist/services/auth/auth.service.js +120 -0
- package/dist/services/auth/auth.service.js.map +1 -0
- package/dist/services/auth/auth.service.types.d.ts +9 -0
- package/dist/services/auth/auth.service.types.d.ts.map +1 -0
- package/dist/services/auth/auth.service.types.js +2 -0
- package/dist/services/auth/auth.service.types.js.map +1 -0
- package/dist/services/auth/index.d.ts +3 -0
- package/dist/services/auth/index.d.ts.map +1 -0
- package/dist/services/auth/index.js +3 -0
- package/dist/services/auth/index.js.map +1 -0
- package/dist/services/channels/channels.types.d.ts +37 -0
- package/dist/services/channels/channels.types.d.ts.map +1 -0
- package/dist/services/channels/channels.types.js +2 -0
- package/dist/services/channels/channels.types.js.map +1 -0
- package/dist/services/channels/index.d.ts +3 -0
- package/dist/services/channels/index.d.ts.map +1 -0
- package/dist/services/channels/index.js +3 -0
- package/dist/services/channels/index.js.map +1 -0
- package/dist/services/channels/parse-event-payload.d.ts +12 -0
- package/dist/services/channels/parse-event-payload.d.ts.map +1 -0
- package/dist/services/channels/parse-event-payload.js +37 -0
- package/dist/services/channels/parse-event-payload.js.map +1 -0
- package/dist/services/domain-resolver/domain-resolver.types.d.ts +18 -0
- package/dist/services/domain-resolver/domain-resolver.types.d.ts.map +1 -0
- package/dist/services/domain-resolver/domain-resolver.types.js +2 -0
- package/dist/services/domain-resolver/domain-resolver.types.js.map +1 -0
- package/dist/services/domain-resolver/index.d.ts +2 -0
- package/dist/services/domain-resolver/index.d.ts.map +1 -0
- package/dist/services/domain-resolver/index.js +2 -0
- package/dist/services/domain-resolver/index.js.map +1 -0
- package/dist/services/domains/domain.types.d.ts +6 -0
- package/dist/services/domains/domain.types.d.ts.map +1 -0
- package/dist/services/domains/domain.types.js +2 -0
- package/dist/services/domains/domain.types.js.map +1 -0
- package/dist/services/domains/index.d.ts +2 -0
- package/dist/services/domains/index.d.ts.map +1 -0
- package/dist/services/domains/index.js +2 -0
- package/dist/services/domains/index.js.map +1 -0
- package/dist/services/endpoints/endpoints.types.d.ts +7 -0
- package/dist/services/endpoints/endpoints.types.d.ts.map +1 -0
- package/dist/services/endpoints/endpoints.types.js +2 -0
- package/dist/services/endpoints/endpoints.types.js.map +1 -0
- package/dist/services/endpoints/index.d.ts +2 -0
- package/dist/services/endpoints/index.d.ts.map +1 -0
- package/dist/services/endpoints/index.js +2 -0
- package/dist/services/endpoints/index.js.map +1 -0
- package/dist/services/events/events.types.d.ts +8 -0
- package/dist/services/events/events.types.d.ts.map +1 -0
- package/dist/services/events/events.types.js +2 -0
- package/dist/services/events/events.types.js.map +1 -0
- package/dist/services/events/index.d.ts +2 -0
- package/dist/services/events/index.d.ts.map +1 -0
- package/dist/services/events/index.js +2 -0
- package/dist/services/events/index.js.map +1 -0
- package/dist/services/genesis/genesis.types.d.ts +7 -0
- package/dist/services/genesis/genesis.types.d.ts.map +1 -0
- package/dist/services/genesis/genesis.types.js +2 -0
- package/dist/services/genesis/genesis.types.js.map +1 -0
- package/dist/services/genesis/index.d.ts +2 -0
- package/dist/services/genesis/index.d.ts.map +1 -0
- package/dist/services/genesis/index.js +2 -0
- package/dist/services/genesis/index.js.map +1 -0
- package/dist/services/index.d.ts +19 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +19 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/intents/index.d.ts +2 -0
- package/dist/services/intents/index.d.ts.map +1 -0
- package/dist/services/intents/index.js +2 -0
- package/dist/services/intents/index.js.map +1 -0
- package/dist/services/intents/intents.types.d.ts +66 -0
- package/dist/services/intents/intents.types.d.ts.map +1 -0
- package/dist/services/intents/intents.types.js +5 -0
- package/dist/services/intents/intents.types.js.map +1 -0
- package/dist/services/keypairs/ed25519.service.d.ts +25 -0
- package/dist/services/keypairs/ed25519.service.d.ts.map +1 -0
- package/dist/services/keypairs/ed25519.service.js +84 -0
- package/dist/services/keypairs/ed25519.service.js.map +1 -0
- package/dist/services/keypairs/index.d.ts +3 -0
- package/dist/services/keypairs/index.d.ts.map +1 -0
- package/dist/services/keypairs/index.js +3 -0
- package/dist/services/keypairs/index.js.map +1 -0
- package/dist/services/keypairs/keypair.service.d.ts +27 -0
- package/dist/services/keypairs/keypair.service.d.ts.map +1 -0
- package/dist/services/keypairs/keypair.service.js +69 -0
- package/dist/services/keypairs/keypair.service.js.map +1 -0
- package/dist/services/keypairs/keypairs.types.d.ts +10 -0
- package/dist/services/keypairs/keypairs.types.d.ts.map +1 -0
- package/dist/services/keypairs/keypairs.types.js +2 -0
- package/dist/services/keypairs/keypairs.types.js.map +1 -0
- package/dist/services/keypairs/secp256k1.service.d.ts +24 -0
- package/dist/services/keypairs/secp256k1.service.d.ts.map +1 -0
- package/dist/services/keypairs/secp256k1.service.js +101 -0
- package/dist/services/keypairs/secp256k1.service.js.map +1 -0
- package/dist/services/keypairs/secp256r1.service.d.ts +24 -0
- package/dist/services/keypairs/secp256r1.service.d.ts.map +1 -0
- package/dist/services/keypairs/secp256r1.service.js +101 -0
- package/dist/services/keypairs/secp256r1.service.js.map +1 -0
- package/dist/services/ledgers/index.d.ts +2 -0
- package/dist/services/ledgers/index.d.ts.map +1 -0
- package/dist/services/ledgers/index.js +2 -0
- package/dist/services/ledgers/index.js.map +1 -0
- package/dist/services/ledgers/ledgers.types.d.ts +13 -0
- package/dist/services/ledgers/ledgers.types.d.ts.map +1 -0
- package/dist/services/ledgers/ledgers.types.js +2 -0
- package/dist/services/ledgers/ledgers.types.js.map +1 -0
- package/dist/services/policies/index.d.ts +2 -0
- package/dist/services/policies/index.d.ts.map +1 -0
- package/dist/services/policies/index.js +2 -0
- package/dist/services/policies/index.js.map +1 -0
- package/dist/services/policies/policies.types.d.ts +13 -0
- package/dist/services/policies/policies.types.d.ts.map +1 -0
- package/dist/services/policies/policies.types.js +2 -0
- package/dist/services/policies/policies.types.js.map +1 -0
- package/dist/services/requests/index.d.ts +2 -0
- package/dist/services/requests/index.d.ts.map +1 -0
- package/dist/services/requests/index.js +2 -0
- package/dist/services/requests/index.js.map +1 -0
- package/dist/services/requests/requests.types.d.ts +8 -0
- package/dist/services/requests/requests.types.d.ts.map +1 -0
- package/dist/services/requests/requests.types.js +2 -0
- package/dist/services/requests/requests.types.js.map +1 -0
- package/dist/services/tickers/index.d.ts +2 -0
- package/dist/services/tickers/index.d.ts.map +1 -0
- package/dist/services/tickers/index.js +2 -0
- package/dist/services/tickers/index.js.map +1 -0
- package/dist/services/tickers/tickers.types.d.ts +6 -0
- package/dist/services/tickers/tickers.types.d.ts.map +1 -0
- package/dist/services/tickers/tickers.types.js +2 -0
- package/dist/services/tickers/tickers.types.js.map +1 -0
- package/dist/services/transactions/index.d.ts +2 -0
- package/dist/services/transactions/index.d.ts.map +1 -0
- package/dist/services/transactions/index.js +2 -0
- package/dist/services/transactions/index.js.map +1 -0
- package/dist/services/transactions/transactions.types.d.ts +21 -0
- package/dist/services/transactions/transactions.types.d.ts.map +1 -0
- package/dist/services/transactions/transactions.types.js +2 -0
- package/dist/services/transactions/transactions.types.js.map +1 -0
- package/dist/services/user-invitations/index.d.ts +2 -0
- package/dist/services/user-invitations/index.d.ts.map +1 -0
- package/dist/services/user-invitations/index.js +2 -0
- package/dist/services/user-invitations/index.js.map +1 -0
- package/dist/services/user-invitations/user-invitations.types.d.ts +15 -0
- package/dist/services/user-invitations/user-invitations.types.d.ts.map +1 -0
- package/dist/services/user-invitations/user-invitations.types.js +2 -0
- package/dist/services/user-invitations/user-invitations.types.js.map +1 -0
- package/dist/services/users/index.d.ts +2 -0
- package/dist/services/users/index.d.ts.map +1 -0
- package/dist/services/users/index.js +2 -0
- package/dist/services/users/index.js.map +1 -0
- package/dist/services/users/users.types.d.ts +10 -0
- package/dist/services/users/users.types.d.ts.map +1 -0
- package/dist/services/users/users.types.js +2 -0
- package/dist/services/users/users.types.js.map +1 -0
- package/dist/services/vaults/index.d.ts +2 -0
- package/dist/services/vaults/index.d.ts.map +1 -0
- package/dist/services/vaults/index.js +2 -0
- package/dist/services/vaults/index.js.map +1 -0
- package/dist/services/vaults/vaults.types.d.ts +14 -0
- package/dist/services/vaults/vaults.types.d.ts.map +1 -0
- package/dist/services/vaults/vaults.types.js +2 -0
- package/dist/services/vaults/vaults.types.js.map +1 -0
- package/dist/services/xrpl/index.d.ts +5 -0
- package/dist/services/xrpl/index.d.ts.map +1 -0
- package/dist/services/xrpl/index.js +8 -0
- package/dist/services/xrpl/index.js.map +1 -0
- package/dist/services/xrpl/xrpl.adapters.d.ts +13 -0
- package/dist/services/xrpl/xrpl.adapters.d.ts.map +1 -0
- package/dist/services/xrpl/xrpl.adapters.js +288 -0
- package/dist/services/xrpl/xrpl.adapters.js.map +1 -0
- package/dist/services/xrpl/xrpl.http-adapters.d.ts +14 -0
- package/dist/services/xrpl/xrpl.http-adapters.d.ts.map +1 -0
- package/dist/services/xrpl/xrpl.http-adapters.js +83 -0
- package/dist/services/xrpl/xrpl.http-adapters.js.map +1 -0
- package/dist/services/xrpl/xrpl.ports.d.ts +36 -0
- package/dist/services/xrpl/xrpl.ports.d.ts.map +1 -0
- package/dist/services/xrpl/xrpl.ports.js +2 -0
- package/dist/services/xrpl/xrpl.ports.js.map +1 -0
- package/dist/services/xrpl/xrpl.service.d.ts +124 -0
- package/dist/services/xrpl/xrpl.service.d.ts.map +1 -0
- package/dist/services/xrpl/xrpl.service.js +370 -0
- package/dist/services/xrpl/xrpl.service.js.map +1 -0
- package/dist/services/xrpl/xrpl.types.d.ts +131 -0
- package/dist/services/xrpl/xrpl.types.d.ts.map +1 -0
- package/dist/services/xrpl/xrpl.types.js +30 -0
- package/dist/services/xrpl/xrpl.types.js.map +1 -0
- package/dist/transport/index.d.ts +4 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +3 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/split-params.d.ts +14 -0
- package/dist/transport/split-params.d.ts.map +1 -0
- package/dist/transport/split-params.js +28 -0
- package/dist/transport/split-params.js.map +1 -0
- package/dist/transport/transport.types.d.ts +11 -0
- package/dist/transport/transport.types.d.ts.map +1 -0
- package/dist/transport/transport.types.js +2 -0
- package/dist/transport/transport.types.js.map +1 -0
- package/dist/transport/typed-transport.d.ts +38 -0
- package/dist/transport/typed-transport.d.ts.map +1 -0
- package/dist/transport/typed-transport.js +78 -0
- package/dist/transport/typed-transport.js.map +1 -0
- package/dist/type-utils/index.d.ts +4 -0
- package/dist/type-utils/index.d.ts.map +1 -0
- package/dist/type-utils/index.js +4 -0
- package/dist/type-utils/index.js.map +1 -0
- package/dist/type-utils/optional-except-for.d.ts +2 -0
- package/dist/type-utils/optional-except-for.d.ts.map +1 -0
- package/dist/type-utils/optional-except-for.js +2 -0
- package/dist/type-utils/optional-except-for.js.map +1 -0
- package/dist/type-utils/prettify.d.ts +4 -0
- package/dist/type-utils/prettify.d.ts.map +1 -0
- package/dist/type-utils/prettify.js +2 -0
- package/dist/type-utils/prettify.js.map +1 -0
- package/dist/type-utils/required-except-for.d.ts +2 -0
- package/dist/type-utils/required-except-for.d.ts.map +1 -0
- package/dist/type-utils/required-except-for.js +2 -0
- package/dist/type-utils/required-except-for.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { isString } from "../../helpers/index.js";
|
|
2
|
+
import { CustodyError } from "../../models/custody-error.js";
|
|
3
|
+
import { Ed25519Service } from "./ed25519.service.js";
|
|
4
|
+
import {} from "./keypairs.types.js";
|
|
5
|
+
import { Secp256k1Service } from "./secp256k1.service.js";
|
|
6
|
+
import { Secp256r1Service } from "./secp256r1.service.js";
|
|
7
|
+
/**
|
|
8
|
+
* KeypairService provides a unified interface for keypair operations (generation, signing)
|
|
9
|
+
* and supports multiple algorithms (currently only secp256k1).
|
|
10
|
+
*/
|
|
11
|
+
export class KeypairService {
|
|
12
|
+
algorithm;
|
|
13
|
+
// Maps supported algorithms to their provider implementations
|
|
14
|
+
providers;
|
|
15
|
+
constructor(algorithm) {
|
|
16
|
+
this.algorithm = algorithm;
|
|
17
|
+
// Initialize providers for each supported algorithm
|
|
18
|
+
this.providers = {
|
|
19
|
+
["secp256k1"]: new Secp256k1Service(),
|
|
20
|
+
["ed25519"]: new Ed25519Service(),
|
|
21
|
+
["secp256r1"]: new Secp256r1Service(),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Generates a key pair using the selected algorithm.
|
|
26
|
+
* For Ripple Custody, the generated key pair uses the correct formats:
|
|
27
|
+
* - Private key: PEM format
|
|
28
|
+
* - Public key: base64 DER format
|
|
29
|
+
* @returns {KeyPair} The generated key pair.
|
|
30
|
+
*/
|
|
31
|
+
generate() {
|
|
32
|
+
const provider = this.providers[this.algorithm];
|
|
33
|
+
if (!provider)
|
|
34
|
+
throw new CustodyError({ reason: `Unsupported algorithm: ${this.algorithm}` });
|
|
35
|
+
return provider.generate();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Signs a message using the defined algorithm and provided private key.
|
|
39
|
+
* @param privateKeyPem - The private key in PEM format.
|
|
40
|
+
* @param message - The message to sign.
|
|
41
|
+
* @returns {string} The base64-encoded signature.
|
|
42
|
+
*/
|
|
43
|
+
sign(privateKeyPem, message) {
|
|
44
|
+
const provider = this.providers[this.algorithm];
|
|
45
|
+
if (!provider)
|
|
46
|
+
throw new CustodyError({ reason: `Unsupported algorithm: ${this.algorithm}` });
|
|
47
|
+
return provider.sign(privateKeyPem, message);
|
|
48
|
+
}
|
|
49
|
+
static detectKeyType(privateKey) {
|
|
50
|
+
let hex;
|
|
51
|
+
if (isString(privateKey)) {
|
|
52
|
+
// Strip PEM headers
|
|
53
|
+
const b64 = privateKey.replace(/-----(BEGIN|END)[\s\S]+?-----/g, "").replace(/\s+/g, "");
|
|
54
|
+
const buf = Buffer.from(b64, "base64");
|
|
55
|
+
hex = buf.toString("hex");
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
hex = privateKey.toString("hex");
|
|
59
|
+
}
|
|
60
|
+
if (hex.includes("2b6570"))
|
|
61
|
+
return "ed25519"; // OID 1.3.101.112
|
|
62
|
+
if (hex.includes("2b8104000a"))
|
|
63
|
+
return "secp256k1"; // OID 1.3.132.0.10
|
|
64
|
+
if (hex.includes("2a8648ce3d030107"))
|
|
65
|
+
return "secp256r1"; // OID 1.2.840.10045.3.1.7
|
|
66
|
+
return "unknown";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=keypair.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keypair.service.js","sourceRoot":"","sources":["../../../src/services/keypairs/keypair.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAA+D,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD;;;GAGG;AACH,MAAM,OAAO,cAAc;IAII;IAH7B,8DAA8D;IACtD,SAAS,CAA6C;IAE9D,YAA6B,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;QACtD,oDAAoD;QACpD,IAAI,CAAC,SAAS,GAAG;YACf,CAAC,WAAW,CAAC,EAAE,IAAI,gBAAgB,EAAE;YACrC,CAAC,SAAS,CAAC,EAAE,IAAI,cAAc,EAAE;YACjC,CAAC,WAAW,CAAC,EAAE,IAAI,gBAAgB,EAAE;SACtC,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,0BAA0B,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC7F,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,aAAqB,EAAE,OAAe;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,0BAA0B,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC7F,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,UAA2B;QAC9C,IAAI,GAAW,CAAA;QAEf,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzB,oBAAoB;YACpB,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YACxF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACtC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAClC,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAA,CAAC,kBAAkB;QAC/D,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,WAAW,CAAA,CAAC,mBAAmB;QACtE,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAAE,OAAO,WAAW,CAAA,CAAC,0BAA0B;QAEnF,OAAO,SAAS,CAAA;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type KeypairDefinition = {
|
|
2
|
+
generate: () => KeyPair;
|
|
3
|
+
sign: (privateKey: string, message: string) => string;
|
|
4
|
+
};
|
|
5
|
+
export type KeyPair = {
|
|
6
|
+
privateKey: string;
|
|
7
|
+
publicKey: string;
|
|
8
|
+
};
|
|
9
|
+
export type KeypairAlgorithm = "secp256k1" | "secp256r1" | "ed25519";
|
|
10
|
+
//# sourceMappingURL=keypairs.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keypairs.types.d.ts","sourceRoot":"","sources":["../../../src/services/keypairs/keypairs.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,OAAO,CAAA;IACvB,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;CACtD,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keypairs.types.js","sourceRoot":"","sources":["../../../src/services/keypairs/keypairs.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { KeyPair, KeypairDefinition } from "./keypairs.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Service for generating and signing with secp256k1 keypairs.
|
|
4
|
+
*/
|
|
5
|
+
export declare class Secp256k1Service implements KeypairDefinition {
|
|
6
|
+
/**
|
|
7
|
+
* Generates a secp256k1 key pair
|
|
8
|
+
* @returns {KeyPair} Object containing private key in PEM format and public key in base64
|
|
9
|
+
*/
|
|
10
|
+
generate(): KeyPair;
|
|
11
|
+
/**
|
|
12
|
+
* Signs a message using the provided PEM-encoded secp256k1 private key.
|
|
13
|
+
* This implementation follows the pattern:
|
|
14
|
+
* 1. Create a Buffer from the message
|
|
15
|
+
* 2. Sign the message with secp256k1
|
|
16
|
+
* 3. Return Base64-encoded DER signature
|
|
17
|
+
*
|
|
18
|
+
* @param {string} privateKeyPem - PEM-encoded private key.
|
|
19
|
+
* @param {string} message - Message to sign (should be canonicalized JSON for a request).
|
|
20
|
+
* @returns {string} Base64-encoded DER signature.
|
|
21
|
+
*/
|
|
22
|
+
sign(privateKeyPem: string, message: string): string;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=secp256k1.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256k1.service.d.ts","sourceRoot":"","sources":["../../../src/services/keypairs/secp256k1.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAErE;;GAEG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD;;;OAGG;IACH,QAAQ,IAAI,OAAO;IA0BnB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CAyDrD"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { createPrivateKey, generateKeyPairSync, sign } from "crypto";
|
|
2
|
+
import { isString } from "../../helpers/index.js";
|
|
3
|
+
import { CustodyError } from "../../models/custody-error.js";
|
|
4
|
+
/**
|
|
5
|
+
* Service for generating and signing with secp256k1 keypairs.
|
|
6
|
+
*/
|
|
7
|
+
export class Secp256k1Service {
|
|
8
|
+
/**
|
|
9
|
+
* Generates a secp256k1 key pair
|
|
10
|
+
* @returns {KeyPair} Object containing private key in PEM format and public key in base64
|
|
11
|
+
*/
|
|
12
|
+
generate() {
|
|
13
|
+
try {
|
|
14
|
+
const { privateKey, publicKey } = generateKeyPairSync("ec", {
|
|
15
|
+
namedCurve: "secp256k1",
|
|
16
|
+
publicKeyEncoding: {
|
|
17
|
+
type: "spki",
|
|
18
|
+
format: "der",
|
|
19
|
+
},
|
|
20
|
+
privateKeyEncoding: {
|
|
21
|
+
type: "sec1",
|
|
22
|
+
format: "pem",
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
// Encode the DER buffer to base64
|
|
26
|
+
const publicKeyDerBase64 = publicKey.toString("base64");
|
|
27
|
+
return {
|
|
28
|
+
privateKey: privateKey,
|
|
29
|
+
publicKey: publicKeyDerBase64,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
throw new Error("Failed to generate secp256k1 key pair", { cause: error });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Signs a message using the provided PEM-encoded secp256k1 private key.
|
|
38
|
+
* This implementation follows the pattern:
|
|
39
|
+
* 1. Create a Buffer from the message
|
|
40
|
+
* 2. Sign the message with secp256k1
|
|
41
|
+
* 3. Return Base64-encoded DER signature
|
|
42
|
+
*
|
|
43
|
+
* @param {string} privateKeyPem - PEM-encoded private key.
|
|
44
|
+
* @param {string} message - Message to sign (should be canonicalized JSON for a request).
|
|
45
|
+
* @returns {string} Base64-encoded DER signature.
|
|
46
|
+
*/
|
|
47
|
+
sign(privateKeyPem, message) {
|
|
48
|
+
// Validate inputs
|
|
49
|
+
if (!isString(message)) {
|
|
50
|
+
throw new CustodyError({ reason: "Message must be a string" });
|
|
51
|
+
}
|
|
52
|
+
if (!isString(privateKeyPem)) {
|
|
53
|
+
throw new CustodyError({
|
|
54
|
+
reason: "Invalid private key: Must be PEM-encoded secp256k1 private key",
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// Validate PEM structure: must have both BEGIN and END markers
|
|
58
|
+
const hasBeginMarker = privateKeyPem.includes("-----BEGIN EC PRIVATE KEY-----");
|
|
59
|
+
const hasEndMarker = privateKeyPem.includes("-----END EC PRIVATE KEY-----");
|
|
60
|
+
if (!hasBeginMarker || !hasEndMarker) {
|
|
61
|
+
throw new CustodyError({
|
|
62
|
+
reason: "Invalid private key: Must be PEM-encoded secp256k1 private key",
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
// Validate that the key can be parsed (catches malformed keys early)
|
|
66
|
+
try {
|
|
67
|
+
const key = createPrivateKey(privateKeyPem);
|
|
68
|
+
// Verify it's actually an EC key
|
|
69
|
+
if (key.asymmetricKeyType !== "ec") {
|
|
70
|
+
throw new CustodyError({
|
|
71
|
+
reason: "Invalid private key: Must be a secp256k1 private key",
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// Verify it's secp256k1 curve (if details are available)
|
|
75
|
+
const keyDetails = key.asymmetricKeyDetails;
|
|
76
|
+
if (keyDetails && keyDetails.namedCurve !== "secp256k1") {
|
|
77
|
+
throw new CustodyError({
|
|
78
|
+
reason: "Invalid private key: Must be a secp256k1 private key",
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
if (error instanceof CustodyError) {
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
throw new CustodyError({
|
|
87
|
+
reason: "Invalid private key: Failed to parse PEM-encoded secp256k1 private key",
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
// Step 1: Create a Buffer from the message
|
|
91
|
+
const messageBuffer = Buffer.from(message);
|
|
92
|
+
// Step 2: Sign the message using secp256k1
|
|
93
|
+
const signature = sign(null, messageBuffer, {
|
|
94
|
+
key: privateKeyPem,
|
|
95
|
+
dsaEncoding: "der",
|
|
96
|
+
});
|
|
97
|
+
// Step 3: Return Base64-encoded DER signature
|
|
98
|
+
return signature.toString("base64");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=secp256k1.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256k1.service.js","sourceRoot":"","sources":["../../../src/services/keypairs/secp256k1.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { KeyPair, KeypairDefinition } from "./keypairs.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Service for generating and signing with secp256r1 keypairs.
|
|
4
|
+
*/
|
|
5
|
+
export declare class Secp256r1Service implements KeypairDefinition {
|
|
6
|
+
/**
|
|
7
|
+
* Generates a secp256r1 key pair
|
|
8
|
+
* @returns {KeyPair} Object containing private key in PEM format and public key in base64
|
|
9
|
+
*/
|
|
10
|
+
generate(): KeyPair;
|
|
11
|
+
/**
|
|
12
|
+
* Signs a message using the provided PEM-encoded secp256r1 private key.
|
|
13
|
+
* This implementation follows the pattern:
|
|
14
|
+
* 1. Create a Buffer from the message
|
|
15
|
+
* 2. Sign the message with secp256r1
|
|
16
|
+
* 3. Return Base64-encoded DER signature
|
|
17
|
+
*
|
|
18
|
+
* @param {string} privateKeyPem - PEM-encoded private key.
|
|
19
|
+
* @param {string} message - Message to sign (should be canonicalized JSON for a request).
|
|
20
|
+
* @returns {string} Base64-encoded DER signature.
|
|
21
|
+
*/
|
|
22
|
+
sign(privateKeyPem: string, message: string): string;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=secp256r1.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256r1.service.d.ts","sourceRoot":"","sources":["../../../src/services/keypairs/secp256r1.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAErE;;GAEG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD;;;OAGG;IACH,QAAQ,IAAI,OAAO;IA0BnB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CAyDrD"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { createPrivateKey, generateKeyPairSync, sign } from "crypto";
|
|
2
|
+
import { isString } from "../../helpers/index.js";
|
|
3
|
+
import { CustodyError } from "../../models/custody-error.js";
|
|
4
|
+
/**
|
|
5
|
+
* Service for generating and signing with secp256r1 keypairs.
|
|
6
|
+
*/
|
|
7
|
+
export class Secp256r1Service {
|
|
8
|
+
/**
|
|
9
|
+
* Generates a secp256r1 key pair
|
|
10
|
+
* @returns {KeyPair} Object containing private key in PEM format and public key in base64
|
|
11
|
+
*/
|
|
12
|
+
generate() {
|
|
13
|
+
try {
|
|
14
|
+
const { privateKey, publicKey } = generateKeyPairSync("ec", {
|
|
15
|
+
namedCurve: "prime256v1",
|
|
16
|
+
publicKeyEncoding: {
|
|
17
|
+
type: "spki",
|
|
18
|
+
format: "der",
|
|
19
|
+
},
|
|
20
|
+
privateKeyEncoding: {
|
|
21
|
+
type: "sec1",
|
|
22
|
+
format: "pem",
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
// Encode the DER buffer to base64
|
|
26
|
+
const publicKeyDerBase64 = publicKey.toString("base64");
|
|
27
|
+
return {
|
|
28
|
+
privateKey: privateKey,
|
|
29
|
+
publicKey: publicKeyDerBase64,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
throw new Error("Failed to generate secp256r1 key pair", { cause: error });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Signs a message using the provided PEM-encoded secp256r1 private key.
|
|
38
|
+
* This implementation follows the pattern:
|
|
39
|
+
* 1. Create a Buffer from the message
|
|
40
|
+
* 2. Sign the message with secp256r1
|
|
41
|
+
* 3. Return Base64-encoded DER signature
|
|
42
|
+
*
|
|
43
|
+
* @param {string} privateKeyPem - PEM-encoded private key.
|
|
44
|
+
* @param {string} message - Message to sign (should be canonicalized JSON for a request).
|
|
45
|
+
* @returns {string} Base64-encoded DER signature.
|
|
46
|
+
*/
|
|
47
|
+
sign(privateKeyPem, message) {
|
|
48
|
+
// Validate inputs
|
|
49
|
+
if (!isString(message)) {
|
|
50
|
+
throw new CustodyError({ reason: "Message must be a string" });
|
|
51
|
+
}
|
|
52
|
+
if (!isString(privateKeyPem)) {
|
|
53
|
+
throw new CustodyError({
|
|
54
|
+
reason: "Invalid private key: Must be PEM-encoded secp256r1 private key",
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// Validate PEM structure: must have both BEGIN and END markers
|
|
58
|
+
const hasBeginMarker = privateKeyPem.includes("-----BEGIN EC PRIVATE KEY-----");
|
|
59
|
+
const hasEndMarker = privateKeyPem.includes("-----END EC PRIVATE KEY-----");
|
|
60
|
+
if (!hasBeginMarker || !hasEndMarker) {
|
|
61
|
+
throw new CustodyError({
|
|
62
|
+
reason: "Invalid private key: Must be PEM-encoded secp256r1 private key",
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
// Validate that the key can be parsed (catches malformed keys early)
|
|
66
|
+
try {
|
|
67
|
+
const key = createPrivateKey(privateKeyPem);
|
|
68
|
+
// Verify it's actually an EC key
|
|
69
|
+
if (key.asymmetricKeyType !== "ec") {
|
|
70
|
+
throw new CustodyError({
|
|
71
|
+
reason: "Invalid private key: Must be a secp256r1 private key",
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// Verify it's secp256r1 curve (prime256v1) (if details are available)
|
|
75
|
+
const keyDetails = key.asymmetricKeyDetails;
|
|
76
|
+
if (keyDetails && keyDetails.namedCurve !== "prime256v1") {
|
|
77
|
+
throw new CustodyError({
|
|
78
|
+
reason: "Invalid private key: Must be a secp256r1 private key",
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
if (error instanceof CustodyError) {
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
throw new CustodyError({
|
|
87
|
+
reason: "Invalid private key: Failed to parse PEM-encoded secp256r1 private key",
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
// Step 1: Create a Buffer from the message
|
|
91
|
+
const messageBuffer = Buffer.from(message);
|
|
92
|
+
// Step 2: Sign the message using secp256r1
|
|
93
|
+
const signature = sign(null, messageBuffer, {
|
|
94
|
+
key: privateKeyPem,
|
|
95
|
+
dsaEncoding: "der",
|
|
96
|
+
});
|
|
97
|
+
// Step 3: Return Base64-encoded DER signature
|
|
98
|
+
return signature.toString("base64");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=secp256r1.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256r1.service.js","sourceRoot":"","sources":["../../../src/services/keypairs/secp256r1.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/ledgers/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/ledgers/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { operations } from "../../models/custody-types.js";
|
|
2
|
+
export type GetLedgersQueryParams = operations["getLedgers"]["parameters"]["query"];
|
|
3
|
+
export type GetLedgerPathParams = operations["getLedger"]["parameters"]["path"];
|
|
4
|
+
export type GetLedgerFeePathParams = operations["getLedgerFees"]["parameters"]["path"];
|
|
5
|
+
export type ProcessEthereumContractCallPathParams = operations["processEthereumContractCall"]["parameters"]["path"];
|
|
6
|
+
export type ProcessEthereumContractCallBody = operations["processEthereumContractCall"]["requestBody"]["content"]["application/json"];
|
|
7
|
+
export type GetTrustedLedgerPathParams = operations["getTrustedLedger"]["parameters"]["path"];
|
|
8
|
+
export type GetTrustedLedgersQueryParams = operations["getTrustedLedgers"]["parameters"]["query"];
|
|
9
|
+
export type Core_TrustedLedgersCollection = operations["getLedgers"]["responses"]["200"]["content"]["application/json"];
|
|
10
|
+
export type Core_TrustedLedger = operations["getLedger"]["responses"]["200"]["content"]["application/json"];
|
|
11
|
+
export type Core_CurrentFees = operations["getLedgerFees"]["responses"]["200"]["content"]["application/json"];
|
|
12
|
+
export type Core_EthereumCallResponse = operations["processEthereumContractCall"]["responses"]["200"]["content"]["application/json"];
|
|
13
|
+
//# sourceMappingURL=ledgers.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledgers.types.d.ts","sourceRoot":"","sources":["../../../src/services/ledgers/ledgers.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAI/D,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAEnF,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/E,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtF,MAAM,MAAM,qCAAqC,GAC/C,UAAU,CAAC,6BAA6B,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AACjE,MAAM,MAAM,+BAA+B,GACzC,UAAU,CAAC,6BAA6B,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAEzF,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7F,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAIjG,MAAM,MAAM,6BAA6B,GACvC,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAE7E,MAAM,MAAM,kBAAkB,GAC5B,UAAU,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAE5E,MAAM,MAAM,gBAAgB,GAC1B,UAAU,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAEhF,MAAM,MAAM,yBAAyB,GACnC,UAAU,CAAC,6BAA6B,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledgers.types.js","sourceRoot":"","sources":["../../../src/services/ledgers/ledgers.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/policies/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/policies/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { components, operations } from "../../models/custody-types.js";
|
|
2
|
+
export type GetPoliciesPathParams = operations["getPolicies"]["parameters"]["path"];
|
|
3
|
+
export type GetPoliciesQueryParams = operations["getPolicies"]["parameters"]["query"];
|
|
4
|
+
export type GetPolicyPathParams = operations["getPolicy"]["parameters"]["path"];
|
|
5
|
+
export type Core_TrustedPoliciesCollection = components["schemas"]["Core_TrustedPoliciesCollection"];
|
|
6
|
+
export type Core_TrustedPolicy = components["schemas"]["Core_TrustedPolicy"];
|
|
7
|
+
export type Core_Policy = components["schemas"]["Core_Policy"];
|
|
8
|
+
export type Core_PolicyScope = components["schemas"]["Core_PolicyScope"];
|
|
9
|
+
export type Core_PolicyCondition = components["schemas"]["Core_PolicyCondition"];
|
|
10
|
+
export type Core_PolicyCondition_And = components["schemas"]["Core_PolicyCondition_And"];
|
|
11
|
+
export type Core_PolicyCondition_Or = components["schemas"]["Core_PolicyCondition_Or"];
|
|
12
|
+
export type Core_PolicyCondition_Expression = components["schemas"]["Core_PolicyCondition_Expression"];
|
|
13
|
+
//# sourceMappingURL=policies.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.types.d.ts","sourceRoot":"","sources":["../../../src/services/policies/policies.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAG3E,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AACnF,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AACrF,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAG/E,MAAM,MAAM,8BAA8B,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gCAAgC,CAAC,CAAA;AACpG,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAA;AAC5E,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAA;AAC9D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AACxE,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAA;AAChF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAA;AACxF,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC,CAAA;AACtF,MAAM,MAAM,+BAA+B,GACzC,UAAU,CAAC,SAAS,CAAC,CAAC,iCAAiC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.types.js","sourceRoot":"","sources":["../../../src/services/policies/policies.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/requests/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/requests/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { components, operations } from "../../models/custody-types.js";
|
|
2
|
+
export type GetRequestStatePathParams = operations["getRequestState"]["parameters"]["path"];
|
|
3
|
+
export type GetRequestStateQueryParams = operations["getRequestState"]["parameters"]["query"];
|
|
4
|
+
export type GetAllUserRequestsStateQueryParams = operations["getAllUserRequestsState"]["parameters"]["query"];
|
|
5
|
+
export type GetAllUserRequestsStateInDomainPathParams = operations["getAllUserRequestsStateInDomain"]["parameters"]["path"];
|
|
6
|
+
export type GetAllUserRequestsStateInDomainQueryParams = operations["getAllUserRequestsStateInDomain"]["parameters"]["query"];
|
|
7
|
+
export type Core_RequestState = components["schemas"]["Core_RequestState"];
|
|
8
|
+
//# sourceMappingURL=requests.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requests.types.d.ts","sourceRoot":"","sources":["../../../src/services/requests/requests.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAI3E,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAC3F,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAE7F,MAAM,MAAM,kCAAkC,GAC5C,UAAU,CAAC,yBAAyB,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAE9D,MAAM,MAAM,yCAAyC,GACnD,UAAU,CAAC,iCAAiC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AACrE,MAAM,MAAM,0CAA0C,GACpD,UAAU,CAAC,iCAAiC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAItE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requests.types.js","sourceRoot":"","sources":["../../../src/services/requests/requests.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tickers/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/tickers/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { operations } from "../../models/custody-types.js";
|
|
2
|
+
export type GetTickersQueryParams = operations["getTickers"]["parameters"]["query"];
|
|
3
|
+
export type GetTickerPathParams = operations["getTicker"]["parameters"]["path"];
|
|
4
|
+
export type Core_TickersCollection = operations["getTickers"]["responses"]["200"]["content"]["application/json"];
|
|
5
|
+
export type Core_ApiTicker = operations["getTicker"]["responses"]["200"]["content"]["application/json"];
|
|
6
|
+
//# sourceMappingURL=tickers.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tickers.types.d.ts","sourceRoot":"","sources":["../../../src/services/tickers/tickers.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAI/D,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAEnF,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAI/E,MAAM,MAAM,sBAAsB,GAChC,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAE7E,MAAM,MAAM,cAAc,GACxB,UAAU,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tickers.types.js","sourceRoot":"","sources":["../../../src/services/tickers/tickers.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/transactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { components, operations } from "../../models/custody-types.js";
|
|
2
|
+
export type GetTransactionOrdersPathParams = operations["getOrders"]["parameters"]["path"];
|
|
3
|
+
export type GetTransactionOrdersQueryParams = operations["getOrders"]["parameters"]["query"];
|
|
4
|
+
export type GetTransactionOrderDetailsPathParams = operations["getOrder"]["parameters"]["path"];
|
|
5
|
+
export type TransferTransactionOrderPathParams = operations["getTransfers"]["parameters"]["path"];
|
|
6
|
+
export type TransferTransactionOrderQueryParams = operations["getTransfers"]["parameters"]["query"];
|
|
7
|
+
export type GetTransferDetailsPathParams = operations["getTransfer"]["parameters"]["path"];
|
|
8
|
+
export type GetTransactionsPathParams = operations["getTransactions"]["parameters"]["path"];
|
|
9
|
+
export type GetTransactionsQueryParams = operations["getTransactions"]["parameters"]["query"];
|
|
10
|
+
export type GetTransactionDetailsPathParams = operations["getTransaction"]["parameters"]["path"];
|
|
11
|
+
export type GetTransactionDetailsQueryParams = operations["getTransaction"]["parameters"]["query"];
|
|
12
|
+
export type DryRunTransactionPathParams = operations["dryRunTransaction"]["parameters"]["path"];
|
|
13
|
+
export type Core_DryRunTransactionParameters = operations["dryRunTransaction"]["requestBody"]["content"]["application/json"];
|
|
14
|
+
export type Core_TrustedTransactionOrdersCollection = components["schemas"]["Core_TrustedTransactionOrdersCollection"];
|
|
15
|
+
export type Core_TrustedTransactionOrderDetails = components["schemas"]["Core_TrustedTransactionOrder"];
|
|
16
|
+
export type Core_TransfersCollection = components["schemas"]["Core_TransfersCollection"];
|
|
17
|
+
export type Core_TransferDetails = components["schemas"]["Core_ApiTransfer"];
|
|
18
|
+
export type Core_TransactionsCollection = components["schemas"]["Core_TransactionsCollection"];
|
|
19
|
+
export type Core_TransactionDetails = components["schemas"]["Core_ApiTransaction"];
|
|
20
|
+
export type Core_TransactionDryRun = components["schemas"]["Core_TransactionDryRun"];
|
|
21
|
+
//# sourceMappingURL=transactions.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactions.types.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactions.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAG3E,MAAM,MAAM,8BAA8B,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1F,MAAM,MAAM,+BAA+B,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAE5F,MAAM,MAAM,oCAAoC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/F,MAAM,MAAM,kCAAkC,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AACjG,MAAM,MAAM,mCAAmC,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAEnG,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1F,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAC3F,MAAM,MAAM,0BAA0B,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAE7F,MAAM,MAAM,+BAA+B,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAChG,MAAM,MAAM,gCAAgC,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAElG,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/F,MAAM,MAAM,gCAAgC,GAC1C,UAAU,CAAC,mBAAmB,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAG/E,MAAM,MAAM,uCAAuC,GACjD,UAAU,CAAC,SAAS,CAAC,CAAC,yCAAyC,CAAC,CAAA;AAElE,MAAM,MAAM,mCAAmC,GAC7C,UAAU,CAAC,SAAS,CAAC,CAAC,8BAA8B,CAAC,CAAA;AAEvD,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAA;AAExF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAE5E,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,6BAA6B,CAAC,CAAA;AAE9F,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAA;AAElF,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactions.types.js","sourceRoot":"","sources":["../../../src/services/transactions/transactions.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/user-invitations/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/user-invitations/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA"}
|