@startale/app-sdk 1.0.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 +13 -0
- package/README.md +116 -0
- package/dist/app-sdk.js +36226 -0
- package/dist/app-sdk.js.map +1 -0
- package/dist/app-sdk.min.js +15 -0
- package/dist/app-sdk.min.js.map +1 -0
- package/dist/browser-entry.d.ts +15 -0
- package/dist/browser-entry.d.ts.map +1 -0
- package/dist/browser-entry.js +19 -0
- package/dist/browser-entry.js.map +1 -0
- package/dist/core/communicator/Communicator.d.ts +47 -0
- package/dist/core/communicator/Communicator.d.ts.map +1 -0
- package/dist/core/communicator/Communicator.js +107 -0
- package/dist/core/communicator/Communicator.js.map +1 -0
- package/dist/core/constants.d.ts +5 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +6 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/error/constants.d.ts +96 -0
- package/dist/core/error/constants.d.ts.map +1 -0
- package/dist/core/error/constants.js +94 -0
- package/dist/core/error/constants.js.map +1 -0
- package/dist/core/error/errors.d.ts +74 -0
- package/dist/core/error/errors.d.ts.map +1 -0
- package/dist/core/error/errors.js +138 -0
- package/dist/core/error/errors.js.map +1 -0
- package/dist/core/error/serialize.d.ts +13 -0
- package/dist/core/error/serialize.d.ts.map +1 -0
- package/dist/core/error/serialize.js +43 -0
- package/dist/core/error/serialize.js.map +1 -0
- package/dist/core/error/utils.d.ts +31 -0
- package/dist/core/error/utils.d.ts.map +1 -0
- package/dist/core/error/utils.js +109 -0
- package/dist/core/error/utils.js.map +1 -0
- package/dist/core/message/ConfigMessage.d.ts +6 -0
- package/dist/core/message/ConfigMessage.d.ts.map +1 -0
- package/dist/core/message/ConfigMessage.js +2 -0
- package/dist/core/message/ConfigMessage.js.map +1 -0
- package/dist/core/message/Message.d.ts +8 -0
- package/dist/core/message/Message.d.ts.map +1 -0
- package/dist/core/message/Message.js +2 -0
- package/dist/core/message/Message.js.map +1 -0
- package/dist/core/message/RPCMessage.d.ts +31 -0
- package/dist/core/message/RPCMessage.d.ts.map +1 -0
- package/dist/core/message/RPCMessage.js +2 -0
- package/dist/core/message/RPCMessage.js.map +1 -0
- package/dist/core/message/RPCRequest.d.ts +6 -0
- package/dist/core/message/RPCRequest.d.ts.map +1 -0
- package/dist/core/message/RPCRequest.js +2 -0
- package/dist/core/message/RPCRequest.js.map +1 -0
- package/dist/core/message/RPCResponse.d.ts +23 -0
- package/dist/core/message/RPCResponse.d.ts.map +1 -0
- package/dist/core/message/RPCResponse.js +2 -0
- package/dist/core/message/RPCResponse.js.map +1 -0
- package/dist/core/provider/interface.d.ts +94 -0
- package/dist/core/provider/interface.d.ts.map +1 -0
- package/dist/core/provider/interface.js +4 -0
- package/dist/core/provider/interface.js.map +1 -0
- package/dist/core/rpc/coinbase_fetchSpendPermissions.d.ts +50 -0
- package/dist/core/rpc/coinbase_fetchSpendPermissions.d.ts.map +1 -0
- package/dist/core/rpc/coinbase_fetchSpendPermissions.js +2 -0
- package/dist/core/rpc/coinbase_fetchSpendPermissions.js.map +1 -0
- package/dist/core/rpc/wallet_addSubAccount.d.ts +37 -0
- package/dist/core/rpc/wallet_addSubAccount.d.ts.map +1 -0
- package/dist/core/rpc/wallet_addSubAccount.js +2 -0
- package/dist/core/rpc/wallet_addSubAccount.js.map +1 -0
- package/dist/core/rpc/wallet_connect.d.ts +64 -0
- package/dist/core/rpc/wallet_connect.d.ts.map +1 -0
- package/dist/core/rpc/wallet_connect.js +2 -0
- package/dist/core/rpc/wallet_connect.js.map +1 -0
- package/dist/core/rpc/wallet_getSubAccount.d.ts +14 -0
- package/dist/core/rpc/wallet_getSubAccount.d.ts.map +1 -0
- package/dist/core/rpc/wallet_getSubAccount.js +2 -0
- package/dist/core/rpc/wallet_getSubAccount.js.map +1 -0
- package/dist/core/rpc/wallet_prepareCalls.d.ts +28 -0
- package/dist/core/rpc/wallet_prepareCalls.d.ts.map +1 -0
- package/dist/core/rpc/wallet_prepareCalls.js +2 -0
- package/dist/core/rpc/wallet_prepareCalls.js.map +1 -0
- package/dist/core/rpc/wallet_sendPreparedCalls.d.ts +47 -0
- package/dist/core/rpc/wallet_sendPreparedCalls.d.ts.map +1 -0
- package/dist/core/rpc/wallet_sendPreparedCalls.js +2 -0
- package/dist/core/rpc/wallet_sendPreparedCalls.js.map +1 -0
- package/dist/core/telemetry/events/communicator.d.ts +4 -0
- package/dist/core/telemetry/events/communicator.d.ts.map +1 -0
- package/dist/core/telemetry/events/communicator.js +20 -0
- package/dist/core/telemetry/events/communicator.js.map +1 -0
- package/dist/core/telemetry/events/dialog.d.ts +15 -0
- package/dist/core/telemetry/events/dialog.d.ts.map +1 -0
- package/dist/core/telemetry/events/dialog.js +24 -0
- package/dist/core/telemetry/events/dialog.js.map +1 -0
- package/dist/core/telemetry/events/payment.d.ts +31 -0
- package/dist/core/telemetry/events/payment.d.ts.map +1 -0
- package/dist/core/telemetry/events/payment.js +68 -0
- package/dist/core/telemetry/events/payment.js.map +1 -0
- package/dist/core/telemetry/events/provider.d.ts +14 -0
- package/dist/core/telemetry/events/provider.d.ts.map +1 -0
- package/dist/core/telemetry/events/provider.js +30 -0
- package/dist/core/telemetry/events/provider.js.map +1 -0
- package/dist/core/telemetry/events/scw-signer.d.ts +27 -0
- package/dist/core/telemetry/events/scw-signer.d.ts.map +1 -0
- package/dist/core/telemetry/events/scw-signer.js +65 -0
- package/dist/core/telemetry/events/scw-signer.js.map +1 -0
- package/dist/core/telemetry/events/scw-sub-account.d.ts +40 -0
- package/dist/core/telemetry/events/scw-sub-account.d.ts.map +1 -0
- package/dist/core/telemetry/events/scw-sub-account.js +96 -0
- package/dist/core/telemetry/events/scw-sub-account.js.map +1 -0
- package/dist/core/telemetry/events/spend-permission.d.ts +6 -0
- package/dist/core/telemetry/events/spend-permission.d.ts.map +1 -0
- package/dist/core/telemetry/events/spend-permission.js +21 -0
- package/dist/core/telemetry/events/spend-permission.js.map +1 -0
- package/dist/core/telemetry/initCCA.d.ts +2 -0
- package/dist/core/telemetry/initCCA.d.ts.map +1 -0
- package/dist/core/telemetry/initCCA.js +43 -0
- package/dist/core/telemetry/initCCA.js.map +1 -0
- package/dist/core/telemetry/logEvent.d.ts +72 -0
- package/dist/core/telemetry/logEvent.d.ts.map +1 -0
- package/dist/core/telemetry/logEvent.js +62 -0
- package/dist/core/telemetry/logEvent.js.map +1 -0
- package/dist/core/telemetry/telemetry-content.d.ts +2 -0
- package/dist/core/telemetry/telemetry-content.d.ts.map +1 -0
- package/dist/core/telemetry/telemetry-content.js +5526 -0
- package/dist/core/telemetry/telemetry-content.js.map +1 -0
- package/dist/core/telemetry/utils.d.ts +2 -0
- package/dist/core/telemetry/utils.d.ts.map +1 -0
- package/dist/core/telemetry/utils.js +7 -0
- package/dist/core/telemetry/utils.js.map +1 -0
- package/dist/core/type/index.d.ts +21 -0
- package/dist/core/type/index.d.ts.map +1 -0
- package/dist/core/type/index.js +10 -0
- package/dist/core/type/index.js.map +1 -0
- package/dist/core/type/util.d.ts +28 -0
- package/dist/core/type/util.d.ts.map +1 -0
- package/dist/core/type/util.js +158 -0
- package/dist/core/type/util.js.map +1 -0
- package/dist/core/username/getDisplayableUsername.d.ts +3 -0
- package/dist/core/username/getDisplayableUsername.d.ts.map +1 -0
- package/dist/core/username/getDisplayableUsername.js +7 -0
- package/dist/core/username/getDisplayableUsername.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/interface/builder/core/BaseAccountProvider.d.ts +11 -0
- package/dist/interface/builder/core/BaseAccountProvider.d.ts.map +1 -0
- package/dist/interface/builder/core/BaseAccountProvider.js +141 -0
- package/dist/interface/builder/core/BaseAccountProvider.js.map +1 -0
- package/dist/interface/builder/core/createBaseAccountSDK.d.ts +27 -0
- package/dist/interface/builder/core/createBaseAccountSDK.d.ts.map +1 -0
- package/dist/interface/builder/core/createBaseAccountSDK.js +149 -0
- package/dist/interface/builder/core/createBaseAccountSDK.js.map +1 -0
- package/dist/interface/builder/core/getInjectedProvider.d.ts +13 -0
- package/dist/interface/builder/core/getInjectedProvider.d.ts.map +1 -0
- package/dist/interface/builder/core/getInjectedProvider.js +10 -0
- package/dist/interface/builder/core/getInjectedProvider.js.map +1 -0
- package/dist/interface/payment/base.d.ts +32 -0
- package/dist/interface/payment/base.d.ts.map +1 -0
- package/dist/interface/payment/base.js +16 -0
- package/dist/interface/payment/base.js.map +1 -0
- package/dist/interface/payment/constants.d.ts +56 -0
- package/dist/interface/payment/constants.d.ts.map +1 -0
- package/dist/interface/payment/constants.js +45 -0
- package/dist/interface/payment/constants.js.map +1 -0
- package/dist/interface/payment/getPaymentStatus.d.ts +28 -0
- package/dist/interface/payment/getPaymentStatus.d.ts.map +1 -0
- package/dist/interface/payment/getPaymentStatus.js +243 -0
- package/dist/interface/payment/getPaymentStatus.js.map +1 -0
- package/dist/interface/payment/index.d.ts +9 -0
- package/dist/interface/payment/index.d.ts.map +1 -0
- package/dist/interface/payment/index.js +9 -0
- package/dist/interface/payment/index.js.map +1 -0
- package/dist/interface/payment/pay.d.ts +29 -0
- package/dist/interface/payment/pay.d.ts.map +1 -0
- package/dist/interface/payment/pay.js +90 -0
- package/dist/interface/payment/pay.js.map +1 -0
- package/dist/interface/payment/types.d.ts +123 -0
- package/dist/interface/payment/types.d.ts.map +1 -0
- package/dist/interface/payment/types.js +5 -0
- package/dist/interface/payment/types.js.map +1 -0
- package/dist/interface/payment/utils/sdkManager.d.ts +61 -0
- package/dist/interface/payment/utils/sdkManager.d.ts.map +1 -0
- package/dist/interface/payment/utils/sdkManager.js +84 -0
- package/dist/interface/payment/utils/sdkManager.js.map +1 -0
- package/dist/interface/payment/utils/translatePayment.d.ts +45 -0
- package/dist/interface/payment/utils/translatePayment.d.ts.map +1 -0
- package/dist/interface/payment/utils/translatePayment.js +70 -0
- package/dist/interface/payment/utils/translatePayment.js.map +1 -0
- package/dist/interface/payment/utils/validation.d.ts +16 -0
- package/dist/interface/payment/utils/validation.d.ts.map +1 -0
- package/dist/interface/payment/utils/validation.js +47 -0
- package/dist/interface/payment/utils/validation.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/index.d.ts +8 -0
- package/dist/interface/public-utilities/spend-permission/index.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/index.js +8 -0
- package/dist/interface/public-utilities/spend-permission/index.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/fetchPermissions.d.ts +14 -0
- package/dist/interface/public-utilities/spend-permission/methods/fetchPermissions.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/fetchPermissions.js +52 -0
- package/dist/interface/public-utilities/spend-permission/methods/fetchPermissions.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/getHash.d.ts +9 -0
- package/dist/interface/public-utilities/spend-permission/methods/getHash.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/getHash.js +54 -0
- package/dist/interface/public-utilities/spend-permission/methods/getHash.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/getPermissionStatus.d.ts +8 -0
- package/dist/interface/public-utilities/spend-permission/methods/getPermissionStatus.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/getPermissionStatus.js +85 -0
- package/dist/interface/public-utilities/spend-permission/methods/getPermissionStatus.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/prepareRevokeCallData.d.ts +10 -0
- package/dist/interface/public-utilities/spend-permission/methods/prepareRevokeCallData.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/prepareRevokeCallData.js +51 -0
- package/dist/interface/public-utilities/spend-permission/methods/prepareRevokeCallData.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/prepareSpendCallData.d.ts +11 -0
- package/dist/interface/public-utilities/spend-permission/methods/prepareSpendCallData.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/prepareSpendCallData.js +104 -0
- package/dist/interface/public-utilities/spend-permission/methods/prepareSpendCallData.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/requestRevoke.d.ts +11 -0
- package/dist/interface/public-utilities/spend-permission/methods/requestRevoke.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/requestRevoke.js +64 -0
- package/dist/interface/public-utilities/spend-permission/methods/requestRevoke.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/requestSpendPermission.d.ts +20 -0
- package/dist/interface/public-utilities/spend-permission/methods/requestSpendPermission.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/methods/requestSpendPermission.js +67 -0
- package/dist/interface/public-utilities/spend-permission/methods/requestSpendPermission.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/utils.d.ts +81 -0
- package/dist/interface/public-utilities/spend-permission/utils.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/utils.js +130 -0
- package/dist/interface/public-utilities/spend-permission/utils.js.map +1 -0
- package/dist/interface/public-utilities/spend-permission/withTelemetry.d.ts +2 -0
- package/dist/interface/public-utilities/spend-permission/withTelemetry.d.ts.map +1 -0
- package/dist/interface/public-utilities/spend-permission/withTelemetry.js +30 -0
- package/dist/interface/public-utilities/spend-permission/withTelemetry.js.map +1 -0
- package/dist/kms/crypto-key/index.d.ts +18 -0
- package/dist/kms/crypto-key/index.d.ts.map +1 -0
- package/dist/kms/crypto-key/index.js +97 -0
- package/dist/kms/crypto-key/index.js.map +1 -0
- package/dist/kms/crypto-key/storage.d.ts +7 -0
- package/dist/kms/crypto-key/storage.d.ts.map +1 -0
- package/dist/kms/crypto-key/storage.js +20 -0
- package/dist/kms/crypto-key/storage.js.map +1 -0
- package/dist/sign/app-sdk/SCWKeyManager.d.ts +15 -0
- package/dist/sign/app-sdk/SCWKeyManager.d.ts.map +1 -0
- package/dist/sign/app-sdk/SCWKeyManager.js +82 -0
- package/dist/sign/app-sdk/SCWKeyManager.js.map +1 -0
- package/dist/sign/app-sdk/Signer.d.ts +38 -0
- package/dist/sign/app-sdk/Signer.d.ts.map +1 -0
- package/dist/sign/app-sdk/Signer.js +659 -0
- package/dist/sign/app-sdk/Signer.js.map +1 -0
- package/dist/sign/app-sdk/utils/constants.d.ts +1945 -0
- package/dist/sign/app-sdk/utils/constants.d.ts.map +1 -0
- package/dist/sign/app-sdk/utils/constants.js +1321 -0
- package/dist/sign/app-sdk/utils/constants.js.map +1 -0
- package/dist/sign/app-sdk/utils/createSmartAccount.d.ts +63 -0
- package/dist/sign/app-sdk/utils/createSmartAccount.d.ts.map +1 -0
- package/dist/sign/app-sdk/utils/createSmartAccount.js +291 -0
- package/dist/sign/app-sdk/utils/createSmartAccount.js.map +1 -0
- package/dist/sign/app-sdk/utils/createSubAccountSigner.d.ts +23 -0
- package/dist/sign/app-sdk/utils/createSubAccountSigner.d.ts.map +1 -0
- package/dist/sign/app-sdk/utils/createSubAccountSigner.js +233 -0
- package/dist/sign/app-sdk/utils/createSubAccountSigner.js.map +1 -0
- package/dist/sign/app-sdk/utils/findOwnerIndex.d.ts +32 -0
- package/dist/sign/app-sdk/utils/findOwnerIndex.d.ts.map +1 -0
- package/dist/sign/app-sdk/utils/findOwnerIndex.js +56 -0
- package/dist/sign/app-sdk/utils/findOwnerIndex.js.map +1 -0
- package/dist/sign/app-sdk/utils/handleAddSubAccountOwner.d.ts +8 -0
- package/dist/sign/app-sdk/utils/handleAddSubAccountOwner.d.ts.map +1 -0
- package/dist/sign/app-sdk/utils/handleAddSubAccountOwner.js +78 -0
- package/dist/sign/app-sdk/utils/handleAddSubAccountOwner.js.map +1 -0
- package/dist/sign/app-sdk/utils/handleInsufficientBalance.d.ts +18 -0
- package/dist/sign/app-sdk/utils/handleInsufficientBalance.d.ts.map +1 -0
- package/dist/sign/app-sdk/utils/handleInsufficientBalance.js +27 -0
- package/dist/sign/app-sdk/utils/handleInsufficientBalance.js.map +1 -0
- package/dist/sign/app-sdk/utils/presentAddOwnerDialog.d.ts +2 -0
- package/dist/sign/app-sdk/utils/presentAddOwnerDialog.d.ts.map +1 -0
- package/dist/sign/app-sdk/utils/presentAddOwnerDialog.js +46 -0
- package/dist/sign/app-sdk/utils/presentAddOwnerDialog.js.map +1 -0
- package/dist/sign/app-sdk/utils/routeThroughGlobalAccount.d.ts +33 -0
- package/dist/sign/app-sdk/utils/routeThroughGlobalAccount.d.ts.map +1 -0
- package/dist/sign/app-sdk/utils/routeThroughGlobalAccount.js +76 -0
- package/dist/sign/app-sdk/utils/routeThroughGlobalAccount.js.map +1 -0
- package/dist/sign/app-sdk/utils.d.ts +220 -0
- package/dist/sign/app-sdk/utils.d.ts.map +1 -0
- package/dist/sign/app-sdk/utils.js +439 -0
- package/dist/sign/app-sdk/utils.js.map +1 -0
- package/dist/store/chain-clients/store.d.ts +10 -0
- package/dist/store/chain-clients/store.d.ts.map +1 -0
- package/dist/store/chain-clients/store.js +3 -0
- package/dist/store/chain-clients/store.js.map +1 -0
- package/dist/store/chain-clients/utils.d.ts +13 -0
- package/dist/store/chain-clients/utils.d.ts.map +1 -0
- package/dist/store/chain-clients/utils.js +77 -0
- package/dist/store/chain-clients/utils.js.map +1 -0
- package/dist/store/correlation-ids/store.d.ts +7 -0
- package/dist/store/correlation-ids/store.d.ts.map +1 -0
- package/dist/store/correlation-ids/store.js +32 -0
- package/dist/store/correlation-ids/store.js.map +1 -0
- package/dist/store/store.d.ts +186 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +167 -0
- package/dist/store/store.js.map +1 -0
- package/dist/ui/Dialog/Dialog-css.d.ts +3 -0
- package/dist/ui/Dialog/Dialog-css.d.ts.map +1 -0
- package/dist/ui/Dialog/Dialog-css.js +2 -0
- package/dist/ui/Dialog/Dialog-css.js.map +1 -0
- package/dist/ui/Dialog/Dialog.d.ts +28 -0
- package/dist/ui/Dialog/Dialog.d.ts.map +1 -0
- package/dist/ui/Dialog/Dialog.js +150 -0
- package/dist/ui/Dialog/Dialog.js.map +1 -0
- package/dist/ui/Dialog/index.d.ts +3 -0
- package/dist/ui/Dialog/index.d.ts.map +1 -0
- package/dist/ui/Dialog/index.js +15 -0
- package/dist/ui/Dialog/index.js.map +1 -0
- package/dist/ui/assets/BaseLogo.d.ts +4 -0
- package/dist/ui/assets/BaseLogo.d.ts.map +1 -0
- package/dist/ui/assets/BaseLogo.js +7 -0
- package/dist/ui/assets/BaseLogo.js.map +1 -0
- package/dist/ui/assets/BasePayLogo.d.ts +3 -0
- package/dist/ui/assets/BasePayLogo.d.ts.map +1 -0
- package/dist/ui/assets/BasePayLogo.js +4 -0
- package/dist/ui/assets/BasePayLogo.js.map +1 -0
- package/dist/ui/assets/colors.d.ts +18 -0
- package/dist/ui/assets/colors.d.ts.map +1 -0
- package/dist/ui/assets/colors.js +19 -0
- package/dist/ui/assets/colors.js.map +1 -0
- package/dist/ui/assets/fontFaceCSS.d.ts +2 -0
- package/dist/ui/assets/fontFaceCSS.d.ts.map +1 -0
- package/dist/ui/assets/fontFaceCSS.js +11 -0
- package/dist/ui/assets/fontFaceCSS.js.map +1 -0
- package/dist/ui/assets/index.d.ts +6 -0
- package/dist/ui/assets/index.d.ts.map +1 -0
- package/dist/ui/assets/index.js +6 -0
- package/dist/ui/assets/index.js.map +1 -0
- package/dist/ui/assets/injectFontStyle.d.ts +2 -0
- package/dist/ui/assets/injectFontStyle.d.ts.map +1 -0
- package/dist/ui/assets/injectFontStyle.js +12 -0
- package/dist/ui/assets/injectFontStyle.js.map +1 -0
- package/dist/util/assertPresence.d.ts +3 -0
- package/dist/util/assertPresence.d.ts.map +1 -0
- package/dist/util/assertPresence.js +18 -0
- package/dist/util/assertPresence.js.map +1 -0
- package/dist/util/assertSubAccount.d.ts +3 -0
- package/dist/util/assertSubAccount.d.ts.map +1 -0
- package/dist/util/assertSubAccount.js +26 -0
- package/dist/util/assertSubAccount.js.map +1 -0
- package/dist/util/checkCrossOriginOpenerPolicy.d.ts +2 -0
- package/dist/util/checkCrossOriginOpenerPolicy.d.ts.map +1 -0
- package/dist/util/checkCrossOriginOpenerPolicy.js +56 -0
- package/dist/util/checkCrossOriginOpenerPolicy.js.map +1 -0
- package/dist/util/cipher.d.ts +12 -0
- package/dist/util/cipher.d.ts.map +1 -0
- package/dist/util/cipher.js +65 -0
- package/dist/util/cipher.js.map +1 -0
- package/dist/util/encoding.d.ts +20 -0
- package/dist/util/encoding.d.ts.map +1 -0
- package/dist/util/encoding.js +48 -0
- package/dist/util/encoding.js.map +1 -0
- package/dist/util/get.d.ts +2 -0
- package/dist/util/get.d.ts.map +1 -0
- package/dist/util/get.js +14 -0
- package/dist/util/get.js.map +1 -0
- package/dist/util/provider.d.ts +10 -0
- package/dist/util/provider.d.ts.map +1 -0
- package/dist/util/provider.js +56 -0
- package/dist/util/provider.js.map +1 -0
- package/dist/util/validatePreferences.d.ts +13 -0
- package/dist/util/validatePreferences.d.ts.map +1 -0
- package/dist/util/validatePreferences.js +30 -0
- package/dist/util/validatePreferences.js.map +1 -0
- package/dist/util/web.d.ts +3 -0
- package/dist/util/web.d.ts.map +1 -0
- package/dist/util/web.js +100 -0
- package/dist/util/web.js.map +1 -0
- package/dist/vendor-js/CCA/ca.d.ts +2 -0
- package/dist/vendor-js/CCA/ca.d.ts.map +1 -0
- package/dist/vendor-js/CCA/ca.js +4608 -0
- package/dist/vendor-js/CCA/ca.js.map +1 -0
- package/package.json +109 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interface/payment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,GACd,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payment interface exports
|
|
3
|
+
*/
|
|
4
|
+
export { base } from './base.js';
|
|
5
|
+
export { getPaymentStatus } from './getPaymentStatus.js';
|
|
6
|
+
export { pay } from './pay.js';
|
|
7
|
+
// Export constants
|
|
8
|
+
export { CHAIN_IDS, TOKENS } from './constants.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interface/payment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAa9B,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { PaymentOptions, PaymentResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Pay a specified address with USDC on Base network using an ephemeral wallet
|
|
4
|
+
*
|
|
5
|
+
* @param options - Payment options
|
|
6
|
+
* @param options.amount - Amount of USDC to send as a string (e.g., "10.50")
|
|
7
|
+
* @param options.to - Ethereum address to send payment to
|
|
8
|
+
* @param options.testnet - Whether to use Base Sepolia testnet (default: false)
|
|
9
|
+
* @param options.payerInfo - Optional payer information configuration for data callbacks
|
|
10
|
+
* @returns Promise<PaymentResult> - Result of the payment transaction
|
|
11
|
+
* @throws Error if the payment fails
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* try {
|
|
16
|
+
* const payment = await pay({
|
|
17
|
+
* amount: "10.50",
|
|
18
|
+
* to: "0xFe21034794A5a574B94fE4fDfD16e005F1C96e51",
|
|
19
|
+
* testnet: true
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* console.log(`Payment sent! Transaction ID: ${payment.id}`);
|
|
23
|
+
* } catch (error) {
|
|
24
|
+
* console.error(`Payment failed: ${error.message}`);
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function pay(options: PaymentOptions): Promise<PaymentResult>;
|
|
29
|
+
//# sourceMappingURL=pay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../../../src/interface/payment/pay.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAK/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAmFzE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { logPaymentCompleted, logPaymentError, logPaymentStarted, } from '../../core/telemetry/events/payment.js';
|
|
2
|
+
import { executePaymentWithSDK } from './utils/sdkManager.js';
|
|
3
|
+
import { translatePaymentToSendCalls } from './utils/translatePayment.js';
|
|
4
|
+
import { normalizeAddress, validateStringAmount } from './utils/validation.js';
|
|
5
|
+
/**
|
|
6
|
+
* Pay a specified address with USDC on Base network using an ephemeral wallet
|
|
7
|
+
*
|
|
8
|
+
* @param options - Payment options
|
|
9
|
+
* @param options.amount - Amount of USDC to send as a string (e.g., "10.50")
|
|
10
|
+
* @param options.to - Ethereum address to send payment to
|
|
11
|
+
* @param options.testnet - Whether to use Base Sepolia testnet (default: false)
|
|
12
|
+
* @param options.payerInfo - Optional payer information configuration for data callbacks
|
|
13
|
+
* @returns Promise<PaymentResult> - Result of the payment transaction
|
|
14
|
+
* @throws Error if the payment fails
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* try {
|
|
19
|
+
* const payment = await pay({
|
|
20
|
+
* amount: "10.50",
|
|
21
|
+
* to: "0xFe21034794A5a574B94fE4fDfD16e005F1C96e51",
|
|
22
|
+
* testnet: true
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* console.log(`Payment sent! Transaction ID: ${payment.id}`);
|
|
26
|
+
* } catch (error) {
|
|
27
|
+
* console.error(`Payment failed: ${error.message}`);
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export async function pay(options) {
|
|
32
|
+
var _a;
|
|
33
|
+
const { amount, to, testnet = false, payerInfo, walletUrl, telemetry = true, } = options;
|
|
34
|
+
// Generate correlation ID for this payment request
|
|
35
|
+
const correlationId = crypto.randomUUID();
|
|
36
|
+
// Log payment started
|
|
37
|
+
if (telemetry) {
|
|
38
|
+
logPaymentStarted({ amount, testnet, correlationId });
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
validateStringAmount(amount, 6);
|
|
42
|
+
const normalizedAddress = normalizeAddress(to);
|
|
43
|
+
// Step 2: Translate payment to sendCalls format
|
|
44
|
+
const requestParams = translatePaymentToSendCalls(normalizedAddress, amount, testnet, payerInfo);
|
|
45
|
+
// Step 3: Execute payment with SDK
|
|
46
|
+
const executionResult = await executePaymentWithSDK(requestParams, testnet, walletUrl, telemetry);
|
|
47
|
+
// Log payment completed
|
|
48
|
+
if (telemetry) {
|
|
49
|
+
logPaymentCompleted({ amount, testnet, correlationId });
|
|
50
|
+
}
|
|
51
|
+
// Return success result
|
|
52
|
+
return {
|
|
53
|
+
success: true,
|
|
54
|
+
id: executionResult.transactionHash,
|
|
55
|
+
amount: amount,
|
|
56
|
+
to: normalizedAddress,
|
|
57
|
+
payerInfoResponses: executionResult.payerInfoResponses,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
// Extract error message
|
|
62
|
+
let errorMessage = 'Unknown error occurred';
|
|
63
|
+
if (error instanceof Error) {
|
|
64
|
+
errorMessage = error.message;
|
|
65
|
+
}
|
|
66
|
+
else if (typeof error === 'string') {
|
|
67
|
+
errorMessage = error;
|
|
68
|
+
}
|
|
69
|
+
else if (error && typeof error === 'object') {
|
|
70
|
+
// Check for various error message properties using optional chaining
|
|
71
|
+
const err = error;
|
|
72
|
+
if (typeof (err === null || err === void 0 ? void 0 : err.message) === 'string') {
|
|
73
|
+
errorMessage = err.message;
|
|
74
|
+
}
|
|
75
|
+
else if (typeof ((_a = err === null || err === void 0 ? void 0 : err.error) === null || _a === void 0 ? void 0 : _a.message) === 'string') {
|
|
76
|
+
errorMessage = err.error.message;
|
|
77
|
+
}
|
|
78
|
+
else if (typeof (err === null || err === void 0 ? void 0 : err.reason) === 'string') {
|
|
79
|
+
errorMessage = err.reason;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Log payment error
|
|
83
|
+
if (telemetry) {
|
|
84
|
+
logPaymentError({ amount, testnet, correlationId, errorMessage });
|
|
85
|
+
}
|
|
86
|
+
// Re-throw the original error
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=pay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../src/interface/payment/pay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { Address, Hex } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Information request type for payment data callbacks
|
|
4
|
+
*/
|
|
5
|
+
export interface InfoRequest {
|
|
6
|
+
/** The type of information being requested */
|
|
7
|
+
type: 'email' | 'physicalAddress' | 'phoneNumber' | 'name' | 'onchainAddress' | string;
|
|
8
|
+
/** Whether this information is optional */
|
|
9
|
+
optional?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Information responses collected from info requests
|
|
13
|
+
*/
|
|
14
|
+
export interface PayerInfoResponses {
|
|
15
|
+
/** User's email address */
|
|
16
|
+
email?: string;
|
|
17
|
+
/** User's physical address */
|
|
18
|
+
physicalAddress?: {
|
|
19
|
+
address1: string;
|
|
20
|
+
address2?: string;
|
|
21
|
+
city: string;
|
|
22
|
+
state: string;
|
|
23
|
+
postalCode: string;
|
|
24
|
+
countryCode: string;
|
|
25
|
+
name?: {
|
|
26
|
+
firstName: string;
|
|
27
|
+
familyName: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
/** User's phone number */
|
|
31
|
+
phoneNumber?: {
|
|
32
|
+
number: string;
|
|
33
|
+
country: string;
|
|
34
|
+
};
|
|
35
|
+
/** User's name */
|
|
36
|
+
name?: {
|
|
37
|
+
firstName: string;
|
|
38
|
+
familyName: string;
|
|
39
|
+
};
|
|
40
|
+
/** User's on-chain address */
|
|
41
|
+
onchainAddress?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Payer information configuration for payment data callbacks
|
|
45
|
+
*/
|
|
46
|
+
export interface PayerInfo {
|
|
47
|
+
/** Information requests from the payer */
|
|
48
|
+
requests: InfoRequest[];
|
|
49
|
+
/** Callback URL for sending the payer information */
|
|
50
|
+
callbackURL?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Options for making a payment
|
|
54
|
+
*/
|
|
55
|
+
export interface PaymentOptions {
|
|
56
|
+
/** Amount of USDC to send as a string (e.g., "10.50") */
|
|
57
|
+
amount: string;
|
|
58
|
+
/** Ethereum address to send payment to */
|
|
59
|
+
to: string;
|
|
60
|
+
/** Whether to use testnet (Base Sepolia). Defaults to false (mainnet) */
|
|
61
|
+
testnet?: boolean;
|
|
62
|
+
/** Optional payer information configuration for data callbacks */
|
|
63
|
+
payerInfo?: PayerInfo;
|
|
64
|
+
walletUrl?: string;
|
|
65
|
+
/** Whether to enable telemetry logging. Defaults to true */
|
|
66
|
+
telemetry?: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Successful payment result
|
|
70
|
+
*/
|
|
71
|
+
export interface PaymentSuccess {
|
|
72
|
+
success: true;
|
|
73
|
+
/** Transaction ID (hash) of the payment */
|
|
74
|
+
id: string;
|
|
75
|
+
/** The amount that was sent */
|
|
76
|
+
amount: string;
|
|
77
|
+
/** The address that received the payment */
|
|
78
|
+
to: Address;
|
|
79
|
+
/** Optional responses from information requests */
|
|
80
|
+
payerInfoResponses?: PayerInfoResponses;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Result of a payment transaction
|
|
84
|
+
*/
|
|
85
|
+
export type PaymentResult = PaymentSuccess;
|
|
86
|
+
/**
|
|
87
|
+
* Options for checking payment status
|
|
88
|
+
*/
|
|
89
|
+
export interface PaymentStatusOptions {
|
|
90
|
+
/** Transaction ID (userOp hash) to check status for */
|
|
91
|
+
id: string;
|
|
92
|
+
/** Whether to check on testnet (Base Sepolia). Defaults to false (mainnet) */
|
|
93
|
+
testnet?: boolean;
|
|
94
|
+
/** Whether to enable telemetry logging. Defaults to true */
|
|
95
|
+
telemetry?: boolean;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Possible payment status types
|
|
99
|
+
*/
|
|
100
|
+
export type PaymentStatusType = 'pending' | 'completed' | 'failed' | 'not_found';
|
|
101
|
+
/**
|
|
102
|
+
* Payment status information
|
|
103
|
+
*/
|
|
104
|
+
export interface PaymentStatus {
|
|
105
|
+
/** Current status of the payment */
|
|
106
|
+
status: PaymentStatusType;
|
|
107
|
+
/** Transaction ID that was checked */
|
|
108
|
+
id: Hex;
|
|
109
|
+
/** Human-readable message about the status */
|
|
110
|
+
message: string;
|
|
111
|
+
/** Sender address (present for pending, completed, and failed) */
|
|
112
|
+
sender?: string;
|
|
113
|
+
/** Amount sent (present for completed transactions, parsed from logs) */
|
|
114
|
+
amount?: string;
|
|
115
|
+
/** Recipient address (present for completed transactions, parsed from logs) */
|
|
116
|
+
recipient?: string;
|
|
117
|
+
/** Reason for transaction failure (present for failed status - describes why the transaction failed on-chain) */
|
|
118
|
+
reason?: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Internal type for payment execution result
|
|
122
|
+
*/
|
|
123
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interface/payment/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/interface/payment/types.ts"],"names":[],"mappings":";AAyIA;;GAEG"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Hex } from 'viem';
|
|
2
|
+
import { createBaseAccountSDK } from '../../builder/core/createBaseAccountSDK.js';
|
|
3
|
+
import type { PayerInfoResponses } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Type for wallet_sendCalls request parameters
|
|
6
|
+
*/
|
|
7
|
+
type WalletSendCallsRequestParams = {
|
|
8
|
+
version: string;
|
|
9
|
+
chainId: number;
|
|
10
|
+
calls: Array<{
|
|
11
|
+
to: Hex;
|
|
12
|
+
data: Hex;
|
|
13
|
+
value: Hex;
|
|
14
|
+
}>;
|
|
15
|
+
capabilities: Record<string, unknown>;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Type for payment execution result
|
|
19
|
+
*/
|
|
20
|
+
export interface PaymentExecutionResult {
|
|
21
|
+
transactionHash: Hex;
|
|
22
|
+
payerInfoResponses?: PayerInfoResponses;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates an ephemeral SDK instance configured for payments
|
|
26
|
+
* @param chainId - The chain ID to use
|
|
27
|
+
* @param walletUrl - Optional wallet URL to use
|
|
28
|
+
* @param telemetry - Whether to enable telemetry (defaults to true)
|
|
29
|
+
* @returns The configured SDK instance
|
|
30
|
+
*/
|
|
31
|
+
export declare function createEphemeralSDK(chainId: number, walletUrl?: string, telemetry?: boolean): {
|
|
32
|
+
getProvider: () => import("../../../browser-entry.js").ProviderInterface;
|
|
33
|
+
subAccount: {
|
|
34
|
+
create(accountParam: import("../../../core/rpc/wallet_addSubAccount.js").AddSubAccountAccount): Promise<import("../../../store/store.js").SubAccount>;
|
|
35
|
+
get(): Promise<import("../../../store/store.js").SubAccount | null>;
|
|
36
|
+
addOwner: ({ address, publicKey, chainId, }: {
|
|
37
|
+
address?: `0x${string}`;
|
|
38
|
+
publicKey?: `0x${string}`;
|
|
39
|
+
chainId: number;
|
|
40
|
+
}) => Promise<string>;
|
|
41
|
+
setToOwnerAccount(toSubAccountOwner: import("../../../store/store.js").ToOwnerAccountFn): void;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Executes a payment using the SDK
|
|
46
|
+
* @param sdk - The SDK instance
|
|
47
|
+
* @param requestParams - The wallet_sendCalls request parameters
|
|
48
|
+
* @returns The payment execution result with transaction hash and optional info responses
|
|
49
|
+
*/
|
|
50
|
+
export declare function executePayment(sdk: ReturnType<typeof createBaseAccountSDK>, requestParams: WalletSendCallsRequestParams): Promise<PaymentExecutionResult>;
|
|
51
|
+
/**
|
|
52
|
+
* Manages the complete payment flow with SDK lifecycle
|
|
53
|
+
* @param requestParams - The wallet_sendCalls request parameters
|
|
54
|
+
* @param testnet - Whether to use testnet
|
|
55
|
+
* @param walletUrl - Optional wallet URL to use
|
|
56
|
+
* @param telemetry - Whether to enable telemetry (defaults to true)
|
|
57
|
+
* @returns The payment execution result
|
|
58
|
+
*/
|
|
59
|
+
export declare function executePaymentWithSDK(requestParams: WalletSendCallsRequestParams, testnet: boolean, walletUrl?: string, telemetry?: boolean): Promise<PaymentExecutionResult>;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=sdkManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdkManager.d.ts","sourceRoot":"","sources":["../../../../src/interface/payment/utils/sdkManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AAEjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD;;GAEG;AACH,KAAK,4BAA4B,GAAG;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,GAAG,CAAA;QACP,IAAI,EAAE,GAAG,CAAA;QACT,KAAK,EAAE,GAAG,CAAA;KACV,CAAC,CAAA;IACF,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;AAaD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,eAAe,EAAE,GAAG,CAAA;IACpB,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACvC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,GAAE,OAAc;;;;;;mBA+F4G,CAAC;qBAA6B,CAAC;;;;;EAhFpK;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CACnC,GAAG,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,EAC5C,aAAa,EAAE,4BAA4B,GACzC,OAAO,CAAC,sBAAsB,CAAC,CAuCjC;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAC1C,aAAa,EAAE,4BAA4B,EAC3C,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,GAAE,OAAc,GACvB,OAAO,CAAC,sBAAsB,CAAC,CAcjC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { createBaseAccountSDK } from '../../builder/core/createBaseAccountSDK.js';
|
|
2
|
+
import { CHAIN_IDS } from '../constants.js';
|
|
3
|
+
/**
|
|
4
|
+
* Creates an ephemeral SDK instance configured for payments
|
|
5
|
+
* @param chainId - The chain ID to use
|
|
6
|
+
* @param walletUrl - Optional wallet URL to use
|
|
7
|
+
* @param telemetry - Whether to enable telemetry (defaults to true)
|
|
8
|
+
* @returns The configured SDK instance
|
|
9
|
+
*/
|
|
10
|
+
export function createEphemeralSDK(chainId, walletUrl, telemetry = true) {
|
|
11
|
+
const appName = typeof window !== 'undefined' ? window.location.origin : 'Base Pay SDK';
|
|
12
|
+
const sdk = createBaseAccountSDK({
|
|
13
|
+
appName: appName,
|
|
14
|
+
appChainIds: [chainId],
|
|
15
|
+
preference: {
|
|
16
|
+
telemetry: telemetry,
|
|
17
|
+
walletUrl,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
return sdk;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Executes a payment using the SDK
|
|
24
|
+
* @param sdk - The SDK instance
|
|
25
|
+
* @param requestParams - The wallet_sendCalls request parameters
|
|
26
|
+
* @returns The payment execution result with transaction hash and optional info responses
|
|
27
|
+
*/
|
|
28
|
+
export async function executePayment(sdk, requestParams) {
|
|
29
|
+
var _a;
|
|
30
|
+
const provider = sdk.getProvider();
|
|
31
|
+
const result = await provider.request({
|
|
32
|
+
method: 'wallet_sendCalls',
|
|
33
|
+
params: [requestParams],
|
|
34
|
+
});
|
|
35
|
+
let transactionHash;
|
|
36
|
+
let payerInfoResponses;
|
|
37
|
+
// Handle different response formats
|
|
38
|
+
if (typeof result === 'string' && result.length >= 66) {
|
|
39
|
+
// Standard response format - just a transaction hash
|
|
40
|
+
transactionHash = result.slice(0, 66);
|
|
41
|
+
}
|
|
42
|
+
else if (typeof result === 'object' && result !== null) {
|
|
43
|
+
// Object response format - contains id and capabilities with dataCallback (sendCalls 2.0.0+)
|
|
44
|
+
const resultObj = result;
|
|
45
|
+
// Extract transaction hash from id field
|
|
46
|
+
if (typeof resultObj.id === 'string' && resultObj.id.length >= 66) {
|
|
47
|
+
transactionHash = resultObj.id.slice(0, 66);
|
|
48
|
+
// Extract info responses from capabilities.dataCallback
|
|
49
|
+
if ((_a = resultObj.capabilities) === null || _a === void 0 ? void 0 : _a.dataCallback) {
|
|
50
|
+
payerInfoResponses = resultObj.capabilities.dataCallback;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
throw new Error(`Could not extract transaction hash from object response. Available fields: ${Object.keys(resultObj).join(', ')}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
throw new Error(`Unexpected response format from wallet_sendCalls: expected string with length > 66 or object with id, got ${typeof result}`);
|
|
59
|
+
}
|
|
60
|
+
return { transactionHash, payerInfoResponses };
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Manages the complete payment flow with SDK lifecycle
|
|
64
|
+
* @param requestParams - The wallet_sendCalls request parameters
|
|
65
|
+
* @param testnet - Whether to use testnet
|
|
66
|
+
* @param walletUrl - Optional wallet URL to use
|
|
67
|
+
* @param telemetry - Whether to enable telemetry (defaults to true)
|
|
68
|
+
* @returns The payment execution result
|
|
69
|
+
*/
|
|
70
|
+
export async function executePaymentWithSDK(requestParams, testnet, walletUrl, telemetry = true) {
|
|
71
|
+
const network = testnet ? 'baseSepolia' : 'base';
|
|
72
|
+
const chainId = CHAIN_IDS[network];
|
|
73
|
+
const sdk = createEphemeralSDK(chainId, walletUrl, telemetry);
|
|
74
|
+
const provider = sdk.getProvider();
|
|
75
|
+
try {
|
|
76
|
+
const result = await executePayment(sdk, requestParams);
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
// Clean up provider state for subsequent payments
|
|
81
|
+
await provider.disconnect();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=sdkManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdkManager.js","sourceRoot":"","sources":["../../../../src/interface/payment/utils/sdkManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type Address, type Hex } from 'viem';
|
|
2
|
+
import type { PayerInfo } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Encodes an ERC20 transfer call
|
|
5
|
+
* @param recipient - The recipient address
|
|
6
|
+
* @param amount - The amount in USDC (will be converted to 6 decimals)
|
|
7
|
+
* @returns The encoded function data
|
|
8
|
+
*/
|
|
9
|
+
export declare function encodeTransferCall(recipient: Address, amount: string): Hex;
|
|
10
|
+
/**
|
|
11
|
+
* Builds the wallet_sendCalls request parameters
|
|
12
|
+
* @param transferData - The encoded transfer call data
|
|
13
|
+
* @param testnet - Whether to use testnet
|
|
14
|
+
* @param payerInfo - Optional payer information configuration for data callbacks
|
|
15
|
+
* @returns The request parameters for wallet_sendCalls
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildSendCallsRequest(transferData: Hex, testnet: boolean, payerInfo?: PayerInfo): {
|
|
18
|
+
version: string;
|
|
19
|
+
chainId: 8453 | 84532;
|
|
20
|
+
calls: {
|
|
21
|
+
to: Address;
|
|
22
|
+
data: `0x${string}`;
|
|
23
|
+
value: Hex;
|
|
24
|
+
}[];
|
|
25
|
+
capabilities: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Translates payment options into a wallet_sendCalls request
|
|
29
|
+
* @param recipient - The recipient address
|
|
30
|
+
* @param amount - The amount to send
|
|
31
|
+
* @param testnet - Whether to use testnet
|
|
32
|
+
* @param payerInfo - Optional payer information configuration for data callbacks
|
|
33
|
+
* @returns The complete request parameters
|
|
34
|
+
*/
|
|
35
|
+
export declare function translatePaymentToSendCalls(recipient: Address, amount: string, testnet: boolean, payerInfo?: PayerInfo): {
|
|
36
|
+
version: string;
|
|
37
|
+
chainId: 8453 | 84532;
|
|
38
|
+
calls: {
|
|
39
|
+
to: Address;
|
|
40
|
+
data: `0x${string}`;
|
|
41
|
+
value: Hex;
|
|
42
|
+
}[];
|
|
43
|
+
capabilities: Record<string, unknown>;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=translatePayment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translatePayment.d.ts","sourceRoot":"","sources":["../../../../src/interface/payment/utils/translatePayment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAS1E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,GAAG,EACjB,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,SAAS;;;;YAQD,OAAO;;eAEV,GAAG;;;EA0BpB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAC1C,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,SAAS;;;;YA1CD,OAAO;;eAEV,GAAG;;;EA+CpB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { encodeFunctionData, parseUnits } from 'viem';
|
|
2
|
+
import { CHAIN_IDS, ERC20_TRANSFER_ABI, TOKENS } from '../constants.js';
|
|
3
|
+
/**
|
|
4
|
+
* Encodes an ERC20 transfer call
|
|
5
|
+
* @param recipient - The recipient address
|
|
6
|
+
* @param amount - The amount in USDC (will be converted to 6 decimals)
|
|
7
|
+
* @returns The encoded function data
|
|
8
|
+
*/
|
|
9
|
+
export function encodeTransferCall(recipient, amount) {
|
|
10
|
+
const amountInUnits = parseUnits(amount, TOKENS.USDC.decimals);
|
|
11
|
+
// Encode the transfer function call
|
|
12
|
+
return encodeFunctionData({
|
|
13
|
+
abi: ERC20_TRANSFER_ABI,
|
|
14
|
+
functionName: 'transfer',
|
|
15
|
+
args: [recipient, amountInUnits],
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Builds the wallet_sendCalls request parameters
|
|
20
|
+
* @param transferData - The encoded transfer call data
|
|
21
|
+
* @param testnet - Whether to use testnet
|
|
22
|
+
* @param payerInfo - Optional payer information configuration for data callbacks
|
|
23
|
+
* @returns The request parameters for wallet_sendCalls
|
|
24
|
+
*/
|
|
25
|
+
export function buildSendCallsRequest(transferData, testnet, payerInfo) {
|
|
26
|
+
const network = testnet ? 'baseSepolia' : 'base';
|
|
27
|
+
const chainId = CHAIN_IDS[network];
|
|
28
|
+
const usdcAddress = TOKENS.USDC.addresses[network];
|
|
29
|
+
// Build the call object
|
|
30
|
+
const call = {
|
|
31
|
+
to: usdcAddress,
|
|
32
|
+
data: transferData,
|
|
33
|
+
value: '0x0', // No ETH value for ERC20 transfer
|
|
34
|
+
};
|
|
35
|
+
// Build the capabilities object
|
|
36
|
+
const capabilities = {};
|
|
37
|
+
// Add dataCallback capability if payerInfo is provided
|
|
38
|
+
if (payerInfo && payerInfo.requests.length > 0) {
|
|
39
|
+
capabilities.dataCallback = Object.assign({ requests: payerInfo.requests.map((request) => {
|
|
40
|
+
var _a;
|
|
41
|
+
return ({
|
|
42
|
+
type: request.type,
|
|
43
|
+
optional: (_a = request.optional) !== null && _a !== void 0 ? _a : false,
|
|
44
|
+
});
|
|
45
|
+
}) }, (payerInfo.callbackURL && { callbackURL: payerInfo.callbackURL }));
|
|
46
|
+
}
|
|
47
|
+
// Build the request parameters
|
|
48
|
+
const requestParams = {
|
|
49
|
+
version: '2.0.0',
|
|
50
|
+
chainId: chainId,
|
|
51
|
+
calls: [call],
|
|
52
|
+
capabilities,
|
|
53
|
+
};
|
|
54
|
+
return requestParams;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Translates payment options into a wallet_sendCalls request
|
|
58
|
+
* @param recipient - The recipient address
|
|
59
|
+
* @param amount - The amount to send
|
|
60
|
+
* @param testnet - Whether to use testnet
|
|
61
|
+
* @param payerInfo - Optional payer information configuration for data callbacks
|
|
62
|
+
* @returns The complete request parameters
|
|
63
|
+
*/
|
|
64
|
+
export function translatePaymentToSendCalls(recipient, amount, testnet, payerInfo) {
|
|
65
|
+
// Encode the transfer call
|
|
66
|
+
const transferData = encodeTransferCall(recipient, amount);
|
|
67
|
+
// Build and return the sendCalls request
|
|
68
|
+
return buildSendCallsRequest(transferData, testnet, payerInfo);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=translatePayment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translatePayment.js","sourceRoot":"","sources":["../../../../src/interface/payment/utils/translatePayment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAA0B,MAAM,MAAM,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGvE;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAkB,EAAE,MAAc;IACpE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAE9D,oCAAoC;IACpC,OAAO,kBAAkB,CAAC;QACzB,GAAG,EAAE,kBAAkB;QACvB,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;KAChC,CAAC,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACpC,YAAiB,EACjB,OAAgB,EAChB,SAAqB;IAErB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAElD,wBAAwB;IACxB,MAAM,IAAI,GAAG;QACZ,EAAE,EAAE,WAAsB;QAC1B,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,KAAY,EAAE,kCAAkC;KACvD,CAAA;IAED,gCAAgC;IAChC,MAAM,YAAY,GAA4B,EAAE,CAAA;IAEhD,uDAAuD;IACvD,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,YAAY,CAAC,YAAY,mBACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;;gBAAC,OAAA,CAAC;oBAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,MAAA,OAAO,CAAC,QAAQ,mCAAI,KAAK;iBACnC,CAAC,CAAA;aAAA,CAAC,IACA,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CACpE,CAAA;IACF,CAAC;IAED,+BAA+B;IAC/B,MAAM,aAAa,GAAG;QACrB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,YAAY;KACZ,CAAA;IAED,OAAO,aAAa,CAAA;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAC1C,SAAkB,EAClB,MAAc,EACd,OAAgB,EAChB,SAAqB;IAErB,2BAA2B;IAC3B,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAE1D,yCAAyC;IACzC,OAAO,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAC/D,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Address } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Validates that the amount is a positive string with max decimal places
|
|
4
|
+
* @param amount - The amount to validate as a string
|
|
5
|
+
* @param maxDecimals - Maximum number of decimal places allowed
|
|
6
|
+
* @throws Error if amount is invalid
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateStringAmount(amount: string, maxDecimals: number): void;
|
|
9
|
+
/**
|
|
10
|
+
* Validates that the address is a valid Ethereum address
|
|
11
|
+
* @param address - The address to validate
|
|
12
|
+
* @throws Error if address is invalid
|
|
13
|
+
* @returns The checksummed address
|
|
14
|
+
*/
|
|
15
|
+
export declare function normalizeAddress(address: string): Address;
|
|
16
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/interface/payment/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,MAAM,CAAA;AAE/C;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GACjB,IAAI,CAyBN;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAYzD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { getAddress } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Validates that the amount is a positive string with max decimal places
|
|
4
|
+
* @param amount - The amount to validate as a string
|
|
5
|
+
* @param maxDecimals - Maximum number of decimal places allowed
|
|
6
|
+
* @throws Error if amount is invalid
|
|
7
|
+
*/
|
|
8
|
+
export function validateStringAmount(amount, maxDecimals) {
|
|
9
|
+
if (typeof amount !== 'string') {
|
|
10
|
+
throw new Error('Invalid amount: must be a string');
|
|
11
|
+
}
|
|
12
|
+
const numAmount = parseFloat(amount);
|
|
13
|
+
if (isNaN(numAmount)) {
|
|
14
|
+
throw new Error('Invalid amount: must be a valid number');
|
|
15
|
+
}
|
|
16
|
+
if (numAmount <= 0) {
|
|
17
|
+
throw new Error('Invalid amount: must be greater than 0');
|
|
18
|
+
}
|
|
19
|
+
// Only allow specified decimal places
|
|
20
|
+
const decimalIndex = amount.indexOf('.');
|
|
21
|
+
if (decimalIndex !== -1) {
|
|
22
|
+
const decimalPlaces = amount.length - decimalIndex - 1;
|
|
23
|
+
if (decimalPlaces > maxDecimals) {
|
|
24
|
+
throw new Error(`Invalid amount: pay only supports up to ${maxDecimals} decimal places`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Validates that the address is a valid Ethereum address
|
|
30
|
+
* @param address - The address to validate
|
|
31
|
+
* @throws Error if address is invalid
|
|
32
|
+
* @returns The checksummed address
|
|
33
|
+
*/
|
|
34
|
+
export function normalizeAddress(address) {
|
|
35
|
+
if (!address) {
|
|
36
|
+
throw new Error('Invalid address: address is required');
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
// getAddress will normalize the address to its checksummed version
|
|
40
|
+
// It will throw if the address is invalid
|
|
41
|
+
return getAddress(address);
|
|
42
|
+
}
|
|
43
|
+
catch (_error) {
|
|
44
|
+
throw new Error('Invalid address: must be a valid Ethereum address');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/interface/payment/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,MAAM,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CACnC,MAAc,EACd,WAAmB;IAEnB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAEpC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC1D,CAAC;IAED,sCAAsC;IACtC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,CAAA;QACtD,IAAI,aAAa,GAAG,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACd,2CAA2C,WAAW,iBAAiB,CACvE,CAAA;QACF,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,CAAC;QACJ,mEAAmE;QACnE,0CAA0C;QAC1C,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACrE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './methods/fetchPermissions.js';
|
|
2
|
+
export * from './methods/getHash.js';
|
|
3
|
+
export * from './methods/getPermissionStatus.js';
|
|
4
|
+
export * from './methods/prepareRevokeCallData.js';
|
|
5
|
+
export * from './methods/prepareSpendCallData.js';
|
|
6
|
+
export * from './methods/requestRevoke.js';
|
|
7
|
+
export * from './methods/requestSpendPermission.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|