@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.
Files changed (223) hide show
  1. package/dist/{apiClient-B0eCQXEJ.native.esm.js → apiClient-BGh68_e6.native.esm.js} +3 -3
  2. package/dist/{apiClient-B0eCQXEJ.native.esm.js.map → apiClient-BGh68_e6.native.esm.js.map} +1 -1
  3. package/dist/core.cjs +5 -78
  4. package/dist/core.cjs.map +1 -1
  5. package/dist/core.esm.js +6 -77
  6. package/dist/core.esm.js.map +1 -1
  7. package/dist/core.native.esm.js +8 -79
  8. package/dist/core.native.esm.js.map +1 -1
  9. package/dist/exports/core.d.ts +0 -2
  10. package/dist/exports/core.d.ts.map +1 -1
  11. package/dist/exports/waas.d.ts +13 -1
  12. package/dist/exports/waas.d.ts.map +1 -1
  13. package/dist/{getNetworkProviderFromNetworkId-CgxCy8qP.esm.js → getNetworkProviderFromNetworkId-BqiVs3Ni.esm.js} +2 -2
  14. package/dist/{getNetworkProviderFromNetworkId-CgxCy8qP.esm.js.map → getNetworkProviderFromNetworkId-BqiVs3Ni.esm.js.map} +1 -1
  15. package/dist/{getNetworkProviderFromNetworkId-DaxDzIv4.cjs → getNetworkProviderFromNetworkId-C_bqlRFD.cjs} +2 -2
  16. package/dist/{getNetworkProviderFromNetworkId-DaxDzIv4.cjs.map → getNetworkProviderFromNetworkId-C_bqlRFD.cjs.map} +1 -1
  17. package/dist/{getNetworkProviderFromNetworkId-OXG2gPby.native.esm.js → getNetworkProviderFromNetworkId-TczZgKDH.native.esm.js} +8 -8
  18. package/dist/getNetworkProviderFromNetworkId-TczZgKDH.native.esm.js.map +1 -0
  19. package/dist/{getSignedSessionId-DdMeCIV-.esm.js → getSignedSessionId-DRJW9tb8.esm.js} +3 -3
  20. package/dist/{getSignedSessionId-DdMeCIV-.esm.js.map → getSignedSessionId-DRJW9tb8.esm.js.map} +1 -1
  21. package/dist/{getSignedSessionId-KiBgLtda.cjs → getSignedSessionId-Dc6_q9ph.cjs} +3 -3
  22. package/dist/{getSignedSessionId-KiBgLtda.cjs.map → getSignedSessionId-Dc6_q9ph.cjs.map} +1 -1
  23. package/dist/{getSignedSessionId-B2s2UuwJ.native.esm.js → getSignedSessionId-h-zAmDnk.native.esm.js} +3 -3
  24. package/dist/{getSignedSessionId-B2s2UuwJ.native.esm.js.map → getSignedSessionId-h-zAmDnk.native.esm.js.map} +1 -1
  25. package/dist/{getVerifiedCredentialForWalletAccount-DzZ-0SaQ.esm.js → getVerifiedCredentialForWalletAccount-BWtWpYjd.esm.js} +2 -2
  26. package/dist/{getVerifiedCredentialForWalletAccount-DzZ-0SaQ.esm.js.map → getVerifiedCredentialForWalletAccount-BWtWpYjd.esm.js.map} +1 -1
  27. package/dist/{getVerifiedCredentialForWalletAccount-y2drOcyb.cjs → getVerifiedCredentialForWalletAccount-CgI__iTv.cjs} +2 -2
  28. package/dist/{getVerifiedCredentialForWalletAccount-y2drOcyb.cjs.map → getVerifiedCredentialForWalletAccount-CgI__iTv.cjs.map} +1 -1
  29. package/dist/index.cjs +8 -8
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.esm.js +8 -8
  32. package/dist/index.esm.js.map +1 -1
  33. package/dist/index.native.esm.js +10 -10
  34. package/dist/index.native.esm.js.map +1 -1
  35. package/dist/{isMfaRequiredForAction-By7uHgpn.cjs → isMfaRequiredForAction-Aov24tU3.cjs} +2 -2
  36. package/dist/{isMfaRequiredForAction-By7uHgpn.cjs.map → isMfaRequiredForAction-Aov24tU3.cjs.map} +1 -1
  37. package/dist/{isMfaRequiredForAction-CXuuO-wy.native.esm.js → isMfaRequiredForAction-FW_GM4tb.native.esm.js} +2 -2
  38. package/dist/{isMfaRequiredForAction-CXuuO-wy.native.esm.js.map → isMfaRequiredForAction-FW_GM4tb.native.esm.js.map} +1 -1
  39. package/dist/{isMfaRequiredForAction-BLegdReE.esm.js → isMfaRequiredForAction-mcAjTfRu.esm.js} +2 -2
  40. package/dist/{isMfaRequiredForAction-BLegdReE.esm.js.map → isMfaRequiredForAction-mcAjTfRu.esm.js.map} +1 -1
  41. package/dist/{isUserOnboardingComplete-Bvh4NLBz.esm.js → isUserOnboardingComplete-BTvFsIW7.esm.js} +3 -3
  42. package/dist/{isUserOnboardingComplete-Bvh4NLBz.esm.js.map → isUserOnboardingComplete-BTvFsIW7.esm.js.map} +1 -1
  43. package/dist/{isUserOnboardingComplete-hn1rWlA-.native.esm.js → isUserOnboardingComplete-BzEm_9UF.native.esm.js} +3 -3
  44. package/dist/{isUserOnboardingComplete-hn1rWlA-.native.esm.js.map → isUserOnboardingComplete-BzEm_9UF.native.esm.js.map} +1 -1
  45. package/dist/{isUserOnboardingComplete-DMefkHRY.cjs → isUserOnboardingComplete-Deq_CabI.cjs} +3 -3
  46. package/dist/{isUserOnboardingComplete-DMefkHRY.cjs.map → isUserOnboardingComplete-Deq_CabI.cjs.map} +1 -1
  47. package/dist/{logoutWithReason-c1DmyRBx.cjs → logoutWithReason-BqgbyO5j.cjs} +30 -4
  48. package/dist/logoutWithReason-BqgbyO5j.cjs.map +1 -0
  49. package/dist/{logoutWithReason-B-cf-dUs.esm.js → logoutWithReason-Demgc354.esm.js} +25 -5
  50. package/dist/logoutWithReason-Demgc354.esm.js.map +1 -0
  51. package/dist/{logoutWithReason-C4AgSbjv.native.esm.js → logoutWithReason-rupibyb3.native.esm.js} +24 -4
  52. package/dist/logoutWithReason-rupibyb3.native.esm.js.map +1 -0
  53. package/dist/{migrateFromFireblocks-RCqy2qOG.cjs → migrateFromFireblocks-C1El-Dce.cjs} +2 -2
  54. package/dist/{migrateFromFireblocks-RCqy2qOG.cjs.map → migrateFromFireblocks-C1El-Dce.cjs.map} +1 -1
  55. package/dist/{migrateFromFireblocks-B0pkwAaK.native.esm.js → migrateFromFireblocks-Cc6JO6e2.native.esm.js} +2 -2
  56. package/dist/{migrateFromFireblocks-B0pkwAaK.native.esm.js.map → migrateFromFireblocks-Cc6JO6e2.native.esm.js.map} +1 -1
  57. package/dist/{migrateFromFireblocks-B76sFd7a.esm.js → migrateFromFireblocks-DSgWzuHJ.esm.js} +2 -2
  58. package/dist/{migrateFromFireblocks-B76sFd7a.esm.js.map → migrateFromFireblocks-DSgWzuHJ.esm.js.map} +1 -1
  59. package/dist/modules/sessionKeys/canonicalizeJson/canonicalizeJson.d.ts +20 -0
  60. package/dist/modules/sessionKeys/canonicalizeJson/canonicalizeJson.d.ts.map +1 -0
  61. package/dist/modules/sessionKeys/canonicalizeJson/index.d.ts +2 -0
  62. package/dist/modules/sessionKeys/canonicalizeJson/index.d.ts.map +1 -0
  63. package/dist/modules/sessionKeys/signBusinessAccountIntent/signBusinessAccountIntent.d.ts +39 -6
  64. package/dist/modules/sessionKeys/signBusinessAccountIntent/signBusinessAccountIntent.d.ts.map +1 -1
  65. package/dist/modules/waas/businessAccounts/addBusinessAccountMember/addBusinessAccountMember.d.ts +9 -3
  66. package/dist/modules/waas/businessAccounts/addBusinessAccountMember/addBusinessAccountMember.d.ts.map +1 -1
  67. package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/addWalletToBusinessAccount.d.ts +10 -3
  68. package/dist/modules/waas/businessAccounts/addWalletToBusinessAccount/addWalletToBusinessAccount.d.ts.map +1 -1
  69. package/dist/modules/waas/businessAccounts/approveBusinessAccountProposal/approveBusinessAccountProposal.d.ts +43 -0
  70. package/dist/modules/waas/businessAccounts/approveBusinessAccountProposal/approveBusinessAccountProposal.d.ts.map +1 -0
  71. package/dist/modules/waas/businessAccounts/approveBusinessAccountProposal/index.d.ts +2 -0
  72. package/dist/modules/waas/businessAccounts/approveBusinessAccountProposal/index.d.ts.map +1 -0
  73. package/dist/modules/waas/businessAccounts/businessAccounts.types.d.ts +249 -0
  74. package/dist/modules/waas/businessAccounts/businessAccounts.types.d.ts.map +1 -1
  75. package/dist/modules/waas/businessAccounts/defineBusinessAccountRole/defineBusinessAccountRole.d.ts +45 -0
  76. package/dist/modules/waas/businessAccounts/defineBusinessAccountRole/defineBusinessAccountRole.d.ts.map +1 -0
  77. package/dist/modules/waas/businessAccounts/defineBusinessAccountRole/index.d.ts +2 -0
  78. package/dist/modules/waas/businessAccounts/defineBusinessAccountRole/index.d.ts.map +1 -0
  79. package/dist/modules/waas/businessAccounts/deleteBusinessAccountRole/deleteBusinessAccountRole.d.ts +41 -0
  80. package/dist/modules/waas/businessAccounts/deleteBusinessAccountRole/deleteBusinessAccountRole.d.ts.map +1 -0
  81. package/dist/modules/waas/businessAccounts/deleteBusinessAccountRole/index.d.ts +2 -0
  82. package/dist/modules/waas/businessAccounts/deleteBusinessAccountRole/index.d.ts.map +1 -0
  83. package/dist/modules/waas/businessAccounts/executeBusinessAccountProposal/executeBusinessAccountProposal.d.ts +39 -0
  84. package/dist/modules/waas/businessAccounts/executeBusinessAccountProposal/executeBusinessAccountProposal.d.ts.map +1 -0
  85. package/dist/modules/waas/businessAccounts/executeBusinessAccountProposal/index.d.ts +2 -0
  86. package/dist/modules/waas/businessAccounts/executeBusinessAccountProposal/index.d.ts.map +1 -0
  87. package/dist/modules/waas/businessAccounts/getBusinessAccountGovernance/getBusinessAccountGovernance.d.ts +30 -0
  88. package/dist/modules/waas/businessAccounts/getBusinessAccountGovernance/getBusinessAccountGovernance.d.ts.map +1 -0
  89. package/dist/modules/waas/businessAccounts/getBusinessAccountGovernance/index.d.ts +2 -0
  90. package/dist/modules/waas/businessAccounts/getBusinessAccountGovernance/index.d.ts.map +1 -0
  91. package/dist/modules/waas/businessAccounts/listBusinessAccountProposals/index.d.ts +2 -0
  92. package/dist/modules/waas/businessAccounts/listBusinessAccountProposals/index.d.ts.map +1 -0
  93. package/dist/modules/waas/businessAccounts/listBusinessAccountProposals/listBusinessAccountProposals.d.ts +26 -0
  94. package/dist/modules/waas/businessAccounts/listBusinessAccountProposals/listBusinessAccountProposals.d.ts.map +1 -0
  95. package/dist/modules/waas/businessAccounts/listBusinessAccountProposalsAwaitingMyApproval/index.d.ts +2 -0
  96. package/dist/modules/waas/businessAccounts/listBusinessAccountProposalsAwaitingMyApproval/index.d.ts.map +1 -0
  97. package/dist/modules/waas/businessAccounts/listBusinessAccountProposalsAwaitingMyApproval/listBusinessAccountProposalsAwaitingMyApproval.d.ts +21 -0
  98. package/dist/modules/waas/businessAccounts/listBusinessAccountProposalsAwaitingMyApproval/listBusinessAccountProposalsAwaitingMyApproval.d.ts.map +1 -0
  99. package/dist/modules/waas/businessAccounts/listBusinessAccountRoles/index.d.ts +2 -0
  100. package/dist/modules/waas/businessAccounts/listBusinessAccountRoles/index.d.ts.map +1 -0
  101. package/dist/modules/waas/businessAccounts/listBusinessAccountRoles/listBusinessAccountRoles.d.ts +26 -0
  102. package/dist/modules/waas/businessAccounts/listBusinessAccountRoles/listBusinessAccountRoles.d.ts.map +1 -0
  103. package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/removeBusinessAccountMember.d.ts +11 -2
  104. package/dist/modules/waas/businessAccounts/removeBusinessAccountMember/removeBusinessAccountMember.d.ts.map +1 -1
  105. package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/removeBusinessAccountSigner.d.ts +11 -2
  106. package/dist/modules/waas/businessAccounts/removeBusinessAccountSigner/removeBusinessAccountSigner.d.ts.map +1 -1
  107. package/dist/modules/waas/businessAccounts/removeBusinessAccountWallet/removeBusinessAccountWallet.d.ts +12 -4
  108. package/dist/modules/waas/businessAccounts/removeBusinessAccountWallet/removeBusinessAccountWallet.d.ts.map +1 -1
  109. package/dist/modules/waas/businessAccounts/resendFields.d.ts +39 -0
  110. package/dist/modules/waas/businessAccounts/resendFields.d.ts.map +1 -0
  111. package/dist/modules/waas/businessAccounts/setBusinessAccountGovernance/index.d.ts +2 -0
  112. package/dist/modules/waas/businessAccounts/setBusinessAccountGovernance/index.d.ts.map +1 -0
  113. package/dist/modules/waas/businessAccounts/setBusinessAccountGovernance/setBusinessAccountGovernance.d.ts +49 -0
  114. package/dist/modules/waas/businessAccounts/setBusinessAccountGovernance/setBusinessAccountGovernance.d.ts.map +1 -0
  115. package/dist/modules/waas/businessAccounts/transferBusinessAccountOwnership/transferBusinessAccountOwnership.d.ts +11 -2
  116. package/dist/modules/waas/businessAccounts/transferBusinessAccountOwnership/transferBusinessAccountOwnership.d.ts.map +1 -1
  117. package/dist/modules/waas/businessAccounts/updateBusinessAccountMemberRole/updateBusinessAccountMemberRole.d.ts +11 -2
  118. package/dist/modules/waas/businessAccounts/updateBusinessAccountMemberRole/updateBusinessAccountMemberRole.d.ts.map +1 -1
  119. package/dist/modules/waas/businessAccounts/vetoBusinessAccountProposal/index.d.ts +2 -0
  120. package/dist/modules/waas/businessAccounts/vetoBusinessAccountProposal/index.d.ts.map +1 -0
  121. package/dist/modules/waas/businessAccounts/vetoBusinessAccountProposal/vetoBusinessAccountProposal.d.ts +29 -0
  122. package/dist/modules/waas/businessAccounts/vetoBusinessAccountProposal/vetoBusinessAccountProposal.d.ts.map +1 -0
  123. package/dist/modules/waas/businessAccounts/withdrawBusinessAccountProposalApproval/index.d.ts +2 -0
  124. package/dist/modules/waas/businessAccounts/withdrawBusinessAccountProposalApproval/index.d.ts.map +1 -0
  125. package/dist/modules/waas/businessAccounts/withdrawBusinessAccountProposalApproval/withdrawBusinessAccountProposalApproval.d.ts +29 -0
  126. package/dist/modules/waas/businessAccounts/withdrawBusinessAccountProposalApproval/withdrawBusinessAccountProposalApproval.d.ts.map +1 -0
  127. package/dist/services/resilientIndexedDbStore/createResilientIndexedDbStore/createResilientIndexedDbStore.d.ts +44 -0
  128. package/dist/services/resilientIndexedDbStore/createResilientIndexedDbStore/createResilientIndexedDbStore.d.ts.map +1 -0
  129. package/dist/services/resilientIndexedDbStore/createResilientIndexedDbStore/index.d.ts +2 -0
  130. package/dist/services/resilientIndexedDbStore/createResilientIndexedDbStore/index.d.ts.map +1 -0
  131. package/dist/services/resilientIndexedDbStore/errors/TransactionNotCompletedError.d.ts +5 -0
  132. package/dist/services/resilientIndexedDbStore/errors/TransactionNotCompletedError.d.ts.map +1 -0
  133. package/dist/services/resilientIndexedDbStore/resilientIndexedDbStore.types.d.ts +79 -0
  134. package/dist/services/resilientIndexedDbStore/resilientIndexedDbStore.types.d.ts.map +1 -0
  135. package/dist/services/resilientIndexedDbStore/utils/applyMutation/applyMutation.d.ts +29 -0
  136. package/dist/services/resilientIndexedDbStore/utils/applyMutation/applyMutation.d.ts.map +1 -0
  137. package/dist/services/resilientIndexedDbStore/utils/applyMutation/index.d.ts +2 -0
  138. package/dist/services/resilientIndexedDbStore/utils/applyMutation/index.d.ts.map +1 -0
  139. package/dist/services/resilientIndexedDbStore/utils/constants.d.ts +24 -0
  140. package/dist/services/resilientIndexedDbStore/utils/constants.d.ts.map +1 -0
  141. package/dist/services/resilientIndexedDbStore/utils/createTombstoneStore/createTombstoneStore.d.ts +61 -0
  142. package/dist/services/resilientIndexedDbStore/utils/createTombstoneStore/createTombstoneStore.d.ts.map +1 -0
  143. package/dist/services/resilientIndexedDbStore/utils/createTombstoneStore/index.d.ts +3 -0
  144. package/dist/services/resilientIndexedDbStore/utils/createTombstoneStore/index.d.ts.map +1 -0
  145. package/dist/services/resilientIndexedDbStore/utils/createWorkQueue/createWorkQueue.d.ts +60 -0
  146. package/dist/services/resilientIndexedDbStore/utils/createWorkQueue/createWorkQueue.d.ts.map +1 -0
  147. package/dist/services/resilientIndexedDbStore/utils/createWorkQueue/index.d.ts +3 -0
  148. package/dist/services/resilientIndexedDbStore/utils/createWorkQueue/index.d.ts.map +1 -0
  149. package/dist/services/resilientIndexedDbStore/utils/deleteRecord/deleteRecord.d.ts +35 -0
  150. package/dist/services/resilientIndexedDbStore/utils/deleteRecord/deleteRecord.d.ts.map +1 -0
  151. package/dist/services/resilientIndexedDbStore/utils/deleteRecord/index.d.ts +2 -0
  152. package/dist/services/resilientIndexedDbStore/utils/deleteRecord/index.d.ts.map +1 -0
  153. package/dist/services/resilientIndexedDbStore/utils/getBackoffDelay/getBackoffDelay.d.ts +22 -0
  154. package/dist/services/resilientIndexedDbStore/utils/getBackoffDelay/getBackoffDelay.d.ts.map +1 -0
  155. package/dist/services/resilientIndexedDbStore/utils/getBackoffDelay/index.d.ts +2 -0
  156. package/dist/services/resilientIndexedDbStore/utils/getBackoffDelay/index.d.ts.map +1 -0
  157. package/dist/services/resilientIndexedDbStore/utils/getRecord/getRecord.d.ts +32 -0
  158. package/dist/services/resilientIndexedDbStore/utils/getRecord/getRecord.d.ts.map +1 -0
  159. package/dist/services/resilientIndexedDbStore/utils/getRecord/index.d.ts +2 -0
  160. package/dist/services/resilientIndexedDbStore/utils/getRecord/index.d.ts.map +1 -0
  161. package/dist/services/resilientIndexedDbStore/utils/getRecordKey/getRecordKey.d.ts +27 -0
  162. package/dist/services/resilientIndexedDbStore/utils/getRecordKey/getRecordKey.d.ts.map +1 -0
  163. package/dist/services/resilientIndexedDbStore/utils/getRecordKey/index.d.ts +2 -0
  164. package/dist/services/resilientIndexedDbStore/utils/getRecordKey/index.d.ts.map +1 -0
  165. package/dist/services/resilientIndexedDbStore/utils/getTransactionError/getTransactionError.d.ts +28 -0
  166. package/dist/services/resilientIndexedDbStore/utils/getTransactionError/getTransactionError.d.ts.map +1 -0
  167. package/dist/services/resilientIndexedDbStore/utils/getTransactionError/index.d.ts +2 -0
  168. package/dist/services/resilientIndexedDbStore/utils/getTransactionError/index.d.ts.map +1 -0
  169. package/dist/services/resilientIndexedDbStore/utils/isPermanentWriteError/index.d.ts +2 -0
  170. package/dist/services/resilientIndexedDbStore/utils/isPermanentWriteError/index.d.ts.map +1 -0
  171. package/dist/services/resilientIndexedDbStore/utils/isPermanentWriteError/isPermanentWriteError.d.ts +20 -0
  172. package/dist/services/resilientIndexedDbStore/utils/isPermanentWriteError/isPermanentWriteError.d.ts.map +1 -0
  173. package/dist/services/resilientIndexedDbStore/utils/openDatabase/index.d.ts +2 -0
  174. package/dist/services/resilientIndexedDbStore/utils/openDatabase/index.d.ts.map +1 -0
  175. package/dist/services/resilientIndexedDbStore/utils/openDatabase/openDatabase.d.ts +31 -0
  176. package/dist/services/resilientIndexedDbStore/utils/openDatabase/openDatabase.d.ts.map +1 -0
  177. package/dist/services/resilientIndexedDbStore/utils/putRecord/index.d.ts +2 -0
  178. package/dist/services/resilientIndexedDbStore/utils/putRecord/index.d.ts.map +1 -0
  179. package/dist/services/resilientIndexedDbStore/utils/putRecord/putRecord.d.ts +37 -0
  180. package/dist/services/resilientIndexedDbStore/utils/putRecord/putRecord.d.ts.map +1 -0
  181. package/dist/services/resilientIndexedDbStore/utils/readStoredValue/index.d.ts +2 -0
  182. package/dist/services/resilientIndexedDbStore/utils/readStoredValue/index.d.ts.map +1 -0
  183. package/dist/services/resilientIndexedDbStore/utils/readStoredValue/readStoredValue.d.ts +42 -0
  184. package/dist/services/resilientIndexedDbStore/utils/readStoredValue/readStoredValue.d.ts.map +1 -0
  185. package/dist/services/resilientIndexedDbStore/utils/replayTombstones/index.d.ts +2 -0
  186. package/dist/services/resilientIndexedDbStore/utils/replayTombstones/index.d.ts.map +1 -0
  187. package/dist/services/resilientIndexedDbStore/utils/replayTombstones/replayTombstones.d.ts +31 -0
  188. package/dist/services/resilientIndexedDbStore/utils/replayTombstones/replayTombstones.d.ts.map +1 -0
  189. package/dist/services/resilientIndexedDbStore/utils/runWithTimeout/index.d.ts +2 -0
  190. package/dist/services/resilientIndexedDbStore/utils/runWithTimeout/index.d.ts.map +1 -0
  191. package/dist/services/resilientIndexedDbStore/utils/runWithTimeout/runWithTimeout.d.ts +34 -0
  192. package/dist/services/resilientIndexedDbStore/utils/runWithTimeout/runWithTimeout.d.ts.map +1 -0
  193. package/dist/services/resilientIndexedDbStore/utils/withDatabase/index.d.ts +2 -0
  194. package/dist/services/resilientIndexedDbStore/utils/withDatabase/index.d.ts.map +1 -0
  195. package/dist/services/resilientIndexedDbStore/utils/withDatabase/withDatabase.d.ts +39 -0
  196. package/dist/services/resilientIndexedDbStore/utils/withDatabase/withDatabase.d.ts.map +1 -0
  197. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  198. package/dist/utils/retryOnFail/retryOnFail.d.ts.map +1 -1
  199. package/dist/utils/retryOnFetchError/retryOnFetchError.d.ts.map +1 -1
  200. package/dist/utils/waitForDelay/index.d.ts +2 -0
  201. package/dist/utils/waitForDelay/index.d.ts.map +1 -0
  202. package/dist/utils/waitForDelay/waitForDelay.d.ts +21 -0
  203. package/dist/utils/waitForDelay/waitForDelay.d.ts.map +1 -0
  204. package/dist/{waas-H5xyBfTI.esm.js → waas-BAcC_ZEU.esm.js} +688 -26
  205. package/dist/waas-BAcC_ZEU.esm.js.map +1 -0
  206. package/dist/{waas-DIlnOHm6.native.esm.js → waas-BnBxnaH4.native.esm.js} +688 -26
  207. package/dist/waas-BnBxnaH4.native.esm.js.map +1 -0
  208. package/dist/{waas-7vSYuH3H.cjs → waas-EJACWt9Q.cjs} +764 -24
  209. package/dist/waas-EJACWt9Q.cjs.map +1 -0
  210. package/dist/waas.cjs +18 -5
  211. package/dist/waas.esm.js +5 -5
  212. package/dist/waas.native.esm.js +5 -5
  213. package/dist/waasCore.cjs +5 -5
  214. package/dist/waasCore.esm.js +5 -5
  215. package/dist/waasCore.native.esm.js +5 -5
  216. package/package.json +3 -4
  217. package/dist/getNetworkProviderFromNetworkId-OXG2gPby.native.esm.js.map +0 -1
  218. package/dist/logoutWithReason-B-cf-dUs.esm.js.map +0 -1
  219. package/dist/logoutWithReason-C4AgSbjv.native.esm.js.map +0 -1
  220. package/dist/logoutWithReason-c1DmyRBx.cjs.map +0 -1
  221. package/dist/waas-7vSYuH3H.cjs.map +0 -1
  222. package/dist/waas-DIlnOHm6.native.esm.js.map +0 -1
  223. package/dist/waas-H5xyBfTI.esm.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { B as getWalletAccounts, D as findWaasWalletProviderByChain, E as isWaasWalletAccount, Et as BaseError, O as isWaasWalletProvider, Ot as name, S as InvalidParamError, St as getDefaultClient, Tt as getCore, U as getChainFromVerifiedCredentialChain, V as formatWalletProviderKey, _t as assertDefined, c as NoWalletProviderFoundError, j as DYNAMIC_WAAS_METADATA, kt as version, l as createApiClient, t as __logoutWithReason_wrapped, u as __refreshAuth_wrapped } from "./logoutWithReason-B-cf-dUs.esm.js";
2
- import { n as isDynamicWaasEnabled, o as NotWaasWalletProviderError, r as getWaasWalletProviderFromWalletAccount } from "./migrateFromFireblocks-B76sFd7a.esm.js";
3
- import { n as getWalletProviderByKey, t as getVerifiedCredentialForWalletAccount } from "./getVerifiedCredentialForWalletAccount-DzZ-0SaQ.esm.js";
1
+ import { At as version, C as InvalidParamError, Ct as getDefaultClient, D as isWaasWalletAccount, Dt as BaseError, Et as getCore, H as formatWalletProviderKey, M as DYNAMIC_WAAS_METADATA, O as findWaasWalletProviderByChain, V as getWalletAccounts, W as getChainFromVerifiedCredentialChain, d as __refreshAuth_wrapped, k as isWaasWalletProvider, kt as name, l as NoWalletProviderFoundError, t as __logoutWithReason_wrapped, u as createApiClient, vt as assertDefined } from "./logoutWithReason-Demgc354.esm.js";
2
+ import { n as isDynamicWaasEnabled, o as NotWaasWalletProviderError, r as getWaasWalletProviderFromWalletAccount } from "./migrateFromFireblocks-DSgWzuHJ.esm.js";
3
+ import { n as getWalletProviderByKey, t as getVerifiedCredentialForWalletAccount } from "./getVerifiedCredentialForWalletAccount-BWtWpYjd.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
- const payload = await response.raw.json();
254
- if (payload.reason !== "INTENT_REQUIRED" && payload.reason !== "APPROVALS_REQUIRED" || !payload.intent) throw new UnexpectedConsentResponseError({ message: `addWalletToBusinessAccount: unexpected 202 body: ${JSON.stringify(payload)}` });
255
- return payload;
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. The backend
1763
- * refuses to remove the last wallet on a business account.
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: { newOwnerUserId }
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: { role },
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 { WaasChainEnum$1 as $, getPolicy as A, normalizeWalletRequirements as B, isBusinessAccountActionRequired as C, getWalletPolicyLayer as D, getWalletRecoveryState as E, exportWaasClientKeyshares as F, expandPolicyRules as G, createWaasOfflineRecoveryShares as H, desugarPolicyRules as I, buildAllowPolicyRule as J, createBusinessAccount as K, delegateWaasKeyShares as L, getBusinessAccount as M, getAccountPolicyLayer as N, getWalletAccountShareSets as O, exportWaasPrivateKey as P, addBusinessAccountMember as Q, createWalletForBusinessAccount as R, isPasswordRequiredForWaasWallets as S, hasDelegatedAccess as T, createPolicy as U, isWalletCreationRequirement as V, resolvePolicyScope as W, addWalletToBusinessAccount as X, backupWaasKeySharesToGoogleDrive as Y, addBusinessAccountSigner as Z, removeBusinessAccountSigner as _, updateBusinessAccountMemberRole as a, refreshWaasWalletAccountShares as b, transferBusinessAccountOwnership as c, setWaasWalletAccountPassword as d, WaasWalletShareSetType$1 as et, revokeWaasDelegation as f, removeBusinessAccountWallet as g, removePolicyRules as h, updateWaasPassword as i, getChainsMissingWaasWalletAccounts as j, getSignerPolicyLayer as k, signSerializedTransaction as l, removeSignerPolicyRule as m, upsertSignerPolicyRule as n, updateBusinessAccount as o, removeWalletPolicyRule as p, buildDenyPolicyRule as q, upsertAccountPolicyRule as r, unlockWallet as s, upsertWalletPolicyRule as t, shouldAutoCreateWalletForChain as u, removeBusinessAccountMember as v, importWaasPrivateKey as w, listBusinessAccounts as x, removeAccountPolicyRule as y, createWaasWalletAccounts as z };
2281
- //# sourceMappingURL=waas-H5xyBfTI.esm.js.map
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-BAcC_ZEU.esm.js.map