@dynamic-labs-sdk/client 1.33.2 → 1.33.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{apiClient-B0eCQXEJ.native.esm.js → apiClient-BGh68_e6.native.esm.js} +3 -3
- package/dist/{apiClient-B0eCQXEJ.native.esm.js.map → apiClient-BGh68_e6.native.esm.js.map} +1 -1
- package/dist/core.cjs +5 -78
- package/dist/core.cjs.map +1 -1
- package/dist/core.esm.js +6 -77
- package/dist/core.esm.js.map +1 -1
- package/dist/core.native.esm.js +8 -79
- package/dist/core.native.esm.js.map +1 -1
- package/dist/exports/core.d.ts +0 -2
- package/dist/exports/core.d.ts.map +1 -1
- package/dist/exports/waas.d.ts +13 -1
- package/dist/exports/waas.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-CgxCy8qP.esm.js → getNetworkProviderFromNetworkId-BqiVs3Ni.esm.js} +2 -2
- package/dist/{getNetworkProviderFromNetworkId-CgxCy8qP.esm.js.map → getNetworkProviderFromNetworkId-BqiVs3Ni.esm.js.map} +1 -1
- package/dist/{getNetworkProviderFromNetworkId-DaxDzIv4.cjs → getNetworkProviderFromNetworkId-C_bqlRFD.cjs} +2 -2
- package/dist/{getNetworkProviderFromNetworkId-DaxDzIv4.cjs.map → getNetworkProviderFromNetworkId-C_bqlRFD.cjs.map} +1 -1
- package/dist/{getNetworkProviderFromNetworkId-OXG2gPby.native.esm.js → getNetworkProviderFromNetworkId-TczZgKDH.native.esm.js} +8 -8
- package/dist/getNetworkProviderFromNetworkId-TczZgKDH.native.esm.js.map +1 -0
- package/dist/{getSignedSessionId-DdMeCIV-.esm.js → getSignedSessionId-DRJW9tb8.esm.js} +3 -3
- package/dist/{getSignedSessionId-DdMeCIV-.esm.js.map → getSignedSessionId-DRJW9tb8.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-KiBgLtda.cjs → getSignedSessionId-Dc6_q9ph.cjs} +3 -3
- package/dist/{getSignedSessionId-KiBgLtda.cjs.map → getSignedSessionId-Dc6_q9ph.cjs.map} +1 -1
- package/dist/{getSignedSessionId-B2s2UuwJ.native.esm.js → getSignedSessionId-h-zAmDnk.native.esm.js} +3 -3
- package/dist/{getSignedSessionId-B2s2UuwJ.native.esm.js.map → getSignedSessionId-h-zAmDnk.native.esm.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-DzZ-0SaQ.esm.js → getVerifiedCredentialForWalletAccount-BWtWpYjd.esm.js} +2 -2
- package/dist/{getVerifiedCredentialForWalletAccount-DzZ-0SaQ.esm.js.map → getVerifiedCredentialForWalletAccount-BWtWpYjd.esm.js.map} +1 -1
- package/dist/{getVerifiedCredentialForWalletAccount-y2drOcyb.cjs → getVerifiedCredentialForWalletAccount-CgI__iTv.cjs} +2 -2
- package/dist/{getVerifiedCredentialForWalletAccount-y2drOcyb.cjs.map → getVerifiedCredentialForWalletAccount-CgI__iTv.cjs.map} +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +8 -8
- package/dist/index.esm.js.map +1 -1
- package/dist/index.native.esm.js +10 -10
- package/dist/index.native.esm.js.map +1 -1
- package/dist/{isMfaRequiredForAction-By7uHgpn.cjs → isMfaRequiredForAction-Aov24tU3.cjs} +2 -2
- package/dist/{isMfaRequiredForAction-By7uHgpn.cjs.map → isMfaRequiredForAction-Aov24tU3.cjs.map} +1 -1
- package/dist/{isMfaRequiredForAction-CXuuO-wy.native.esm.js → isMfaRequiredForAction-FW_GM4tb.native.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-CXuuO-wy.native.esm.js.map → isMfaRequiredForAction-FW_GM4tb.native.esm.js.map} +1 -1
- package/dist/{isMfaRequiredForAction-BLegdReE.esm.js → isMfaRequiredForAction-mcAjTfRu.esm.js} +2 -2
- package/dist/{isMfaRequiredForAction-BLegdReE.esm.js.map → isMfaRequiredForAction-mcAjTfRu.esm.js.map} +1 -1
- package/dist/{isUserOnboardingComplete-Bvh4NLBz.esm.js → isUserOnboardingComplete-BTvFsIW7.esm.js} +3 -3
- package/dist/{isUserOnboardingComplete-Bvh4NLBz.esm.js.map → isUserOnboardingComplete-BTvFsIW7.esm.js.map} +1 -1
- package/dist/{isUserOnboardingComplete-hn1rWlA-.native.esm.js → isUserOnboardingComplete-BzEm_9UF.native.esm.js} +3 -3
- package/dist/{isUserOnboardingComplete-hn1rWlA-.native.esm.js.map → isUserOnboardingComplete-BzEm_9UF.native.esm.js.map} +1 -1
- package/dist/{isUserOnboardingComplete-DMefkHRY.cjs → isUserOnboardingComplete-Deq_CabI.cjs} +3 -3
- package/dist/{isUserOnboardingComplete-DMefkHRY.cjs.map → isUserOnboardingComplete-Deq_CabI.cjs.map} +1 -1
- package/dist/{logoutWithReason-c1DmyRBx.cjs → logoutWithReason-BqgbyO5j.cjs} +30 -4
- package/dist/logoutWithReason-BqgbyO5j.cjs.map +1 -0
- package/dist/{logoutWithReason-B-cf-dUs.esm.js → logoutWithReason-Demgc354.esm.js} +25 -5
- package/dist/logoutWithReason-Demgc354.esm.js.map +1 -0
- package/dist/{logoutWithReason-C4AgSbjv.native.esm.js → logoutWithReason-rupibyb3.native.esm.js} +24 -4
- package/dist/logoutWithReason-rupibyb3.native.esm.js.map +1 -0
- package/dist/{migrateFromFireblocks-RCqy2qOG.cjs → migrateFromFireblocks-C1El-Dce.cjs} +2 -2
- package/dist/{migrateFromFireblocks-RCqy2qOG.cjs.map → migrateFromFireblocks-C1El-Dce.cjs.map} +1 -1
- package/dist/{migrateFromFireblocks-B0pkwAaK.native.esm.js → migrateFromFireblocks-Cc6JO6e2.native.esm.js} +2 -2
- package/dist/{migrateFromFireblocks-B0pkwAaK.native.esm.js.map → migrateFromFireblocks-Cc6JO6e2.native.esm.js.map} +1 -1
- package/dist/{migrateFromFireblocks-B76sFd7a.esm.js → migrateFromFireblocks-DSgWzuHJ.esm.js} +2 -2
- package/dist/{migrateFromFireblocks-B76sFd7a.esm.js.map → migrateFromFireblocks-DSgWzuHJ.esm.js.map} +1 -1
- package/dist/modules/sessionKeys/canonicalizeJson/canonicalizeJson.d.ts +20 -0
- package/dist/modules/sessionKeys/canonicalizeJson/canonicalizeJson.d.ts.map +1 -0
- package/dist/modules/sessionKeys/canonicalizeJson/index.d.ts +2 -0
- package/dist/modules/sessionKeys/canonicalizeJson/index.d.ts.map +1 -0
- package/dist/modules/sessionKeys/signBusinessAccountIntent/signBusinessAccountIntent.d.ts +39 -6
- package/dist/modules/sessionKeys/signBusinessAccountIntent/signBusinessAccountIntent.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/addBusinessAccountMember.d.ts +9 -3
- package/dist/modules/waas/businessAccounts/addBusinessAccountMember/addBusinessAccountMember.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/addWalletToBusinessAccount.d.ts +10 -3
- package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/addWalletToBusinessAccount.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/approveBusinessAccountProposal/approveBusinessAccountProposal.d.ts +43 -0
- package/dist/modules/waas/businessAccounts/approveBusinessAccountProposal/approveBusinessAccountProposal.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/approveBusinessAccountProposal/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/approveBusinessAccountProposal/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/businessAccounts.types.d.ts +249 -0
- package/dist/modules/waas/businessAccounts/businessAccounts.types.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/defineBusinessAccountRole/defineBusinessAccountRole.d.ts +45 -0
- package/dist/modules/waas/businessAccounts/defineBusinessAccountRole/defineBusinessAccountRole.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/defineBusinessAccountRole/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/defineBusinessAccountRole/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/deleteBusinessAccountRole/deleteBusinessAccountRole.d.ts +41 -0
- package/dist/modules/waas/businessAccounts/deleteBusinessAccountRole/deleteBusinessAccountRole.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/deleteBusinessAccountRole/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/deleteBusinessAccountRole/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/executeBusinessAccountProposal/executeBusinessAccountProposal.d.ts +39 -0
- package/dist/modules/waas/businessAccounts/executeBusinessAccountProposal/executeBusinessAccountProposal.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/executeBusinessAccountProposal/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/executeBusinessAccountProposal/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountGovernance/getBusinessAccountGovernance.d.ts +30 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountGovernance/getBusinessAccountGovernance.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountGovernance/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/getBusinessAccountGovernance/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountProposals/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountProposals/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountProposals/listBusinessAccountProposals.d.ts +26 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountProposals/listBusinessAccountProposals.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountProposalsAwaitingMyApproval/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountProposalsAwaitingMyApproval/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountProposalsAwaitingMyApproval/listBusinessAccountProposalsAwaitingMyApproval.d.ts +21 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountProposalsAwaitingMyApproval/listBusinessAccountProposalsAwaitingMyApproval.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountRoles/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountRoles/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountRoles/listBusinessAccountRoles.d.ts +26 -0
- package/dist/modules/waas/businessAccounts/listBusinessAccountRoles/listBusinessAccountRoles.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/removeBusinessAccountMember.d.ts +11 -2
- package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/removeBusinessAccountMember.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/removeBusinessAccountSigner.d.ts +11 -2
- package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/removeBusinessAccountSigner.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/removeBusinessAccountWallet/removeBusinessAccountWallet.d.ts +12 -4
- package/dist/modules/waas/businessAccounts/removeBusinessAccountWallet/removeBusinessAccountWallet.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/resendFields.d.ts +39 -0
- package/dist/modules/waas/businessAccounts/resendFields.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/setBusinessAccountGovernance/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/setBusinessAccountGovernance/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/setBusinessAccountGovernance/setBusinessAccountGovernance.d.ts +49 -0
- package/dist/modules/waas/businessAccounts/setBusinessAccountGovernance/setBusinessAccountGovernance.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/transferBusinessAccountOwnership/transferBusinessAccountOwnership.d.ts +11 -2
- package/dist/modules/waas/businessAccounts/transferBusinessAccountOwnership/transferBusinessAccountOwnership.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/updateBusinessAccountMemberRole/updateBusinessAccountMemberRole.d.ts +11 -2
- package/dist/modules/waas/businessAccounts/updateBusinessAccountMemberRole/updateBusinessAccountMemberRole.d.ts.map +1 -1
- package/dist/modules/waas/businessAccounts/vetoBusinessAccountProposal/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/vetoBusinessAccountProposal/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/vetoBusinessAccountProposal/vetoBusinessAccountProposal.d.ts +29 -0
- package/dist/modules/waas/businessAccounts/vetoBusinessAccountProposal/vetoBusinessAccountProposal.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/withdrawBusinessAccountProposalApproval/index.d.ts +2 -0
- package/dist/modules/waas/businessAccounts/withdrawBusinessAccountProposalApproval/index.d.ts.map +1 -0
- package/dist/modules/waas/businessAccounts/withdrawBusinessAccountProposalApproval/withdrawBusinessAccountProposalApproval.d.ts +29 -0
- package/dist/modules/waas/businessAccounts/withdrawBusinessAccountProposalApproval/withdrawBusinessAccountProposalApproval.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/createResilientIndexedDbStore/createResilientIndexedDbStore.d.ts +44 -0
- package/dist/services/resilientIndexedDbStore/createResilientIndexedDbStore/createResilientIndexedDbStore.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/createResilientIndexedDbStore/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/createResilientIndexedDbStore/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/errors/TransactionNotCompletedError.d.ts +5 -0
- package/dist/services/resilientIndexedDbStore/errors/TransactionNotCompletedError.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/resilientIndexedDbStore.types.d.ts +79 -0
- package/dist/services/resilientIndexedDbStore/resilientIndexedDbStore.types.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/applyMutation/applyMutation.d.ts +29 -0
- package/dist/services/resilientIndexedDbStore/utils/applyMutation/applyMutation.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/applyMutation/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/applyMutation/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/constants.d.ts +24 -0
- package/dist/services/resilientIndexedDbStore/utils/constants.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/createTombstoneStore/createTombstoneStore.d.ts +61 -0
- package/dist/services/resilientIndexedDbStore/utils/createTombstoneStore/createTombstoneStore.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/createTombstoneStore/index.d.ts +3 -0
- package/dist/services/resilientIndexedDbStore/utils/createTombstoneStore/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/createWorkQueue/createWorkQueue.d.ts +60 -0
- package/dist/services/resilientIndexedDbStore/utils/createWorkQueue/createWorkQueue.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/createWorkQueue/index.d.ts +3 -0
- package/dist/services/resilientIndexedDbStore/utils/createWorkQueue/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/deleteRecord/deleteRecord.d.ts +35 -0
- package/dist/services/resilientIndexedDbStore/utils/deleteRecord/deleteRecord.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/deleteRecord/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/deleteRecord/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/getBackoffDelay/getBackoffDelay.d.ts +22 -0
- package/dist/services/resilientIndexedDbStore/utils/getBackoffDelay/getBackoffDelay.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/getBackoffDelay/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/getBackoffDelay/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/getRecord/getRecord.d.ts +32 -0
- package/dist/services/resilientIndexedDbStore/utils/getRecord/getRecord.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/getRecord/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/getRecord/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/getRecordKey/getRecordKey.d.ts +27 -0
- package/dist/services/resilientIndexedDbStore/utils/getRecordKey/getRecordKey.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/getRecordKey/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/getRecordKey/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/getTransactionError/getTransactionError.d.ts +28 -0
- package/dist/services/resilientIndexedDbStore/utils/getTransactionError/getTransactionError.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/getTransactionError/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/getTransactionError/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/isPermanentWriteError/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/isPermanentWriteError/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/isPermanentWriteError/isPermanentWriteError.d.ts +20 -0
- package/dist/services/resilientIndexedDbStore/utils/isPermanentWriteError/isPermanentWriteError.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/openDatabase/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/openDatabase/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/openDatabase/openDatabase.d.ts +31 -0
- package/dist/services/resilientIndexedDbStore/utils/openDatabase/openDatabase.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/putRecord/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/putRecord/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/putRecord/putRecord.d.ts +37 -0
- package/dist/services/resilientIndexedDbStore/utils/putRecord/putRecord.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/readStoredValue/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/readStoredValue/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/readStoredValue/readStoredValue.d.ts +42 -0
- package/dist/services/resilientIndexedDbStore/utils/readStoredValue/readStoredValue.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/replayTombstones/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/replayTombstones/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/replayTombstones/replayTombstones.d.ts +31 -0
- package/dist/services/resilientIndexedDbStore/utils/replayTombstones/replayTombstones.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/runWithTimeout/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/runWithTimeout/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/runWithTimeout/runWithTimeout.d.ts +34 -0
- package/dist/services/resilientIndexedDbStore/utils/runWithTimeout/runWithTimeout.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/withDatabase/index.d.ts +2 -0
- package/dist/services/resilientIndexedDbStore/utils/withDatabase/index.d.ts.map +1 -0
- package/dist/services/resilientIndexedDbStore/utils/withDatabase/withDatabase.d.ts +39 -0
- package/dist/services/resilientIndexedDbStore/utils/withDatabase/withDatabase.d.ts.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/utils/retryOnFail/retryOnFail.d.ts.map +1 -1
- package/dist/utils/retryOnFetchError/retryOnFetchError.d.ts.map +1 -1
- package/dist/utils/waitForDelay/index.d.ts +2 -0
- package/dist/utils/waitForDelay/index.d.ts.map +1 -0
- package/dist/utils/waitForDelay/waitForDelay.d.ts +21 -0
- package/dist/utils/waitForDelay/waitForDelay.d.ts.map +1 -0
- package/dist/{waas-H5xyBfTI.esm.js → waas-BAcC_ZEU.esm.js} +688 -26
- package/dist/waas-BAcC_ZEU.esm.js.map +1 -0
- package/dist/{waas-DIlnOHm6.native.esm.js → waas-BnBxnaH4.native.esm.js} +688 -26
- package/dist/waas-BnBxnaH4.native.esm.js.map +1 -0
- package/dist/{waas-7vSYuH3H.cjs → waas-EJACWt9Q.cjs} +764 -24
- package/dist/waas-EJACWt9Q.cjs.map +1 -0
- package/dist/waas.cjs +18 -5
- package/dist/waas.esm.js +5 -5
- package/dist/waas.native.esm.js +5 -5
- package/dist/waasCore.cjs +5 -5
- package/dist/waasCore.esm.js +5 -5
- package/dist/waasCore.native.esm.js +5 -5
- package/package.json +3 -4
- package/dist/getNetworkProviderFromNetworkId-OXG2gPby.native.esm.js.map +0 -1
- package/dist/logoutWithReason-B-cf-dUs.esm.js.map +0 -1
- package/dist/logoutWithReason-C4AgSbjv.native.esm.js.map +0 -1
- package/dist/logoutWithReason-c1DmyRBx.cjs.map +0 -1
- package/dist/waas-7vSYuH3H.cjs.map +0 -1
- package/dist/waas-DIlnOHm6.native.esm.js.map +0 -1
- package/dist/waas-H5xyBfTI.esm.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Ct as getCore, Dt as name, F as formatWalletProviderKey, L as getChainFromVerifiedCredentialChain, Ot as version, P as getWalletAccounts, S as isWaasWalletProvider, T as DYNAMIC_WAAS_METADATA, b as isWaasWalletAccount, bt as getDefaultClient, g as InvalidParamError, ht as assertDefined, i as __refreshAuth_wrapped, n as NoWalletProviderFoundError, r as createApiClient, wt as BaseError, x as findWaasWalletProviderByChain } from "./apiClient-
|
|
2
|
-
import { n as isDynamicWaasEnabled, o as NotWaasWalletProviderError, r as getWaasWalletProviderFromWalletAccount } from "./migrateFromFireblocks-
|
|
3
|
-
import { c as
|
|
1
|
+
import { Ct as getCore, Dt as name, F as formatWalletProviderKey, L as getChainFromVerifiedCredentialChain, Ot as version, P as getWalletAccounts, S as isWaasWalletProvider, T as DYNAMIC_WAAS_METADATA, b as isWaasWalletAccount, bt as getDefaultClient, g as InvalidParamError, ht as assertDefined, i as __refreshAuth_wrapped, n as NoWalletProviderFoundError, r as createApiClient, wt as BaseError, x as findWaasWalletProviderByChain } from "./apiClient-BGh68_e6.native.esm.js";
|
|
2
|
+
import { n as isDynamicWaasEnabled, o as NotWaasWalletProviderError, r as getWaasWalletProviderFromWalletAccount } from "./migrateFromFireblocks-Cc6JO6e2.native.esm.js";
|
|
3
|
+
import { c as getVerifiedCredentialForWalletAccount, l as getWalletProviderByKey, t as __logoutWithReason_wrapped } from "./logoutWithReason-rupibyb3.native.esm.js";
|
|
4
4
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
5
|
-
import { JwtVerifiedCredentialFormatEnum, TokenScope, UserIdentifierTypeEnum, WaasChainEnum, WaasPolicyLayerRuleOperationOpEnum, WaasPolicyLayerUpdateRequestOpEnum, WaasPolicyRuleType, WaasSignerPolicyLayerUpdateRequestOpEnum, WaasWalletShareSetType, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
5
|
+
import { BusinessAccountProposalStatus, JwtVerifiedCredentialFormatEnum, TokenScope, UserIdentifierTypeEnum, WaasChainEnum, WaasPolicyLayerRuleOperationOpEnum, WaasPolicyLayerUpdateRequestOpEnum, WaasPolicyRuleType, WaasSignerPolicyLayerUpdateRequestOpEnum, WaasWalletShareSetType, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
6
6
|
|
|
7
7
|
//#region src/modules/waas/waas.consts.ts
|
|
8
8
|
/**
|
|
@@ -99,6 +99,39 @@ const parseGovernedResponse = async ({ fnName, response }) => {
|
|
|
99
99
|
return payload;
|
|
100
100
|
};
|
|
101
101
|
|
|
102
|
+
//#endregion
|
|
103
|
+
//#region src/modules/waas/businessAccounts/resendFields.ts
|
|
104
|
+
/**
|
|
105
|
+
* The `autoExecute`/`intent`/`intentSignature` fields shared by every governed
|
|
106
|
+
* mutation's request body.
|
|
107
|
+
*
|
|
108
|
+
* `autoExecute` is read only on the first call — once an intent is signed, it
|
|
109
|
+
* carries its own copy and the server ignores whatever this call sends, so an
|
|
110
|
+
* approver's consent can't be overridden after the fact.
|
|
111
|
+
*
|
|
112
|
+
* @param [params.autoExecute] - Whether to apply immediately on the completing
|
|
113
|
+
* approval. Only meaningful on the first (unsigned) call.
|
|
114
|
+
* @param [params.signed] - A previously-signed intent, to resend past
|
|
115
|
+
* `INTENT_REQUIRED`.
|
|
116
|
+
* @returns The fields to spread into a governed mutation's SDK request body.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* const body = { businessAccountId, ...resendFields({ signed }) };
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* @see {@link SignedBusinessAccountIntent} for what `signed` carries.
|
|
124
|
+
* @see {@link parseGovernedResponse} for reading the `intent` back off a 202.
|
|
125
|
+
* @notInstrumented
|
|
126
|
+
*/
|
|
127
|
+
const resendFields = ({ autoExecute, signed }) => ({
|
|
128
|
+
...autoExecute === void 0 ? {} : { autoExecute },
|
|
129
|
+
...signed ? {
|
|
130
|
+
intent: signed.intent,
|
|
131
|
+
intentSignature: signed.intentSignature
|
|
132
|
+
} : {}
|
|
133
|
+
});
|
|
134
|
+
|
|
102
135
|
//#endregion
|
|
103
136
|
//#region src/modules/waas/businessAccounts/addBusinessAccountMember/addBusinessAccountMember.ts
|
|
104
137
|
/**
|
|
@@ -112,19 +145,23 @@ const parseGovernedResponse = async ({ fnName, response }) => {
|
|
|
112
145
|
*
|
|
113
146
|
* When the account governs `addMember`, nothing is written and the 202 body is
|
|
114
147
|
* returned instead — first the intent to sign, then the proposal collecting
|
|
115
|
-
* approvals. Narrow it with `isBusinessAccountActionRequired`.
|
|
148
|
+
* approvals. Narrow it with `isBusinessAccountActionRequired`. Resend with
|
|
149
|
+
* `signed` (from `signBusinessAccountIntent`) to move past `INTENT_REQUIRED`.
|
|
116
150
|
*
|
|
117
151
|
* @param params.businessAccountId - The ID of the business account.
|
|
118
152
|
* @param params.targetIdentity - The member to add (userId, or identifier + identifierType).
|
|
119
153
|
* @param [params.role] - The member role: a built-in (`admin`, `viewer`) or a
|
|
120
154
|
* role this account defined. Defaults to `viewer`. `owner` is rejected — use
|
|
121
155
|
* `transferBusinessAccountOwnership`.
|
|
156
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
157
|
+
* Only meaningful on the first call.
|
|
158
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
122
159
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
123
160
|
* @returns The created business account member, or the outstanding action required.
|
|
124
161
|
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
125
162
|
* @notInstrumented
|
|
126
163
|
*/
|
|
127
|
-
const addBusinessAccountMember = async ({ businessAccountId, targetIdentity, role }, client = getDefaultClient()) => {
|
|
164
|
+
const addBusinessAccountMember = async ({ businessAccountId, targetIdentity, role, autoExecute, signed }, client = getDefaultClient()) => {
|
|
128
165
|
assertTargetIdentity({
|
|
129
166
|
fnName: "addBusinessAccountMember",
|
|
130
167
|
targetIdentity
|
|
@@ -139,7 +176,11 @@ const addBusinessAccountMember = async ({ businessAccountId, targetIdentity, rol
|
|
|
139
176
|
smsCountryCode,
|
|
140
177
|
socialProvider,
|
|
141
178
|
type: identifierType ? IDENTIFIER_TYPE_TO_API[identifierType] : void 0,
|
|
142
|
-
userId
|
|
179
|
+
userId,
|
|
180
|
+
...resendFields({
|
|
181
|
+
autoExecute,
|
|
182
|
+
signed
|
|
183
|
+
})
|
|
143
184
|
},
|
|
144
185
|
businessAccountId,
|
|
145
186
|
environmentId: core.environmentId
|
|
@@ -232,33 +273,209 @@ const addBusinessAccountSigner = async ({ walletAccount, businessAccountId, wall
|
|
|
232
273
|
*
|
|
233
274
|
* When the account governs `linkWallet`, nothing is written and the 202 body is
|
|
234
275
|
* returned instead — first the intent to sign, then the proposal collecting
|
|
235
|
-
* approvals. Narrow it with `isBusinessAccountActionRequired`.
|
|
276
|
+
* approvals. Narrow it with `isBusinessAccountActionRequired`. Resend with
|
|
277
|
+
* `signed` (from `signBusinessAccountIntent`) to move past `INTENT_REQUIRED`.
|
|
236
278
|
*
|
|
237
279
|
* @param [params.businessAccountId] - The business account to link to; found-or-created when omitted.
|
|
238
280
|
* @param params.walletId - The ID of the wallet to link.
|
|
281
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
282
|
+
* Only meaningful on the first call.
|
|
283
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
239
284
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
240
285
|
* @returns The updated business account detail, or the outstanding action required.
|
|
286
|
+
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
241
287
|
* @notInstrumented
|
|
242
288
|
*/
|
|
243
|
-
const addWalletToBusinessAccount = async ({ businessAccountId, walletId }, client = getDefaultClient()) => {
|
|
289
|
+
const addWalletToBusinessAccount = async ({ businessAccountId, walletId, autoExecute, signed }, client = getDefaultClient()) => {
|
|
244
290
|
const core = getCore(client);
|
|
245
291
|
const response = await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountlinkWallet }, client).sdkLinkBusinessAccountWalletRaw({
|
|
246
292
|
environmentId: core.environmentId,
|
|
247
293
|
linkBusinessAccountWalletSdkRequest: {
|
|
248
294
|
businessAccountId,
|
|
249
|
-
walletId
|
|
295
|
+
walletId,
|
|
296
|
+
...resendFields({
|
|
297
|
+
autoExecute,
|
|
298
|
+
signed
|
|
299
|
+
})
|
|
250
300
|
}
|
|
251
301
|
});
|
|
252
|
-
if (response.raw.status === 202) {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}
|
|
302
|
+
if (response.raw.status === 202) return parseGovernedResponse({
|
|
303
|
+
fnName: "addWalletToBusinessAccount",
|
|
304
|
+
response: response.raw
|
|
305
|
+
});
|
|
257
306
|
const detail = await response.value();
|
|
258
307
|
await __refreshAuth_wrapped(client);
|
|
259
308
|
return detail;
|
|
260
309
|
};
|
|
261
310
|
|
|
311
|
+
//#endregion
|
|
312
|
+
//#region src/modules/sessionKeys/canonicalizeJson/canonicalizeJson.ts
|
|
313
|
+
const codepointCompare = (a, b) => {
|
|
314
|
+
if (a < b) return -1;
|
|
315
|
+
if (a > b) return 1;
|
|
316
|
+
return 0;
|
|
317
|
+
};
|
|
318
|
+
const MAX_CANONICALIZE_DEPTH = 64;
|
|
319
|
+
var CanonicalizeDepthError = class extends Error {
|
|
320
|
+
constructor() {
|
|
321
|
+
super(`canonicalization exceeded max nesting depth (${MAX_CANONICALIZE_DEPTH})`);
|
|
322
|
+
this.name = "CanonicalizeDepthError";
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
const sortDeep = (value, depth) => {
|
|
326
|
+
if (depth > MAX_CANONICALIZE_DEPTH) throw new CanonicalizeDepthError();
|
|
327
|
+
if (Array.isArray(value)) return value.map((item) => sortDeep(item, depth + 1));
|
|
328
|
+
if (value !== null && typeof value === "object") {
|
|
329
|
+
const sorted = Object.create(null);
|
|
330
|
+
for (const key of Object.keys(value).sort(codepointCompare)) {
|
|
331
|
+
const field = value[key];
|
|
332
|
+
if (field === void 0) continue;
|
|
333
|
+
sorted[key] = sortDeep(field, depth + 1);
|
|
334
|
+
}
|
|
335
|
+
return sorted;
|
|
336
|
+
}
|
|
337
|
+
return value;
|
|
338
|
+
};
|
|
339
|
+
/**
|
|
340
|
+
* Deterministic canonical JSON: codepoint-sorted keys at every depth, arrays
|
|
341
|
+
* in order, `undefined` fields removed, no whitespace. Byte-identical to
|
|
342
|
+
* auth-service's `enclave/canonical-json`, which the enclave re-canonicalizes
|
|
343
|
+
* against when verifying signatures.
|
|
344
|
+
*
|
|
345
|
+
* @param obj - The document to canonicalize.
|
|
346
|
+
* @returns The canonical JSON string.
|
|
347
|
+
*
|
|
348
|
+
* @example
|
|
349
|
+
* ```typescript
|
|
350
|
+
* canonicalizeJson({ b: 1, a: 2 }); // '{"a":2,"b":1}'
|
|
351
|
+
* ```
|
|
352
|
+
*
|
|
353
|
+
* @see {@link signBusinessAccountIntent} for the signature flow that depends on this byte sequence.
|
|
354
|
+
* @see {@link signBusinessAccountApproval} for the co-signer flow using the same canonical form.
|
|
355
|
+
* @notInstrumented
|
|
356
|
+
*/
|
|
357
|
+
const canonicalizeJson = (obj) => JSON.stringify(sortDeep(obj, 0));
|
|
358
|
+
|
|
359
|
+
//#endregion
|
|
360
|
+
//#region src/modules/sessionKeys/signBusinessAccountIntent/signBusinessAccountIntent.ts
|
|
361
|
+
/**
|
|
362
|
+
* Sign an intent with the session key.
|
|
363
|
+
*
|
|
364
|
+
* The signature is over the CANONICAL form, not over `JSON.stringify(intent)` —
|
|
365
|
+
* the enclave re-canonicalizes before verifying, so a signature over any other
|
|
366
|
+
* byte sequence will not verify. Nothing here chooses that byte sequence
|
|
367
|
+
* freely: it is fixed by `canonicalizeJson`.
|
|
368
|
+
*
|
|
369
|
+
* The private half never enters JS. `keychain.sign` holds a non-extractable
|
|
370
|
+
* key and returns a P1363 hex signature, which is the form the enclave's
|
|
371
|
+
* WebCrypto verify expects.
|
|
372
|
+
*
|
|
373
|
+
* @param params.intent - The intent to sign.
|
|
374
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
375
|
+
* @returns The intent alongside the P1363 hex signature over its canonical form.
|
|
376
|
+
*
|
|
377
|
+
* @example
|
|
378
|
+
* ```typescript
|
|
379
|
+
* const { intent, intentSignature } = await signBusinessAccountIntent({ intent: draftIntent });
|
|
380
|
+
* ```
|
|
381
|
+
*
|
|
382
|
+
* @see {@link signBusinessAccountApproval} for a co-signer approving this intent.
|
|
383
|
+
* @see {@link BusinessAccountIntent} for the shape being signed.
|
|
384
|
+
* @noHook A local crypto step inside a larger flow, not a standalone server mutation a component would drive loading/error state around.
|
|
385
|
+
* @notInstrumented
|
|
386
|
+
*/
|
|
387
|
+
const signBusinessAccountIntent = async ({ intent }, client = getDefaultClient()) => {
|
|
388
|
+
return {
|
|
389
|
+
intent,
|
|
390
|
+
intentSignature: await getCore(client).keychain.sign("session", canonicalizeJson(intent))
|
|
391
|
+
};
|
|
392
|
+
};
|
|
393
|
+
/**
|
|
394
|
+
* Sign an approval of someone else's intent.
|
|
395
|
+
*
|
|
396
|
+
* The payload is `{ approvedAt, intent }` rather than the intent alone, so each
|
|
397
|
+
* approver attests WHEN they consented as well as what to. The enclave measures
|
|
398
|
+
* the execution window from the latest of those timestamps, which it could not
|
|
399
|
+
* do from an unsigned value — a caller could simply claim a fresher one.
|
|
400
|
+
*
|
|
401
|
+
* Sent whether or not the account configures an execution window: a signed
|
|
402
|
+
* shape that varied with configuration would mean reading governance before
|
|
403
|
+
* knowing what to sign.
|
|
404
|
+
*
|
|
405
|
+
* @param params.intent - The intent being approved.
|
|
406
|
+
* @param params.approvedAt - When the approver consented. Defaults to now.
|
|
407
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
408
|
+
* @returns The timestamp signed over, alongside the P1363 hex signature.
|
|
409
|
+
*
|
|
410
|
+
* @example
|
|
411
|
+
* ```typescript
|
|
412
|
+
* const { approvedAt, signature } = await signBusinessAccountApproval({ intent });
|
|
413
|
+
* ```
|
|
414
|
+
*
|
|
415
|
+
* @see {@link signBusinessAccountIntent} for the initiator's own signature over the intent.
|
|
416
|
+
* @see {@link BusinessAccountIntent} for the shape being approved.
|
|
417
|
+
* @noHook A local crypto step inside a larger flow — {@link approveBusinessAccountProposal} already wraps it for the normal approve-a-proposal case.
|
|
418
|
+
* @notInstrumented
|
|
419
|
+
*/
|
|
420
|
+
const signBusinessAccountApproval = async ({ intent, approvedAt = (/* @__PURE__ */ new Date()).toISOString() }, client = getDefaultClient()) => {
|
|
421
|
+
return {
|
|
422
|
+
approvedAt,
|
|
423
|
+
signature: await getCore(client).keychain.sign("session", canonicalizeJson({
|
|
424
|
+
approvedAt,
|
|
425
|
+
intent
|
|
426
|
+
}))
|
|
427
|
+
};
|
|
428
|
+
};
|
|
429
|
+
|
|
430
|
+
//#endregion
|
|
431
|
+
//#region src/modules/waas/businessAccounts/approveBusinessAccountProposal/approveBusinessAccountProposal.ts
|
|
432
|
+
/**
|
|
433
|
+
* Signs and records this session's approval of a pending proposal.
|
|
434
|
+
*
|
|
435
|
+
* The signature is over the intent AS STORED on `proposal`, which is why it's
|
|
436
|
+
* read off the proposal rather than rebuilt — a re-derived intent would carry
|
|
437
|
+
* a different `intentId` and fail verification. Run this signed in as the
|
|
438
|
+
* approver: the session key that signs is theirs, and the enclave reads who
|
|
439
|
+
* they are from the bearer token, not from any field here. An initiator can
|
|
440
|
+
* never approve their own proposal.
|
|
441
|
+
*
|
|
442
|
+
* With `autoExecute` on, the approval that completes the quorum also applies
|
|
443
|
+
* the change and the returned proposal reads `status: 'executed'` — the
|
|
444
|
+
* caller's cue to refresh the account rather than inferring readiness from
|
|
445
|
+
* the tally.
|
|
446
|
+
*
|
|
447
|
+
* @param params.businessAccountId - The business account the proposal belongs to.
|
|
448
|
+
* @param params.proposal - The proposal to approve, as returned by
|
|
449
|
+
* `listBusinessAccountProposals` or `getBusinessAccount`.
|
|
450
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
451
|
+
* @returns The proposal after recording this approval.
|
|
452
|
+
*
|
|
453
|
+
* @example
|
|
454
|
+
* ```ts
|
|
455
|
+
* const pending = await listBusinessAccountProposals({ businessAccountId, status: 'pending' });
|
|
456
|
+
* const updated = await approveBusinessAccountProposal({ businessAccountId, proposal: pending[0] });
|
|
457
|
+
* if (updated.status === 'executed') {
|
|
458
|
+
* // refresh the account — the change is live
|
|
459
|
+
* }
|
|
460
|
+
* ```
|
|
461
|
+
*
|
|
462
|
+
* @see {@link vetoBusinessAccountProposal} for refusing a proposal instead.
|
|
463
|
+
* @see {@link executeBusinessAccountProposal} for applying a satisfied one with `autoExecute` off.
|
|
464
|
+
* @notInstrumented
|
|
465
|
+
*/
|
|
466
|
+
const approveBusinessAccountProposal = async ({ businessAccountId, proposal }, client = getDefaultClient()) => {
|
|
467
|
+
const { approvedAt, signature } = await signBusinessAccountApproval({ intent: proposal.intent }, client);
|
|
468
|
+
return await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountproposalapprove }, client).sdkApproveBusinessAccountProposal({
|
|
469
|
+
approveBusinessAccountProposalSdkRequest: {
|
|
470
|
+
approvedAt: new Date(approvedAt),
|
|
471
|
+
signature
|
|
472
|
+
},
|
|
473
|
+
businessAccountId,
|
|
474
|
+
environmentId: getCore(client).environmentId,
|
|
475
|
+
proposalId: proposal.id
|
|
476
|
+
});
|
|
477
|
+
};
|
|
478
|
+
|
|
262
479
|
//#endregion
|
|
263
480
|
//#region src/modules/waas/backupWaasKeySharesToGoogleDrive/backupWaasKeySharesToGoogleDrive.ts
|
|
264
481
|
/**
|
|
@@ -1165,6 +1382,62 @@ const createWalletForBusinessAccount = async ({ businessAccountId, chain, passwo
|
|
|
1165
1382
|
return wallet;
|
|
1166
1383
|
};
|
|
1167
1384
|
|
|
1385
|
+
//#endregion
|
|
1386
|
+
//#region src/modules/waas/businessAccounts/defineBusinessAccountRole/defineBusinessAccountRole.ts
|
|
1387
|
+
/**
|
|
1388
|
+
* Defines a custom role that inherits the authority of a built-in one.
|
|
1389
|
+
* Inheriting is real: a holder passes every check gated on the base role,
|
|
1390
|
+
* under the custom name rather than the base name itself. A role cannot
|
|
1391
|
+
* inherit `owner` — use `transferBusinessAccountOwnership` to grant ownership.
|
|
1392
|
+
*
|
|
1393
|
+
* When the account governs `defineRole`, nothing is written and the 202 body
|
|
1394
|
+
* is returned instead. Resend with `signed` (from `signBusinessAccountIntent`)
|
|
1395
|
+
* to move past `INTENT_REQUIRED`.
|
|
1396
|
+
*
|
|
1397
|
+
* @param params.businessAccountId - The business account defining the role.
|
|
1398
|
+
* @param params.role - The new role's name.
|
|
1399
|
+
* @param params.inherits - The built-in role (`admin` or `viewer`) this role inherits.
|
|
1400
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
1401
|
+
* Only meaningful on the first call.
|
|
1402
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
1403
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1404
|
+
* @returns The new document version, or the outstanding action required.
|
|
1405
|
+
*
|
|
1406
|
+
* @example
|
|
1407
|
+
* ```ts
|
|
1408
|
+
* await defineBusinessAccountRole({
|
|
1409
|
+
* businessAccountId,
|
|
1410
|
+
* role: 'cfo',
|
|
1411
|
+
* inherits: 'admin',
|
|
1412
|
+
* });
|
|
1413
|
+
* ```
|
|
1414
|
+
*
|
|
1415
|
+
* @see {@link deleteBusinessAccountRole}
|
|
1416
|
+
* @see {@link listBusinessAccountRoles}
|
|
1417
|
+
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
1418
|
+
* @notInstrumented
|
|
1419
|
+
*/
|
|
1420
|
+
const defineBusinessAccountRole = async ({ businessAccountId, role, inherits, autoExecute, signed }, client = getDefaultClient()) => {
|
|
1421
|
+
const core = getCore(client);
|
|
1422
|
+
const response = await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountroledefine }, client).sdkDefineBusinessAccountRoleRaw({
|
|
1423
|
+
businessAccountId,
|
|
1424
|
+
defineBusinessAccountRoleSdkRequest: {
|
|
1425
|
+
inherits,
|
|
1426
|
+
role,
|
|
1427
|
+
...resendFields({
|
|
1428
|
+
autoExecute,
|
|
1429
|
+
signed
|
|
1430
|
+
})
|
|
1431
|
+
},
|
|
1432
|
+
environmentId: core.environmentId
|
|
1433
|
+
});
|
|
1434
|
+
if (response.raw.status === 202) return parseGovernedResponse({
|
|
1435
|
+
fnName: "defineBusinessAccountRole",
|
|
1436
|
+
response: response.raw
|
|
1437
|
+
});
|
|
1438
|
+
return await response.value();
|
|
1439
|
+
};
|
|
1440
|
+
|
|
1168
1441
|
//#endregion
|
|
1169
1442
|
//#region src/modules/waas/delegateWaasKeyShares/delegateWaasKeyShares.ts
|
|
1170
1443
|
/**
|
|
@@ -1189,6 +1462,56 @@ const delegateWaasKeyShares = async ({ initialSignerRules, password, walletAccou
|
|
|
1189
1462
|
await __refreshAuth_wrapped(client);
|
|
1190
1463
|
};
|
|
1191
1464
|
|
|
1465
|
+
//#endregion
|
|
1466
|
+
//#region src/modules/waas/businessAccounts/deleteBusinessAccountRole/deleteBusinessAccountRole.ts
|
|
1467
|
+
/**
|
|
1468
|
+
* Deletes a custom role definition. Holders are not removed and keep every
|
|
1469
|
+
* capability they had — they're demoted to the role's inherited base (e.g. a
|
|
1470
|
+
* deleted `cfo` role that inherited `admin` leaves its holders reading
|
|
1471
|
+
* `admin`), since only the name goes away, not the authority. Refused with
|
|
1472
|
+
* `ROLE_REFERENCED_BY_GOVERNANCE` while a governance requirement still names
|
|
1473
|
+
* the role — remove it from governance first.
|
|
1474
|
+
*
|
|
1475
|
+
* When the account governs `deleteRole`, nothing is written and the 202 body
|
|
1476
|
+
* is returned instead. Resend with `signed` (from `signBusinessAccountIntent`)
|
|
1477
|
+
* to move past `INTENT_REQUIRED`.
|
|
1478
|
+
*
|
|
1479
|
+
* @param params.businessAccountId - The business account the role belongs to.
|
|
1480
|
+
* @param params.role - The role's name.
|
|
1481
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
1482
|
+
* Only meaningful on the first call.
|
|
1483
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
1484
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1485
|
+
* @returns The new document version, or the outstanding action required.
|
|
1486
|
+
*
|
|
1487
|
+
* @example
|
|
1488
|
+
* ```ts
|
|
1489
|
+
* await deleteBusinessAccountRole({ businessAccountId, role: 'cfo' });
|
|
1490
|
+
* ```
|
|
1491
|
+
*
|
|
1492
|
+
* @see {@link defineBusinessAccountRole}
|
|
1493
|
+
* @see {@link listBusinessAccountRoles}
|
|
1494
|
+
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
1495
|
+
* @notInstrumented
|
|
1496
|
+
*/
|
|
1497
|
+
const deleteBusinessAccountRole = async ({ businessAccountId, role, autoExecute, signed }, client = getDefaultClient()) => {
|
|
1498
|
+
const core = getCore(client);
|
|
1499
|
+
const response = await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountroledelete }, client).sdkDeleteBusinessAccountRoleRaw({
|
|
1500
|
+
businessAccountId,
|
|
1501
|
+
deleteBusinessAccountRoleSdkRequest: resendFields({
|
|
1502
|
+
autoExecute,
|
|
1503
|
+
signed
|
|
1504
|
+
}),
|
|
1505
|
+
environmentId: core.environmentId,
|
|
1506
|
+
role
|
|
1507
|
+
});
|
|
1508
|
+
if (response.raw.status === 202) return parseGovernedResponse({
|
|
1509
|
+
fnName: "deleteBusinessAccountRole",
|
|
1510
|
+
response: response.raw
|
|
1511
|
+
});
|
|
1512
|
+
return await response.value();
|
|
1513
|
+
};
|
|
1514
|
+
|
|
1192
1515
|
//#endregion
|
|
1193
1516
|
//#region src/modules/waas/policies/findMatchedRuleKind/findMatchedRuleKind.ts
|
|
1194
1517
|
const COUPLED_RULE_KINDS = new Set(["allowAddresses", "maxAmountPerTransaction"]);
|
|
@@ -1284,6 +1607,57 @@ const desugarPolicyRules = ({ entries }) => {
|
|
|
1284
1607
|
};
|
|
1285
1608
|
};
|
|
1286
1609
|
|
|
1610
|
+
//#endregion
|
|
1611
|
+
//#region src/modules/waas/businessAccounts/executeBusinessAccountProposal/executeBusinessAccountProposal.ts
|
|
1612
|
+
/**
|
|
1613
|
+
* Applies a proposal whose quorum is already met — the counterpart to
|
|
1614
|
+
* `autoExecute: false`, where the completing approval records consent but
|
|
1615
|
+
* does not itself apply the change. Also the only way to run a ceremony
|
|
1616
|
+
* action's change (e.g. `addSignerToWallet`): its reshare needs a live signer
|
|
1617
|
+
* to come back and run it, so the server forces `autoExecute` false in the
|
|
1618
|
+
* signed bytes regardless of what was requested, and this is what someone
|
|
1619
|
+
* holding a share calls afterward.
|
|
1620
|
+
*
|
|
1621
|
+
* A 202 here is not a failure — it means the collected approvals still don't
|
|
1622
|
+
* satisfy the requirement, and the proposal stays `pending`.
|
|
1623
|
+
*
|
|
1624
|
+
* @param params.businessAccountId - The business account the proposal belongs to.
|
|
1625
|
+
* @param params.proposalId - The proposal to execute.
|
|
1626
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1627
|
+
* @returns The new document version, or the tally if approvals still fall short.
|
|
1628
|
+
*
|
|
1629
|
+
* @example
|
|
1630
|
+
* ```ts
|
|
1631
|
+
* const result = await executeBusinessAccountProposal({ businessAccountId, proposalId });
|
|
1632
|
+
* if ('reason' in result) {
|
|
1633
|
+
* console.log(result.approvalRequirements);
|
|
1634
|
+
* }
|
|
1635
|
+
* ```
|
|
1636
|
+
*
|
|
1637
|
+
* @see {@link approveBusinessAccountProposal} for the completing approval that usually does this instead.
|
|
1638
|
+
* @see {@link BusinessAccountProposalStillPending} for the tally shape when it's still short.
|
|
1639
|
+
* @throws {UnexpectedConsentResponseError} When a 202 answers with an unrecognized body.
|
|
1640
|
+
* @notInstrumented
|
|
1641
|
+
*/
|
|
1642
|
+
const executeBusinessAccountProposal = async ({ businessAccountId, proposalId }, client = getDefaultClient()) => {
|
|
1643
|
+
const response = await createApiClient({}, client).sdkExecuteBusinessAccountProposalRaw({
|
|
1644
|
+
businessAccountId,
|
|
1645
|
+
environmentId: getCore(client).environmentId,
|
|
1646
|
+
proposalId
|
|
1647
|
+
});
|
|
1648
|
+
if (response.raw.status === 202) {
|
|
1649
|
+
const payload = await response.raw.json();
|
|
1650
|
+
if (payload.reason !== "APPROVALS_REQUIRED" || !payload.intent) throw new UnexpectedConsentResponseError({ message: "executeBusinessAccountProposal: unexpected 202 body" });
|
|
1651
|
+
return {
|
|
1652
|
+
approvalRequirements: payload.approvalRequirements ?? [],
|
|
1653
|
+
intent: payload.intent,
|
|
1654
|
+
proposalId,
|
|
1655
|
+
reason: "APPROVALS_REQUIRED"
|
|
1656
|
+
};
|
|
1657
|
+
}
|
|
1658
|
+
return await response.value();
|
|
1659
|
+
};
|
|
1660
|
+
|
|
1287
1661
|
//#endregion
|
|
1288
1662
|
//#region src/modules/waas/exportWaasClientKeyshares/exportWaasClientKeyshares.ts
|
|
1289
1663
|
/**
|
|
@@ -1366,6 +1740,38 @@ const getBusinessAccount = async ({ businessAccountId }, client = getDefaultClie
|
|
|
1366
1740
|
});
|
|
1367
1741
|
};
|
|
1368
1742
|
|
|
1743
|
+
//#endregion
|
|
1744
|
+
//#region src/modules/waas/businessAccounts/getBusinessAccountGovernance/getBusinessAccountGovernance.ts
|
|
1745
|
+
/**
|
|
1746
|
+
* Reads the approval requirements currently in force for a business account,
|
|
1747
|
+
* keyed by governed action. Empty when the account governs nothing — that's
|
|
1748
|
+
* an answer, not a missing resource.
|
|
1749
|
+
*
|
|
1750
|
+
* There's no other way to tell a governed account from an ungoverned one
|
|
1751
|
+
* ahead of time: a mutation only reveals it by answering 202.
|
|
1752
|
+
*
|
|
1753
|
+
* @param params.businessAccountId - The business account whose governance to read.
|
|
1754
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1755
|
+
* @returns The governance section, keyed by governed action.
|
|
1756
|
+
*
|
|
1757
|
+
* @example
|
|
1758
|
+
* ```ts
|
|
1759
|
+
* const governance = await getBusinessAccountGovernance({ businessAccountId });
|
|
1760
|
+
* const addMemberRules = governance.addMember ?? [];
|
|
1761
|
+
* ```
|
|
1762
|
+
*
|
|
1763
|
+
* @see {@link setBusinessAccountGovernance} for writing it back.
|
|
1764
|
+
* @see {@link BusinessAccountGovernance} for the returned shape.
|
|
1765
|
+
* @notInstrumented
|
|
1766
|
+
*/
|
|
1767
|
+
const getBusinessAccountGovernance = async ({ businessAccountId }, client = getDefaultClient()) => {
|
|
1768
|
+
const { governance } = await createApiClient({}, client).sdkGetBusinessAccountGovernance({
|
|
1769
|
+
businessAccountId,
|
|
1770
|
+
environmentId: getCore(client).environmentId
|
|
1771
|
+
});
|
|
1772
|
+
return governance;
|
|
1773
|
+
};
|
|
1774
|
+
|
|
1369
1775
|
//#endregion
|
|
1370
1776
|
//#region src/modules/wallets/userHasEmbeddedWalletForChain/userHasEmbeddedWalletForChain.ts
|
|
1371
1777
|
/** @notInstrumented */
|
|
@@ -1601,6 +2007,84 @@ const isPasswordRequiredForWaasWallets = (client = getDefaultClient()) => {
|
|
|
1601
2007
|
return user.verifiedCredentials.some((credential) => credential.walletProperties?.keyShares?.some((keyShare) => keyShare.passwordEncrypted));
|
|
1602
2008
|
};
|
|
1603
2009
|
|
|
2010
|
+
//#endregion
|
|
2011
|
+
//#region src/modules/waas/businessAccounts/listBusinessAccountProposals/listBusinessAccountProposals.ts
|
|
2012
|
+
/**
|
|
2013
|
+
* Lists a business account's governed-mutation proposals.
|
|
2014
|
+
*
|
|
2015
|
+
* @param params.businessAccountId - The business account whose proposals to list.
|
|
2016
|
+
* @param [params.status] - Filter to `pending` only; omit for every status.
|
|
2017
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2018
|
+
* @returns The matching proposals.
|
|
2019
|
+
*
|
|
2020
|
+
* @example
|
|
2021
|
+
* ```ts
|
|
2022
|
+
* const pending = await listBusinessAccountProposals({ businessAccountId, status: 'pending' });
|
|
2023
|
+
* ```
|
|
2024
|
+
*
|
|
2025
|
+
* @see {@link approveBusinessAccountProposal}
|
|
2026
|
+
* @see {@link listBusinessAccountProposalsAwaitingMyApproval} for proposals across every account this caller belongs to.
|
|
2027
|
+
* @notInstrumented
|
|
2028
|
+
*/
|
|
2029
|
+
const listBusinessAccountProposals = async ({ businessAccountId, status }, client = getDefaultClient()) => {
|
|
2030
|
+
return await createApiClient({}, client).sdkListBusinessAccountProposals({
|
|
2031
|
+
businessAccountId,
|
|
2032
|
+
environmentId: getCore(client).environmentId,
|
|
2033
|
+
status: status ? BusinessAccountProposalStatus.Pending : void 0
|
|
2034
|
+
});
|
|
2035
|
+
};
|
|
2036
|
+
|
|
2037
|
+
//#endregion
|
|
2038
|
+
//#region src/modules/waas/businessAccounts/listBusinessAccountProposalsAwaitingMyApproval/listBusinessAccountProposalsAwaitingMyApproval.ts
|
|
2039
|
+
/**
|
|
2040
|
+
* Every pending proposal awaiting this caller's approval, across every
|
|
2041
|
+
* business account they belong to. Not scoped to one account — the server
|
|
2042
|
+
* derives the scope from the caller's own memberships.
|
|
2043
|
+
*
|
|
2044
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2045
|
+
* @returns The proposals awaiting this caller's approval.
|
|
2046
|
+
*
|
|
2047
|
+
* @example
|
|
2048
|
+
* ```ts
|
|
2049
|
+
* const awaitingMe = await listBusinessAccountProposalsAwaitingMyApproval();
|
|
2050
|
+
* ```
|
|
2051
|
+
*
|
|
2052
|
+
* @see {@link approveBusinessAccountProposal}
|
|
2053
|
+
* @see {@link listBusinessAccountProposals} for one account's proposals instead.
|
|
2054
|
+
* @notInstrumented
|
|
2055
|
+
*/
|
|
2056
|
+
const listBusinessAccountProposalsAwaitingMyApproval = async (client = getDefaultClient()) => {
|
|
2057
|
+
return await createApiClient({}, client).sdkListBusinessAccountProposalsAwaitingApproval({ environmentId: getCore(client).environmentId });
|
|
2058
|
+
};
|
|
2059
|
+
|
|
2060
|
+
//#endregion
|
|
2061
|
+
//#region src/modules/waas/businessAccounts/listBusinessAccountRoles/listBusinessAccountRoles.ts
|
|
2062
|
+
/**
|
|
2063
|
+
* Lists the custom roles a business account has defined. Empty when none
|
|
2064
|
+
* are — that's an answer, not a missing resource.
|
|
2065
|
+
*
|
|
2066
|
+
* @param params.businessAccountId - The business account whose roles to list.
|
|
2067
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2068
|
+
* @returns The account's custom roles, keyed by role name.
|
|
2069
|
+
*
|
|
2070
|
+
* @example
|
|
2071
|
+
* ```ts
|
|
2072
|
+
* const roles = await listBusinessAccountRoles({ businessAccountId });
|
|
2073
|
+
* console.log(roles.cfo?.inherits); // 'admin'
|
|
2074
|
+
* ```
|
|
2075
|
+
*
|
|
2076
|
+
* @see {@link defineBusinessAccountRole}
|
|
2077
|
+
* @see {@link deleteBusinessAccountRole}
|
|
2078
|
+
* @notInstrumented
|
|
2079
|
+
*/
|
|
2080
|
+
const listBusinessAccountRoles = async ({ businessAccountId }, client = getDefaultClient()) => {
|
|
2081
|
+
const { roles } = await createApiClient({}, client).sdkListBusinessAccountRoles({
|
|
2082
|
+
businessAccountId,
|
|
2083
|
+
environmentId: getCore(client).environmentId
|
|
2084
|
+
});
|
|
2085
|
+
return roles;
|
|
2086
|
+
};
|
|
2087
|
+
|
|
1604
2088
|
//#endregion
|
|
1605
2089
|
//#region src/modules/waas/businessAccounts/listBusinessAccounts/listBusinessAccounts.ts
|
|
1606
2090
|
/**
|
|
@@ -1674,8 +2158,15 @@ const removeAccountPolicyRule = async ({ businessAccountId, ruleId }, client = g
|
|
|
1674
2158
|
* the account's wallets are torn down as part of the removal. The backend
|
|
1675
2159
|
* refuses to remove the account's last owner.
|
|
1676
2160
|
*
|
|
2161
|
+
* When the account governs `removeMember`, nothing is written and the 202
|
|
2162
|
+
* body is returned instead. Resend with `signed` (from
|
|
2163
|
+
* `signBusinessAccountIntent`) to move past `INTENT_REQUIRED`.
|
|
2164
|
+
*
|
|
1677
2165
|
* @param params.businessAccountId - The business account to remove the member from.
|
|
1678
2166
|
* @param params.userId - The id of the user to remove.
|
|
2167
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
2168
|
+
* Only meaningful on the first call.
|
|
2169
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
1679
2170
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1680
2171
|
* @returns The removed member, or the outstanding action required.
|
|
1681
2172
|
*
|
|
@@ -1694,11 +2185,15 @@ const removeAccountPolicyRule = async ({ businessAccountId, ruleId }, client = g
|
|
|
1694
2185
|
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
1695
2186
|
* @notInstrumented
|
|
1696
2187
|
*/
|
|
1697
|
-
const removeBusinessAccountMember = async ({ businessAccountId, userId }, client = getDefaultClient()) => {
|
|
2188
|
+
const removeBusinessAccountMember = async ({ businessAccountId, userId, autoExecute, signed }, client = getDefaultClient()) => {
|
|
1698
2189
|
const core = getCore(client);
|
|
1699
2190
|
const response = await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountmemberremove }, client).sdkRemoveBusinessAccountMemberRaw({
|
|
1700
2191
|
businessAccountId,
|
|
1701
2192
|
environmentId: core.environmentId,
|
|
2193
|
+
removeBusinessAccountMemberSdkRequest: resendFields({
|
|
2194
|
+
autoExecute,
|
|
2195
|
+
signed
|
|
2196
|
+
}),
|
|
1702
2197
|
userId
|
|
1703
2198
|
});
|
|
1704
2199
|
if (response.raw.status === 202) return parseGovernedResponse({
|
|
@@ -1717,9 +2212,16 @@ const removeBusinessAccountMember = async ({ businessAccountId, userId }, client
|
|
|
1717
2212
|
* identity can no longer sign for that wallet. The backend refuses to remove
|
|
1718
2213
|
* the last remaining signer on a wallet.
|
|
1719
2214
|
*
|
|
2215
|
+
* When the account governs `removeSignerFromWallet`, nothing is written and
|
|
2216
|
+
* the 202 body is returned instead. Resend with `signed` (from
|
|
2217
|
+
* `signBusinessAccountIntent`) to move past `INTENT_REQUIRED`.
|
|
2218
|
+
*
|
|
1720
2219
|
* @param params.businessAccountId - The business account the wallet belongs to.
|
|
1721
2220
|
* @param params.walletId - The wallet the signer is attached to.
|
|
1722
2221
|
* @param params.signerId - The id of the signer to remove (`BusinessAccountSigner.id`).
|
|
2222
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
2223
|
+
* Only meaningful on the first call.
|
|
2224
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
1723
2225
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1724
2226
|
* @returns The removed signer, or the outstanding action required.
|
|
1725
2227
|
*
|
|
@@ -1739,11 +2241,15 @@ const removeBusinessAccountMember = async ({ businessAccountId, userId }, client
|
|
|
1739
2241
|
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
1740
2242
|
* @notInstrumented
|
|
1741
2243
|
*/
|
|
1742
|
-
const removeBusinessAccountSigner = async ({ businessAccountId, walletId, signerId }, client = getDefaultClient()) => {
|
|
2244
|
+
const removeBusinessAccountSigner = async ({ businessAccountId, walletId, signerId, autoExecute, signed }, client = getDefaultClient()) => {
|
|
1743
2245
|
const core = getCore(client);
|
|
1744
2246
|
const response = await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountsignerremove }, client).sdkRemoveBusinessAccountSignerRaw({
|
|
1745
2247
|
businessAccountId,
|
|
1746
2248
|
environmentId: core.environmentId,
|
|
2249
|
+
removeBusinessAccountSignerSdkRequest: resendFields({
|
|
2250
|
+
autoExecute,
|
|
2251
|
+
signed
|
|
2252
|
+
}),
|
|
1747
2253
|
signerId,
|
|
1748
2254
|
walletId
|
|
1749
2255
|
});
|
|
@@ -1759,11 +2265,17 @@ const removeBusinessAccountSigner = async ({ businessAccountId, walletId, signer
|
|
|
1759
2265
|
//#region src/modules/waas/businessAccounts/removeBusinessAccountWallet/removeBusinessAccountWallet.ts
|
|
1760
2266
|
/**
|
|
1761
2267
|
* Removes a wallet from a business account (owner-/admin-only). The wallet and
|
|
1762
|
-
* all its associated signer rows are detached from the account.
|
|
1763
|
-
*
|
|
2268
|
+
* all its associated signer rows are detached from the account.
|
|
2269
|
+
*
|
|
2270
|
+
* When the account governs `removeWallet`, nothing is written and the 202
|
|
2271
|
+
* body is returned instead. Resend with `signed` (from
|
|
2272
|
+
* `signBusinessAccountIntent`) to move past `INTENT_REQUIRED`.
|
|
1764
2273
|
*
|
|
1765
2274
|
* @param params.businessAccountId - The business account the wallet belongs to.
|
|
1766
2275
|
* @param params.walletId - The wallet to remove (`BusinessAccountWallet.id`).
|
|
2276
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
2277
|
+
* Only meaningful on the first call.
|
|
2278
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
1767
2279
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1768
2280
|
* @returns The updated business account detail, or the outstanding action required.
|
|
1769
2281
|
*
|
|
@@ -1781,11 +2293,15 @@ const removeBusinessAccountSigner = async ({ businessAccountId, walletId, signer
|
|
|
1781
2293
|
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
1782
2294
|
* @notInstrumented
|
|
1783
2295
|
*/
|
|
1784
|
-
const removeBusinessAccountWallet = async ({ businessAccountId, walletId }, client = getDefaultClient()) => {
|
|
2296
|
+
const removeBusinessAccountWallet = async ({ businessAccountId, walletId, autoExecute, signed }, client = getDefaultClient()) => {
|
|
1785
2297
|
const core = getCore(client);
|
|
1786
2298
|
const response = await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountwalletremove }, client).sdkRemoveBusinessAccountWalletRaw({
|
|
1787
2299
|
businessAccountId,
|
|
1788
2300
|
environmentId: core.environmentId,
|
|
2301
|
+
removeBusinessAccountWalletSdkRequest: resendFields({
|
|
2302
|
+
autoExecute,
|
|
2303
|
+
signed
|
|
2304
|
+
}),
|
|
1789
2305
|
walletId
|
|
1790
2306
|
});
|
|
1791
2307
|
if (response.raw.status === 202) return parseGovernedResponse({
|
|
@@ -1957,6 +2473,66 @@ const revokeWaasDelegation = async ({ password, walletAccount }, client = getDef
|
|
|
1957
2473
|
await __refreshAuth_wrapped(client);
|
|
1958
2474
|
};
|
|
1959
2475
|
|
|
2476
|
+
//#endregion
|
|
2477
|
+
//#region src/modules/waas/businessAccounts/setBusinessAccountGovernance/setBusinessAccountGovernance.ts
|
|
2478
|
+
/**
|
|
2479
|
+
* Replaces the account's entire governance section. Wholesale, not a merge —
|
|
2480
|
+
* an action left out of `governance` is refused rather than read as "delete
|
|
2481
|
+
* its requirements"; send it back with its existing requirements (or an
|
|
2482
|
+
* empty array) to keep or clear it.
|
|
2483
|
+
*
|
|
2484
|
+
* `setGovernance` is itself always governed at the capability-table floor
|
|
2485
|
+
* (owner-only today), so the 202 path applies here too: nothing is written
|
|
2486
|
+
* and the 202 body is returned instead. Resend with `signed` (from
|
|
2487
|
+
* `signBusinessAccountIntent`) to move past `INTENT_REQUIRED`.
|
|
2488
|
+
*
|
|
2489
|
+
* @param params.businessAccountId - The business account whose governance changes.
|
|
2490
|
+
* @param params.governance - The full governance section to write, keyed by
|
|
2491
|
+
* governed action. Read the current value with `getBusinessAccountGovernance`
|
|
2492
|
+
* first if you're changing only one action.
|
|
2493
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
2494
|
+
* Only meaningful on the first call.
|
|
2495
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
2496
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2497
|
+
* @returns The new document version, or the outstanding action required.
|
|
2498
|
+
*
|
|
2499
|
+
* @example
|
|
2500
|
+
* ```ts
|
|
2501
|
+
* const current = await getBusinessAccountGovernance({ businessAccountId });
|
|
2502
|
+
* await setBusinessAccountGovernance({
|
|
2503
|
+
* businessAccountId,
|
|
2504
|
+
* governance: {
|
|
2505
|
+
* ...current,
|
|
2506
|
+
* addMember: [{ id: 'one-admin', schemaVersion: 1, requiredApprovals: 1, eligibleApproverRoles: ['admin'] }],
|
|
2507
|
+
* },
|
|
2508
|
+
* });
|
|
2509
|
+
* ```
|
|
2510
|
+
*
|
|
2511
|
+
* @see {@link getBusinessAccountGovernance} for reading the current section first.
|
|
2512
|
+
* @see {@link defineBusinessAccountRole} for defining a role governance can name.
|
|
2513
|
+
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
2514
|
+
* @notInstrumented
|
|
2515
|
+
*/
|
|
2516
|
+
const setBusinessAccountGovernance = async ({ businessAccountId, governance, autoExecute, signed }, client = getDefaultClient()) => {
|
|
2517
|
+
const core = getCore(client);
|
|
2518
|
+
const response = await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountgovernanceupdate }, client).sdkSetBusinessAccountGovernanceRaw({
|
|
2519
|
+
businessAccountId,
|
|
2520
|
+
environmentId: core.environmentId,
|
|
2521
|
+
setBusinessAccountGovernanceSdkRequest: {
|
|
2522
|
+
governance,
|
|
2523
|
+
...resendFields({
|
|
2524
|
+
autoExecute,
|
|
2525
|
+
signed
|
|
2526
|
+
})
|
|
2527
|
+
}
|
|
2528
|
+
});
|
|
2529
|
+
if (response.raw.status === 202) return parseGovernedResponse({
|
|
2530
|
+
fnName: "setBusinessAccountGovernance",
|
|
2531
|
+
response: response.raw
|
|
2532
|
+
});
|
|
2533
|
+
return await response.value();
|
|
2534
|
+
};
|
|
2535
|
+
|
|
1960
2536
|
//#endregion
|
|
1961
2537
|
//#region src/modules/waas/setWaasWalletAccountPassword/setWaasWalletAccountPassword.ts
|
|
1962
2538
|
/**
|
|
@@ -2033,8 +2609,15 @@ const signSerializedTransaction = async ({ chainId, serializedTransaction, walle
|
|
|
2033
2609
|
* `newOwnerUserId` must already be a member, is promoted to owner, and the
|
|
2034
2610
|
* current owner is atomically demoted to admin.
|
|
2035
2611
|
*
|
|
2612
|
+
* When the account governs `transferOwnership`, nothing is written and the
|
|
2613
|
+
* 202 body is returned instead. Resend with `signed` (from
|
|
2614
|
+
* `signBusinessAccountIntent`) to move past `INTENT_REQUIRED`.
|
|
2615
|
+
*
|
|
2036
2616
|
* @param params.businessAccountId - The business account whose ownership moves.
|
|
2037
2617
|
* @param params.newOwnerUserId - The member to promote to owner.
|
|
2618
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
2619
|
+
* Only meaningful on the first call.
|
|
2620
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
2038
2621
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2039
2622
|
* @returns The updated business account detail, or the outstanding action required.
|
|
2040
2623
|
*
|
|
@@ -2052,12 +2635,18 @@ const signSerializedTransaction = async ({ chainId, serializedTransaction, walle
|
|
|
2052
2635
|
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
2053
2636
|
* @notInstrumented
|
|
2054
2637
|
*/
|
|
2055
|
-
const transferBusinessAccountOwnership = async ({ businessAccountId, newOwnerUserId }, client = getDefaultClient()) => {
|
|
2638
|
+
const transferBusinessAccountOwnership = async ({ businessAccountId, newOwnerUserId, autoExecute, signed }, client = getDefaultClient()) => {
|
|
2056
2639
|
const core = getCore(client);
|
|
2057
2640
|
const response = await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccounttransferOwnership }, client).sdkTransferBusinessAccountOwnershipRaw({
|
|
2058
2641
|
businessAccountId,
|
|
2059
2642
|
environmentId: core.environmentId,
|
|
2060
|
-
transferBusinessAccountOwnershipSdkRequest: {
|
|
2643
|
+
transferBusinessAccountOwnershipSdkRequest: {
|
|
2644
|
+
newOwnerUserId,
|
|
2645
|
+
...resendFields({
|
|
2646
|
+
autoExecute,
|
|
2647
|
+
signed
|
|
2648
|
+
})
|
|
2649
|
+
}
|
|
2061
2650
|
});
|
|
2062
2651
|
if (response.raw.status === 202) return parseGovernedResponse({
|
|
2063
2652
|
fnName: "transferBusinessAccountOwnership",
|
|
@@ -2122,10 +2711,17 @@ const updateBusinessAccount = async ({ businessAccountId, name: name$1 }, client
|
|
|
2122
2711
|
* another. Owner is not assignable here — use
|
|
2123
2712
|
* `transferBusinessAccountOwnership` for that.
|
|
2124
2713
|
*
|
|
2714
|
+
* When the account governs `updateMemberRole`, nothing is written and the
|
|
2715
|
+
* 202 body is returned instead. Resend with `signed` (from
|
|
2716
|
+
* `signBusinessAccountIntent`) to move past `INTENT_REQUIRED`.
|
|
2717
|
+
*
|
|
2125
2718
|
* @param params.businessAccountId - The business account the member belongs to.
|
|
2126
2719
|
* @param params.userId - The member whose role changes.
|
|
2127
2720
|
* @param params.role - The new role: a built-in (`admin`, `viewer`) or a role
|
|
2128
2721
|
* this account defined.
|
|
2722
|
+
* @param [params.autoExecute] - Whether to apply on the completing approval.
|
|
2723
|
+
* Only meaningful on the first call.
|
|
2724
|
+
* @param [params.signed] - A previously-signed intent, to resend past `INTENT_REQUIRED`.
|
|
2129
2725
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2130
2726
|
* @returns The updated business account member, or the outstanding action required.
|
|
2131
2727
|
*
|
|
@@ -2143,12 +2739,18 @@ const updateBusinessAccount = async ({ businessAccountId, name: name$1 }, client
|
|
|
2143
2739
|
* @throws {UnexpectedConsentResponseError} When a governed account answers 202 with an unrecognized body.
|
|
2144
2740
|
* @notInstrumented
|
|
2145
2741
|
*/
|
|
2146
|
-
const updateBusinessAccountMemberRole = async ({ businessAccountId, userId, role }, client = getDefaultClient()) => {
|
|
2742
|
+
const updateBusinessAccountMemberRole = async ({ businessAccountId, userId, role, autoExecute, signed }, client = getDefaultClient()) => {
|
|
2147
2743
|
const core = getCore(client);
|
|
2148
2744
|
const response = await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountmemberroleupdate }, client).sdkUpdateBusinessAccountMemberRoleRaw({
|
|
2149
2745
|
businessAccountId,
|
|
2150
2746
|
environmentId: core.environmentId,
|
|
2151
|
-
updateBusinessAccountMemberRoleSdkRequest: {
|
|
2747
|
+
updateBusinessAccountMemberRoleSdkRequest: {
|
|
2748
|
+
role,
|
|
2749
|
+
...resendFields({
|
|
2750
|
+
autoExecute,
|
|
2751
|
+
signed
|
|
2752
|
+
})
|
|
2753
|
+
},
|
|
2152
2754
|
userId
|
|
2153
2755
|
});
|
|
2154
2756
|
if (response.raw.status === 202) return parseGovernedResponse({
|
|
@@ -2272,10 +2874,70 @@ const upsertWalletPolicyRule = async ({ rule, walletAccount }, client = getDefau
|
|
|
2272
2874
|
});
|
|
2273
2875
|
};
|
|
2274
2876
|
|
|
2877
|
+
//#endregion
|
|
2878
|
+
//#region src/modules/waas/businessAccounts/vetoBusinessAccountProposal/vetoBusinessAccountProposal.ts
|
|
2879
|
+
/**
|
|
2880
|
+
* Vetoes a pending proposal — terminal: a vetoed proposal can never be
|
|
2881
|
+
* approved or executed afterward. Gated on its own scope
|
|
2882
|
+
* (`business_account:proposal:veto`), distinct from approving one, so a
|
|
2883
|
+
* caller with only approve-scoped access cannot veto instead.
|
|
2884
|
+
*
|
|
2885
|
+
* @param params.businessAccountId - The business account the proposal belongs to.
|
|
2886
|
+
* @param params.proposalId - The proposal to veto.
|
|
2887
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2888
|
+
* @returns The proposal, now `status: 'vetoed'`.
|
|
2889
|
+
*
|
|
2890
|
+
* @example
|
|
2891
|
+
* ```ts
|
|
2892
|
+
* await vetoBusinessAccountProposal({ businessAccountId, proposalId });
|
|
2893
|
+
* ```
|
|
2894
|
+
*
|
|
2895
|
+
* @see {@link approveBusinessAccountProposal} for consenting to a proposal instead.
|
|
2896
|
+
* @see {@link BusinessAccountProposal} for the returned shape.
|
|
2897
|
+
* @notInstrumented
|
|
2898
|
+
*/
|
|
2899
|
+
const vetoBusinessAccountProposal = async ({ businessAccountId, proposalId }, client = getDefaultClient()) => {
|
|
2900
|
+
return await createApiClient({ elevatedAccessTokenScope: TokenScope.BusinessAccountproposalveto }, client).sdkVetoBusinessAccountProposal({
|
|
2901
|
+
businessAccountId,
|
|
2902
|
+
environmentId: getCore(client).environmentId,
|
|
2903
|
+
proposalId
|
|
2904
|
+
});
|
|
2905
|
+
};
|
|
2906
|
+
|
|
2907
|
+
//#endregion
|
|
2908
|
+
//#region src/modules/waas/businessAccounts/withdrawBusinessAccountProposalApproval/withdrawBusinessAccountProposalApproval.ts
|
|
2909
|
+
/**
|
|
2910
|
+
* Withdraws this session's own approval from a proposal still collecting
|
|
2911
|
+
* them. The approval row is kept with `revokedAt` set rather than deleted —
|
|
2912
|
+
* consent is recorded as given and taken back, not erased — so approving
|
|
2913
|
+
* again afterward reuses the same row.
|
|
2914
|
+
*
|
|
2915
|
+
* @param params.businessAccountId - The business account the proposal belongs to.
|
|
2916
|
+
* @param params.proposalId - The proposal to withdraw this session's approval from.
|
|
2917
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2918
|
+
* @returns The proposal, with this approval's count no longer contributing.
|
|
2919
|
+
*
|
|
2920
|
+
* @example
|
|
2921
|
+
* ```ts
|
|
2922
|
+
* await withdrawBusinessAccountProposalApproval({ businessAccountId, proposalId });
|
|
2923
|
+
* ```
|
|
2924
|
+
*
|
|
2925
|
+
* @see {@link approveBusinessAccountProposal} for approving (or re-approving) instead.
|
|
2926
|
+
* @see {@link BusinessAccountProposalApprovalRecord} for what `revokedAt` looks like once set.
|
|
2927
|
+
* @notInstrumented
|
|
2928
|
+
*/
|
|
2929
|
+
const withdrawBusinessAccountProposalApproval = async ({ businessAccountId, proposalId }, client = getDefaultClient()) => {
|
|
2930
|
+
return await createApiClient({}, client).sdkWithdrawBusinessAccountProposalApproval({
|
|
2931
|
+
businessAccountId,
|
|
2932
|
+
environmentId: getCore(client).environmentId,
|
|
2933
|
+
proposalId
|
|
2934
|
+
});
|
|
2935
|
+
};
|
|
2936
|
+
|
|
2275
2937
|
//#endregion
|
|
2276
2938
|
//#region src/exports/waas.ts
|
|
2277
2939
|
assertPackageVersion(name, version);
|
|
2278
2940
|
|
|
2279
2941
|
//#endregion
|
|
2280
|
-
export {
|
|
2281
|
-
//# sourceMappingURL=waas-
|
|
2942
|
+
export { createPolicy as $, importWaasPrivateKey as A, getAccountPolicyLayer as B, refreshWaasWalletAccountShares as C, listBusinessAccountProposals as D, listBusinessAccountProposalsAwaitingMyApproval as E, getSignerPolicyLayer as F, deleteBusinessAccountRole as G, exportWaasClientKeyshares as H, getPolicy as I, createWalletForBusinessAccount as J, delegateWaasKeyShares as K, getChainsMissingWaasWalletAccounts as L, getWalletRecoveryState as M, getWalletPolicyLayer as N, isPasswordRequiredForWaasWallets as O, getWalletAccountShareSets as P, createWaasOfflineRecoveryShares as Q, getBusinessAccountGovernance as R, removeAccountPolicyRule as S, listBusinessAccountRoles as T, executeBusinessAccountProposal as U, exportWaasPrivateKey as V, desugarPolicyRules as W, normalizeWalletRequirements as X, createWaasWalletAccounts as Y, isWalletCreationRequirement as Z, removeSignerPolicyRule as _, upsertAccountPolicyRule as a, backupWaasKeySharesToGoogleDrive as at, removeBusinessAccountSigner as b, updateBusinessAccount as c, signBusinessAccountIntent as ct, signSerializedTransaction as d, addBusinessAccountMember as dt, resolvePolicyScope as et, shouldAutoCreateWalletForChain as f, WaasChainEnum$1 as ft, removeWalletPolicyRule as g, revokeWaasDelegation as h, upsertSignerPolicyRule as i, buildAllowPolicyRule as it, hasDelegatedAccess as j, isBusinessAccountActionRequired as k, unlockWallet as l, addWalletToBusinessAccount as lt, setBusinessAccountGovernance as m, vetoBusinessAccountProposal as n, createBusinessAccount as nt, updateWaasPassword as o, approveBusinessAccountProposal as ot, setWaasWalletAccountPassword as p, WaasWalletShareSetType$1 as pt, defineBusinessAccountRole as q, upsertWalletPolicyRule as r, buildDenyPolicyRule as rt, updateBusinessAccountMemberRole as s, signBusinessAccountApproval as st, withdrawBusinessAccountProposalApproval as t, expandPolicyRules as tt, transferBusinessAccountOwnership as u, addBusinessAccountSigner as ut, removePolicyRules as v, listBusinessAccounts as w, removeBusinessAccountMember as x, removeBusinessAccountWallet as y, getBusinessAccount as z };
|
|
2943
|
+
//# sourceMappingURL=waas-BnBxnaH4.native.esm.js.map
|