@bloxchain/sdk 1.0.0-alpha.2 → 1.0.0-alpha.21

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 (134) hide show
  1. package/README.md +377 -376
  2. package/abi/AccountBlox.abi.json +2679 -4500
  3. package/abi/BareBlox.abi.json +94 -0
  4. package/abi/BaseStateMachine.abi.json +798 -753
  5. package/abi/CopyBlox.abi.json +1609 -0
  6. package/abi/EngineBlox.abi.json +566 -576
  7. package/abi/GuardController.abi.json +1546 -2095
  8. package/abi/GuardControllerDefinitions.abi.json +416 -0
  9. package/abi/IDefinition.abi.json +57 -47
  10. package/abi/RoleBlox.abi.json +2993 -4208
  11. package/abi/RuntimeRBAC.abi.json +901 -959
  12. package/abi/RuntimeRBACDefinitions.abi.json +265 -81
  13. package/abi/SecureBlox.abi.json +2752 -3827
  14. package/abi/SecureOwnable.abi.json +1522 -2581
  15. package/abi/SecureOwnableDefinitions.abi.json +174 -164
  16. package/dist/abi/AccountBlox.abi.json +3978 -0
  17. package/dist/abi/BareBlox.abi.json +1378 -0
  18. package/dist/abi/BaseStateMachine.abi.json +1281 -1236
  19. package/dist/abi/CopyBlox.abi.json +1609 -0
  20. package/dist/abi/EngineBlox.abi.json +862 -0
  21. package/dist/abi/GuardController.abi.json +2328 -2877
  22. package/dist/abi/GuardControllerDefinitions.abi.json +416 -0
  23. package/dist/abi/IDefinition.abi.json +122 -112
  24. package/dist/abi/RoleBlox.abi.json +2994 -0
  25. package/dist/abi/RuntimeRBAC.abi.json +1629 -1687
  26. package/dist/abi/RuntimeRBACDefinitions.abi.json +386 -0
  27. package/dist/abi/SecureBlox.abi.json +2753 -0
  28. package/dist/abi/SecureOwnable.abi.json +2733 -3792
  29. package/dist/abi/SecureOwnableDefinitions.abi.json +421 -0
  30. package/{abi → dist/abi}/SimpleRWA20.abi.json +478 -1756
  31. package/{abi → dist/abi}/SimpleRWA20Definitions.abi.json +5 -0
  32. package/{abi → dist/abi}/SimpleVault.abi.json +648 -2214
  33. package/{abi → dist/abi}/SimpleVaultDefinitions.abi.json +5 -0
  34. package/dist/abi.d.ts +11 -0
  35. package/dist/abi.d.ts.map +1 -0
  36. package/dist/abi.js +10 -0
  37. package/dist/abi.js.map +1 -0
  38. package/dist/contracts/{BaseStateMachine.d.ts → core/BaseStateMachine.d.ts} +20 -6
  39. package/dist/contracts/core/BaseStateMachine.d.ts.map +1 -0
  40. package/dist/contracts/{BaseStateMachine.js → core/BaseStateMachine.js} +88 -38
  41. package/dist/contracts/core/BaseStateMachine.js.map +1 -0
  42. package/dist/contracts/{GuardController.d.ts → core/GuardController.d.ts} +22 -15
  43. package/dist/contracts/core/GuardController.d.ts.map +1 -0
  44. package/dist/contracts/{GuardController.js → core/GuardController.js} +19 -21
  45. package/dist/contracts/core/GuardController.js.map +1 -0
  46. package/dist/contracts/core/RuntimeRBAC.d.ts +27 -0
  47. package/dist/contracts/core/RuntimeRBAC.d.ts.map +1 -0
  48. package/dist/contracts/core/RuntimeRBAC.js +33 -0
  49. package/dist/contracts/core/RuntimeRBAC.js.map +1 -0
  50. package/dist/contracts/{SecureOwnable.d.ts → core/SecureOwnable.d.ts} +5 -15
  51. package/dist/contracts/core/SecureOwnable.d.ts.map +1 -0
  52. package/dist/contracts/{SecureOwnable.js → core/SecureOwnable.js} +4 -23
  53. package/dist/contracts/core/SecureOwnable.js.map +1 -0
  54. package/dist/index.d.ts +8 -7
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +6 -6
  57. package/dist/index.js.map +1 -1
  58. package/dist/interfaces/base.index.d.ts +10 -2
  59. package/dist/interfaces/base.index.d.ts.map +1 -1
  60. package/dist/interfaces/base.state.machine.index.d.ts +3 -2
  61. package/dist/interfaces/base.state.machine.index.d.ts.map +1 -1
  62. package/dist/interfaces/core.access.index.d.ts +2 -16
  63. package/dist/interfaces/core.access.index.d.ts.map +1 -1
  64. package/dist/interfaces/core.execution.index.d.ts +8 -11
  65. package/dist/interfaces/core.execution.index.d.ts.map +1 -1
  66. package/dist/interfaces/core.security.index.d.ts +1 -4
  67. package/dist/interfaces/core.security.index.d.ts.map +1 -1
  68. package/dist/interfaces/lib.index.d.ts +1 -1
  69. package/dist/interfaces/lib.index.d.ts.map +1 -1
  70. package/dist/lib/Definition.d.ts.map +1 -1
  71. package/dist/lib/Definition.js +2 -0
  72. package/dist/lib/Definition.js.map +1 -1
  73. package/dist/lib/EngineBlox.d.ts +17 -51
  74. package/dist/lib/EngineBlox.d.ts.map +1 -1
  75. package/dist/lib/EngineBlox.js +26 -110
  76. package/dist/lib/EngineBlox.js.map +1 -1
  77. package/dist/lib/definitions/GuardControllerDefinitions.d.ts +34 -7
  78. package/dist/lib/definitions/GuardControllerDefinitions.d.ts.map +1 -1
  79. package/dist/lib/definitions/GuardControllerDefinitions.js +62 -10
  80. package/dist/lib/definitions/GuardControllerDefinitions.js.map +1 -1
  81. package/dist/lib/definitions/RuntimeRBACDefinitions.d.ts +48 -7
  82. package/dist/lib/definitions/RuntimeRBACDefinitions.d.ts.map +1 -1
  83. package/dist/lib/definitions/RuntimeRBACDefinitions.js +73 -10
  84. package/dist/lib/definitions/RuntimeRBACDefinitions.js.map +1 -1
  85. package/dist/lib/definitions/SecureOwnableDefinitions.d.ts +12 -7
  86. package/dist/lib/definitions/SecureOwnableDefinitions.d.ts.map +1 -1
  87. package/dist/lib/definitions/SecureOwnableDefinitions.js +25 -9
  88. package/dist/lib/definitions/SecureOwnableDefinitions.js.map +1 -1
  89. package/dist/lib/definitions/index.d.ts +6 -4
  90. package/dist/lib/definitions/index.d.ts.map +1 -1
  91. package/dist/lib/definitions/index.js +5 -4
  92. package/dist/lib/definitions/index.js.map +1 -1
  93. package/dist/types/base.state.machine.index.d.ts +0 -2
  94. package/dist/types/base.state.machine.index.d.ts.map +1 -1
  95. package/dist/types/base.state.machine.index.js +1 -3
  96. package/dist/types/base.state.machine.index.js.map +1 -1
  97. package/dist/types/core.execution.index.d.ts +1 -0
  98. package/dist/types/core.execution.index.d.ts.map +1 -1
  99. package/dist/types/core.execution.index.js +1 -0
  100. package/dist/types/core.execution.index.js.map +1 -1
  101. package/dist/types/core.security.index.d.ts.map +1 -1
  102. package/dist/types/core.security.index.js +2 -2
  103. package/dist/types/core.security.index.js.map +1 -1
  104. package/dist/types/definition.index.d.ts +7 -0
  105. package/dist/types/definition.index.d.ts.map +1 -1
  106. package/dist/types/definition.index.js.map +1 -1
  107. package/dist/types/lib.index.d.ts +0 -1
  108. package/dist/types/lib.index.d.ts.map +1 -1
  109. package/dist/types/lib.index.js +1 -2
  110. package/dist/types/lib.index.js.map +1 -1
  111. package/dist/utils/contract-errors.d.ts +125 -13
  112. package/dist/utils/contract-errors.d.ts.map +1 -1
  113. package/dist/utils/contract-errors.js +370 -107
  114. package/dist/utils/contract-errors.js.map +1 -1
  115. package/dist/utils/interface-ids.js +8 -8
  116. package/dist/utils/interface-ids.js.map +1 -1
  117. package/dist/utils/metaTx/metaTransaction.d.ts +103 -7
  118. package/dist/utils/metaTx/metaTransaction.d.ts.map +1 -1
  119. package/dist/utils/metaTx/metaTransaction.js +136 -25
  120. package/dist/utils/metaTx/metaTransaction.js.map +1 -1
  121. package/dist/utils/validations.d.ts.map +1 -1
  122. package/dist/utils/validations.js +10 -11
  123. package/dist/utils/validations.js.map +1 -1
  124. package/package.json +10 -6
  125. package/dist/contracts/BaseStateMachine.d.ts.map +0 -1
  126. package/dist/contracts/BaseStateMachine.js.map +0 -1
  127. package/dist/contracts/GuardController.d.ts.map +0 -1
  128. package/dist/contracts/GuardController.js.map +0 -1
  129. package/dist/contracts/RuntimeRBAC.d.ts +0 -54
  130. package/dist/contracts/RuntimeRBAC.d.ts.map +0 -1
  131. package/dist/contracts/RuntimeRBAC.js +0 -58
  132. package/dist/contracts/RuntimeRBAC.js.map +0 -1
  133. package/dist/contracts/SecureOwnable.d.ts.map +0 -1
  134. package/dist/contracts/SecureOwnable.js.map +0 -1
@@ -186,6 +186,11 @@
186
186
  "name": "supportedActionsBitmap",
187
187
  "type": "uint16"
188
188
  },
189
+ {
190
+ "internalType": "bool",
191
+ "name": "enforceHandlerRelations",
192
+ "type": "bool"
193
+ },
189
194
  {
190
195
  "internalType": "bool",
191
196
  "name": "isProtected",
package/dist/abi.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Re-exports contract ABIs for use by consumers (e.g. error decoding).
3
+ * Import from '@bloxchain/sdk/abi'.
4
+ */
5
+ /** EngineBlox contract ABI (full). */
6
+ export declare const engineBloxAbi: readonly unknown[];
7
+ /** EngineBlox ABI entries for custom errors only (for decodeErrorResult). */
8
+ export declare const engineBloxErrorAbi: {
9
+ type?: string;
10
+ }[];
11
+ //# sourceMappingURL=abi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../abi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,sCAAsC;AACtC,eAAO,MAAM,aAAa,EAAwB,SAAS,OAAO,EAAE,CAAC;AAErE,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB;WAAoC,MAAM;GAExE,CAAC"}
package/dist/abi.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Re-exports contract ABIs for use by consumers (e.g. error decoding).
3
+ * Import from '@bloxchain/sdk/abi'.
4
+ */
5
+ import engineBloxAbiJson from './abi/EngineBlox.abi.json';
6
+ /** EngineBlox contract ABI (full). */
7
+ export const engineBloxAbi = engineBloxAbiJson;
8
+ /** EngineBlox ABI entries for custom errors only (for decodeErrorResult). */
9
+ export const engineBloxErrorAbi = engineBloxAbi.filter((item) => item.type === 'error');
10
+ //# sourceMappingURL=abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../abi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAE1D,sCAAsC;AACtC,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAuC,CAAC;AAErE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAI,aAA0C,CAAC,MAAM,CAClF,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAChC,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { Address, PublicClient, WalletClient, Chain, Hex } from 'viem';
2
- import { TransactionOptions, TransactionResult } from '../interfaces/base.index';
3
- import { IBaseStateMachine } from '../interfaces/base.state.machine.index';
4
- import { TxRecord, MetaTransaction, MetaTxParams } from '../interfaces/lib.index';
5
- import { TxAction } from '../types/lib.index';
2
+ import { TransactionOptions, TransactionResult } from '../../interfaces/base.index';
3
+ import { IBaseStateMachine } from '../../interfaces/base.state.machine.index';
4
+ import { TxRecord, MetaTransaction, MetaTxParams } from '../../interfaces/lib.index';
5
+ import { TxAction } from '../../types/lib.index';
6
+ import { FunctionSchema } from '../../types/definition.index';
6
7
  /**
7
8
  * @title BaseStateMachine
8
9
  * @notice TypeScript wrapper for BaseStateMachine smart contract with common utilities
@@ -29,6 +30,7 @@ export declare abstract class BaseStateMachine implements IBaseStateMachine {
29
30
  createMetaTxParams(handlerContract: Address, handlerSelector: Hex, action: TxAction, deadline: bigint, maxGasPrice: bigint, signer: Address): Promise<MetaTxParams>;
30
31
  generateUnsignedMetaTransactionForNew(requester: Address, target: Address, value: bigint, gasLimit: bigint, operationType: Hex, executionSelector: Hex, executionParams: Hex, metaTxParams: MetaTxParams): Promise<MetaTransaction>;
31
32
  generateUnsignedMetaTransactionForExisting(txId: bigint, metaTxParams: MetaTxParams): Promise<MetaTransaction>;
33
+ /** Returns `[]` when there are no txs yet or the clamped id range does not overlap `1..txCounter`. */
32
34
  getTransactionHistory(fromTxId: bigint, toTxId: bigint): Promise<TxRecord[]>;
33
35
  getTransaction(txId: bigint): Promise<TxRecord>;
34
36
  getPendingTransactions(): Promise<bigint[]>;
@@ -48,9 +50,15 @@ export declare abstract class BaseStateMachine implements IBaseStateMachine {
48
50
  * @notice This function uses the reverse index for efficient lookup
49
51
  */
50
52
  getWalletRoles(wallet: Address): Promise<Hex[]>;
51
- isActionSupportedByFunction(functionSelector: Hex, action: TxAction): Promise<boolean>;
53
+ /**
54
+ * Gets all authorized wallets for a role
55
+ * @param roleHash The role hash to get wallets for
56
+ * @returns Array of authorized wallet addresses
57
+ * @notice Requires caller to have any role for privacy protection
58
+ */
59
+ getAuthorizedWallets(roleHash: Hex): Promise<Address[]>;
52
60
  getActiveRolePermissions(roleHash: Hex): Promise<any[]>;
53
- functionSchemaExists(functionSelector: Hex): Promise<boolean>;
61
+ getFunctionSchema(functionSelector: Hex): Promise<FunctionSchema>;
54
62
  getSignerNonce(signer: Address): Promise<bigint>;
55
63
  getSupportedOperationTypes(): Promise<Hex[]>;
56
64
  getSupportedRoles(): Promise<Hex[]>;
@@ -72,6 +80,12 @@ export declare abstract class BaseStateMachine implements IBaseStateMachine {
72
80
  * @return The recovery address
73
81
  */
74
82
  getRecovery(): Promise<Address>;
83
+ /**
84
+ * @dev Returns all hook contracts registered for a function selector
85
+ * @param functionSelector The function selector to query hooks for
86
+ * @return Array of hook contract addresses
87
+ */
88
+ getHooks(functionSelector: Hex): Promise<Address[]>;
75
89
  supportsInterface(interfaceId: Hex): Promise<boolean>;
76
90
  /**
77
91
  * @dev Check if this contract supports IBaseStateMachine interface
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStateMachine.d.ts","sourceRoot":"","sources":["../../../contracts/core/BaseStateMachine.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { handleViemError } from '../utils/viem-error-handler';
1
+ import { parseGwei } from 'viem';
2
+ import { handleViemError } from '../../utils/viem-error-handler';
2
3
  /**
3
4
  * @title BaseStateMachine
4
5
  * @notice TypeScript wrapper for BaseStateMachine smart contract with common utilities
@@ -30,29 +31,6 @@ export class BaseStateMachine {
30
31
  // Otherwise, let Viem use the WalletClient's account automatically
31
32
  const walletClientAccount = this.walletClient.account?.address;
32
33
  const requestedAccount = options.from.toLowerCase();
33
- // For meta-transaction functions, ensure the structure is correct
34
- if (functionName.includes('RequestAndApprove') || functionName.includes('MetaTx')) {
35
- if (args.length > 0 && args[0] && typeof args[0] === 'object' && 'txRecord' in args[0]) {
36
- const metaTx = args[0];
37
- // Ensure all nested structures are properly formatted
38
- if (metaTx.txRecord && typeof metaTx.txRecord === 'object') {
39
- // Ensure txRecord.params exists and is an object
40
- if (!metaTx.txRecord.params || typeof metaTx.txRecord.params !== 'object') {
41
- throw new Error('Invalid meta-transaction: txRecord.params must be an object');
42
- }
43
- // Ensure txRecord.payment exists and is an object
44
- if (!metaTx.txRecord.payment || typeof metaTx.txRecord.payment !== 'object') {
45
- throw new Error('Invalid meta-transaction: txRecord.payment must be an object');
46
- }
47
- }
48
- if (metaTx.params && typeof metaTx.params === 'object') {
49
- // Ensure params is properly formatted
50
- if (typeof metaTx.params.action !== 'number') {
51
- throw new Error('Invalid meta-transaction: params.action must be a number');
52
- }
53
- }
54
- }
55
- }
56
34
  const writeContractParams = {
57
35
  chain: this.chain,
58
36
  address: this.contractAddress,
@@ -65,17 +43,74 @@ export class BaseStateMachine {
65
43
  if (!walletClientAccount || walletClientAccount.toLowerCase() !== requestedAccount) {
66
44
  writeContractParams.account = options.from;
67
45
  }
46
+ // Determine how strictly to enforce pre-flight simulation.
47
+ const simulationMode = options.simulationMode ?? 'strict';
68
48
  try {
69
- // First, simulate the contract call to get better error messages
70
- try {
71
- await this.client.simulateContract({
72
- ...writeContractParams,
73
- account: writeContractParams.account || this.walletClient.account
74
- });
49
+ // Simulate the contract call first for better error messages (no gas params for eth_call).
50
+ if (simulationMode !== 'skip') {
51
+ try {
52
+ await this.client.simulateContract({
53
+ ...writeContractParams,
54
+ account: writeContractParams.account || this.walletClient.account
55
+ });
56
+ }
57
+ catch (simulateError) {
58
+ if (simulationMode === 'strict') {
59
+ throw simulateError;
60
+ }
61
+ const msg = simulateError?.shortMessage ??
62
+ simulateError?.message ??
63
+ simulateError?.cause?.shortMessage ??
64
+ simulateError?.cause?.message ??
65
+ String(simulateError);
66
+ // eslint-disable-next-line no-console
67
+ console.warn(`[BaseStateMachine] Pre-flight simulation failed for ${functionName} (mode=${simulationMode}); continuing to send tx: ${msg}`);
68
+ }
69
+ }
70
+ // Forward explicit gas limit when provided so callers can bypass eth_estimateGas.
71
+ if (options.gas !== undefined) {
72
+ const rawGas = options.gas;
73
+ let gasLimit;
74
+ if (typeof rawGas === 'bigint') {
75
+ gasLimit = rawGas;
76
+ }
77
+ else if (typeof rawGas === 'number') {
78
+ if (!Number.isSafeInteger(rawGas) || rawGas < 0) {
79
+ throw new Error(`Invalid gas: number inputs must be non-negative safe integers (got "${rawGas}"). ` +
80
+ 'Use a bigint or decimal string for larger values.');
81
+ }
82
+ gasLimit = BigInt(rawGas);
83
+ }
84
+ else {
85
+ const s = String(rawGas).trim();
86
+ if (!/^\d+$/.test(s)) {
87
+ throw new Error(`Invalid gas: must be a non-negative integer (got "${options.gas}"). Use a number-like value, decimal string, or bigint.`);
88
+ }
89
+ gasLimit = BigInt(s);
90
+ }
91
+ if (gasLimit < 0n) {
92
+ throw new Error(`Invalid gas: must be non-negative (got ${gasLimit.toString()})`);
93
+ }
94
+ writeContractParams.gas = gasLimit;
75
95
  }
76
- catch (simulateError) {
77
- // Re-throw to get better error handling
78
- throw simulateError;
96
+ // Add gas price override for write only (EIP-1559); viem rejects mixing gasPrice with maxFeePerGas.
97
+ if (options.gasPrice !== undefined && options.gasPrice !== '') {
98
+ const raw = options.gasPrice;
99
+ let gasPriceWei;
100
+ if (typeof raw === 'bigint') {
101
+ gasPriceWei = raw;
102
+ }
103
+ else {
104
+ const s = String(raw).trim();
105
+ if (!/^\d+$/.test(s)) {
106
+ throw new Error(`Invalid gas price: must be a non-negative integer (got "${options.gasPrice}"). Use wei as a string or bigint.`);
107
+ }
108
+ gasPriceWei = BigInt(s);
109
+ }
110
+ writeContractParams.maxFeePerGas = gasPriceWei;
111
+ // Use a separate priority fee so when base fee is high the tip does not go to zero (avoids tx stalling).
112
+ const oneGwei = parseGwei('1');
113
+ writeContractParams.maxPriorityFeePerGas = gasPriceWei <= oneGwei ? gasPriceWei : oneGwei;
79
114
  }
80
115
  const hash = await this.walletClient.writeContract(writeContractParams);
81
116
  return {
@@ -157,6 +192,7 @@ export class BaseStateMachine {
157
192
  ]);
158
193
  }
159
194
  // ============ STATE QUERIES ============
195
+ /** Returns `[]` when there are no txs yet or the clamped id range does not overlap `1..txCounter`. */
160
196
  async getTransactionHistory(fromTxId, toTxId) {
161
197
  return this.executeReadContract('getTransactionHistory', [fromTxId, toTxId]);
162
198
  }
@@ -183,14 +219,20 @@ export class BaseStateMachine {
183
219
  async getWalletRoles(wallet) {
184
220
  return this.executeReadContract('getWalletRoles', [wallet]);
185
221
  }
186
- async isActionSupportedByFunction(functionSelector, action) {
187
- return this.executeReadContract('isActionSupportedByFunction', [functionSelector, action]);
222
+ /**
223
+ * Gets all authorized wallets for a role
224
+ * @param roleHash The role hash to get wallets for
225
+ * @returns Array of authorized wallet addresses
226
+ * @notice Requires caller to have any role for privacy protection
227
+ */
228
+ async getAuthorizedWallets(roleHash) {
229
+ return this.executeReadContract('getAuthorizedWallets', [roleHash]);
188
230
  }
189
231
  async getActiveRolePermissions(roleHash) {
190
232
  return this.executeReadContract('getActiveRolePermissions', [roleHash]);
191
233
  }
192
- async functionSchemaExists(functionSelector) {
193
- return this.executeReadContract('functionSchemaExists', [functionSelector]);
234
+ async getFunctionSchema(functionSelector) {
235
+ return this.executeReadContract('getFunctionSchema', [functionSelector]);
194
236
  }
195
237
  async getSignerNonce(signer) {
196
238
  return this.executeReadContract('getSignerNonce', [signer]);
@@ -233,6 +275,14 @@ export class BaseStateMachine {
233
275
  async getRecovery() {
234
276
  return this.executeReadContract('getRecovery');
235
277
  }
278
+ /**
279
+ * @dev Returns all hook contracts registered for a function selector
280
+ * @param functionSelector The function selector to query hooks for
281
+ * @return Array of hook contract addresses
282
+ */
283
+ async getHooks(functionSelector) {
284
+ return this.executeReadContract('getHooks', [functionSelector]);
285
+ }
236
286
  // ============ INTERFACE SUPPORT ============
237
287
  async supportsInterface(interfaceId) {
238
288
  return this.executeReadContract('supportsInterface', [interfaceId]);
@@ -243,7 +293,7 @@ export class BaseStateMachine {
243
293
  */
244
294
  async supportsBaseStateMachineInterface() {
245
295
  // Import dynamically to avoid circular dependencies
246
- const { INTERFACE_IDS } = await import('../utils/interface-ids');
296
+ const { INTERFACE_IDS } = await import('../../utils/interface-ids');
247
297
  return this.supportsInterface(INTERFACE_IDS.IBaseStateMachine);
248
298
  }
249
299
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStateMachine.js","sourceRoot":"","sources":["../../../contracts/core/BaseStateMachine.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Address, PublicClient, WalletClient, Chain, Hex } from 'viem';
2
- import { TransactionOptions, TransactionResult } from '../interfaces/base.index';
3
- import { IGuardController } from '../interfaces/core.execution.index';
4
- import { MetaTransaction } from '../interfaces/lib.index';
2
+ import { TransactionOptions, TransactionResult } from '../../interfaces/base.index';
3
+ import { IGuardController } from '../../interfaces/core.execution.index';
4
+ import { MetaTransaction } from '../../interfaces/lib.index';
5
5
  import { BaseStateMachine } from './BaseStateMachine';
6
6
  /**
7
7
  * @title GuardController
@@ -43,6 +43,23 @@ export declare class GuardController extends BaseStateMachine implements IGuardC
43
43
  * @notice For simple ETH transfers: value>0, functionSelector=0x00000000, params=""
44
44
  */
45
45
  executeWithTimeLock(target: Address, value: bigint, functionSelector: Hex, params: Hex, gasLimit: bigint, operationType: Hex, options: TransactionOptions): Promise<TransactionResult>;
46
+ /**
47
+ * @dev Requests a time-locked execution with payment details
48
+ * @param target The address of the target contract
49
+ * @param value The ETH value to send
50
+ * @param functionSelector The function selector to execute
51
+ * @param params The encoded parameters for the function
52
+ * @param gasLimit The gas limit for execution
53
+ * @param operationType The operation type hash
54
+ * @param paymentDetails Payment details (recipient, nativeTokenAmount, erc20TokenAddress, erc20TokenAmount)
55
+ * @param options Transaction options including from address
56
+ */
57
+ executeWithPayment(target: Address, value: bigint, functionSelector: Hex, params: Hex, gasLimit: bigint, operationType: Hex, paymentDetails: {
58
+ recipient: Address;
59
+ nativeTokenAmount: bigint;
60
+ erc20TokenAddress: Address;
61
+ erc20TokenAmount: bigint;
62
+ }, options: TransactionOptions): Promise<TransactionResult>;
46
63
  /**
47
64
  * @dev Approves and executes a time-locked transaction
48
65
  * @param txId The transaction ID
@@ -85,15 +102,6 @@ export declare class GuardController extends BaseStateMachine implements IGuardC
85
102
  * @notice Requires EXECUTE_META_REQUEST_AND_APPROVE permission for the execution function selector
86
103
  */
87
104
  requestAndApproveExecution(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
88
- /**
89
- * @dev Creates execution params for a guard configuration batch (definition helper; no contract call)
90
- * @param actions Guard configuration actions
91
- * @return Promise<Hex> The execution params to be used in a meta-transaction
92
- */
93
- guardConfigBatchExecutionParams(actions: Array<{
94
- actionType: number;
95
- data: Hex;
96
- }>): Promise<Hex>;
97
105
  /**
98
106
  * @dev Requests and approves a guard configuration batch using a meta-transaction
99
107
  * @param metaTx The meta-transaction describing the guard configuration batch
@@ -104,12 +112,11 @@ export declare class GuardController extends BaseStateMachine implements IGuardC
104
112
  */
105
113
  guardConfigBatchRequestAndApprove(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
106
114
  /**
107
- * @dev Gets all whitelisted targets for a function selector.
115
+ * @dev Gets all whitelisted targets for a function selector (from BaseStateMachine).
108
116
  * @param functionSelector The function selector
109
117
  * @return Promise<Address[]> Array of whitelisted target addresses
110
- * @notice Requires caller to have any role (via _validateAnyRole) for privacy protection
111
118
  */
112
- getAllowedTargets(functionSelector: Hex): Promise<Address[]>;
119
+ getFunctionWhitelistTargets(functionSelector: Hex): Promise<Address[]>;
113
120
  /**
114
121
  * @dev Check if this contract supports IGuardController interface
115
122
  * @return Promise<boolean> indicating if IGuardController is supported
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuardController.d.ts","sourceRoot":"","sources":["../../../contracts/core/GuardController.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,gBAAiB,YAAW,gBAAgB;gBAE7E,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,eAAe,EAAE,OAAO,EACxB,KAAK,EAAE,KAAK;IAOd;;;;;;;;;OASG;IACG,UAAU,CACd,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,OAAO,EACjB,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAU7B;;;;;;;;;;;;;;OAcG;IACG,mBAAmB,CACvB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,GAAG,EACrB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,GAAG,EAClB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;;;;;;;OAUG;IACG,kBAAkB,CACtB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,GAAG,EACrB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,GAAG,EAClB,cAAc,EAAE;QACd,SAAS,EAAE,OAAO,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,EACD,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;;;OAMG;IACG,wBAAwB,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;;;OAMG;IACG,uBAAuB,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;;;OAMG;IACG,kCAAkC,CACtC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;;;OAMG;IACG,iCAAiC,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;;;;;OAQG;IACG,0BAA0B,CAC9B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAU7B;;;;;;;OAOG;IACG,iCAAiC,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAI7B;;;;OAIG;IACG,2BAA2B,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAM5E;;;OAGG;IACG,gCAAgC,IAAI,OAAO,CAAC,OAAO,CAAC;CAG3D;AAED,eAAe,eAAe,CAAC"}
@@ -1,7 +1,6 @@
1
- import GuardControllerABIJson from '../abi/GuardController.abi.json';
1
+ import GuardControllerABIJson from '../../abi/GuardController.abi.json';
2
2
  import { BaseStateMachine } from './BaseStateMachine';
3
- import { INTERFACE_IDS } from '../utils/interface-ids';
4
- import { guardConfigBatchExecutionParams as defGuardConfigBatchExecutionParams } from '../lib/definitions/GuardControllerDefinitions';
3
+ import { INTERFACE_IDS } from '../../utils/interface-ids';
5
4
  /**
6
5
  * @title GuardController
7
6
  * @notice TypeScript wrapper for GuardController smart contract
@@ -50,6 +49,20 @@ export class GuardController extends BaseStateMachine {
50
49
  async executeWithTimeLock(target, value, functionSelector, params, gasLimit, operationType, options) {
51
50
  return this.executeWriteContract('executeWithTimeLock', [target, value, functionSelector, params, gasLimit, operationType], options);
52
51
  }
52
+ /**
53
+ * @dev Requests a time-locked execution with payment details
54
+ * @param target The address of the target contract
55
+ * @param value The ETH value to send
56
+ * @param functionSelector The function selector to execute
57
+ * @param params The encoded parameters for the function
58
+ * @param gasLimit The gas limit for execution
59
+ * @param operationType The operation type hash
60
+ * @param paymentDetails Payment details (recipient, nativeTokenAmount, erc20TokenAddress, erc20TokenAmount)
61
+ * @param options Transaction options including from address
62
+ */
63
+ async executeWithPayment(target, value, functionSelector, params, gasLimit, operationType, paymentDetails, options) {
64
+ return this.executeWriteContract('executeWithPayment', [target, value, functionSelector, params, gasLimit, operationType, paymentDetails], options);
65
+ }
53
66
  /**
54
67
  * @dev Approves and executes a time-locked transaction
55
68
  * @param txId The transaction ID
@@ -103,14 +116,6 @@ export class GuardController extends BaseStateMachine {
103
116
  return this.executeWriteContract('requestAndApproveExecution', [metaTx], options);
104
117
  }
105
118
  // ============ GUARD CONFIGURATION BATCH ============
106
- /**
107
- * @dev Creates execution params for a guard configuration batch (definition helper; no contract call)
108
- * @param actions Guard configuration actions
109
- * @return Promise<Hex> The execution params to be used in a meta-transaction
110
- */
111
- async guardConfigBatchExecutionParams(actions) {
112
- return Promise.resolve(defGuardConfigBatchExecutionParams(actions));
113
- }
114
119
  /**
115
120
  * @dev Requests and approves a guard configuration batch using a meta-transaction
116
121
  * @param metaTx The meta-transaction describing the guard configuration batch
@@ -123,19 +128,12 @@ export class GuardController extends BaseStateMachine {
123
128
  return this.executeWriteContract('guardConfigBatchRequestAndApprove', [metaTx], options);
124
129
  }
125
130
  /**
126
- * @dev Gets all whitelisted targets for a function selector.
131
+ * @dev Gets all whitelisted targets for a function selector (from BaseStateMachine).
127
132
  * @param functionSelector The function selector
128
133
  * @return Promise<Address[]> Array of whitelisted target addresses
129
- * @notice Requires caller to have any role (via _validateAnyRole) for privacy protection
130
134
  */
131
- async getAllowedTargets(functionSelector) {
132
- const result = await this.executeReadContract('getAllowedTargets', [
133
- functionSelector
134
- ]);
135
- if (!Array.isArray(result)) {
136
- throw new Error(`Unexpected return type from getAllowedTargets: ${typeof result}`);
137
- }
138
- return result;
135
+ async getFunctionWhitelistTargets(functionSelector) {
136
+ return this.executeReadContract('getFunctionWhitelistTargets', [functionSelector]);
139
137
  }
140
138
  // ============ INTERFACE SUPPORT ============
141
139
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuardController.js","sourceRoot":"","sources":["../../../contracts/core/GuardController.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { Address, PublicClient, WalletClient, Chain } from 'viem';
2
+ import { TransactionOptions, TransactionResult } from '../../interfaces/base.index';
3
+ import { IRuntimeRBAC } from '../../interfaces/core.access.index';
4
+ import { MetaTransaction } from '../../interfaces/lib.index';
5
+ import { BaseStateMachine } from './BaseStateMachine';
6
+ /**
7
+ * @title RuntimeRBAC
8
+ * @notice TypeScript wrapper for RuntimeRBAC smart contract
9
+ * @dev Matches the actual Solidity contract implementation
10
+ * @dev Extends BaseStateMachine directly for modular architecture
11
+ */
12
+ export declare class RuntimeRBAC extends BaseStateMachine implements IRuntimeRBAC {
13
+ constructor(client: PublicClient, walletClient: WalletClient | undefined, contractAddress: Address, chain: Chain);
14
+ /**
15
+ * @dev Requests and approves a RBAC configuration batch using a meta-transaction
16
+ * @param metaTx The meta-transaction
17
+ * @param options Transaction options
18
+ */
19
+ roleConfigBatchRequestAndApprove(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
20
+ /**
21
+ * @dev Check if this contract supports IRuntimeRBAC interface
22
+ * @return Promise<boolean> indicating if IRuntimeRBAC is supported
23
+ */
24
+ supportsRuntimeRBACInterface(): Promise<boolean>;
25
+ }
26
+ export default RuntimeRBAC;
27
+ //# sourceMappingURL=RuntimeRBAC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeRBAC.d.ts","sourceRoot":"","sources":["../../../contracts/core/RuntimeRBAC.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAO,MAAM,MAAM,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,gBAAiB,YAAW,YAAY;gBAErE,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,eAAe,EAAE,OAAO,EACxB,KAAK,EAAE,KAAK;IAOd;;;;OAIG;IACG,gCAAgC,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAM7B;;;OAGG;IACG,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC;CAIvD;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,33 @@
1
+ import RuntimeRBACABIJson from '../../abi/RuntimeRBAC.abi.json';
2
+ import { BaseStateMachine } from './BaseStateMachine';
3
+ import { INTERFACE_IDS } from '../../utils/interface-ids';
4
+ /**
5
+ * @title RuntimeRBAC
6
+ * @notice TypeScript wrapper for RuntimeRBAC smart contract
7
+ * @dev Matches the actual Solidity contract implementation
8
+ * @dev Extends BaseStateMachine directly for modular architecture
9
+ */
10
+ export class RuntimeRBAC extends BaseStateMachine {
11
+ constructor(client, walletClient, contractAddress, chain) {
12
+ super(client, walletClient, contractAddress, chain, RuntimeRBACABIJson);
13
+ }
14
+ // ============ ROLE CONFIGURATION BATCH ============
15
+ /**
16
+ * @dev Requests and approves a RBAC configuration batch using a meta-transaction
17
+ * @param metaTx The meta-transaction
18
+ * @param options Transaction options
19
+ */
20
+ async roleConfigBatchRequestAndApprove(metaTx, options) {
21
+ return this.executeWriteContract('roleConfigBatchRequestAndApprove', [metaTx], options);
22
+ }
23
+ // ============ INTERFACE SUPPORT ============
24
+ /**
25
+ * @dev Check if this contract supports IRuntimeRBAC interface
26
+ * @return Promise<boolean> indicating if IRuntimeRBAC is supported
27
+ */
28
+ async supportsRuntimeRBACInterface() {
29
+ return this.supportsInterface(INTERFACE_IDS.IRuntimeRBAC);
30
+ }
31
+ }
32
+ export default RuntimeRBAC;
33
+ //# sourceMappingURL=RuntimeRBAC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeRBAC.js","sourceRoot":"","sources":["../../../contracts/core/RuntimeRBAC.tsx"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAIhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,gBAAgB;IAC/C,YACE,MAAoB,EACpB,YAAsC,EACtC,eAAwB,EACxB,KAAY;QAEZ,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAED,qDAAqD;IAErD;;;;OAIG;IACH,KAAK,CAAC,gCAAgC,CACpC,MAAuB,EACvB,OAA2B;QAE3B,OAAO,IAAI,CAAC,oBAAoB,CAAC,kCAAkC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,8CAA8C;IAE9C;;;OAGG;IACH,KAAK,CAAC,4BAA4B;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5D,CAAC;CAEF;AAED,eAAe,WAAW,CAAC"}
@@ -1,7 +1,7 @@
1
- import { Address, PublicClient, WalletClient, Chain, Hex } from 'viem';
2
- import { TransactionOptions, TransactionResult } from '../interfaces/base.index';
3
- import { ISecureOwnable } from '../interfaces/core.security.index';
4
- import { MetaTransaction } from '../interfaces/lib.index';
1
+ import { Address, PublicClient, WalletClient, Chain } from 'viem';
2
+ import { TransactionOptions, TransactionResult } from '../../interfaces/base.index';
3
+ import { ISecureOwnable } from '../../interfaces/core.security.index';
4
+ import { MetaTransaction } from '../../interfaces/lib.index';
5
5
  import { BaseStateMachine } from './BaseStateMachine';
6
6
  /**
7
7
  * @title SecureOwnable
@@ -14,22 +14,12 @@ export declare class SecureOwnable extends BaseStateMachine implements ISecureOw
14
14
  transferOwnershipApprovalWithMetaTx(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
15
15
  transferOwnershipCancellation(txId: bigint, options: TransactionOptions): Promise<TransactionResult>;
16
16
  transferOwnershipCancellationWithMetaTx(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
17
- updateBroadcasterRequest(newBroadcaster: Address, options: TransactionOptions): Promise<TransactionResult>;
17
+ updateBroadcasterRequest(newBroadcaster: Address, currentBroadcaster: Address, options: TransactionOptions): Promise<TransactionResult>;
18
18
  updateBroadcasterDelayedApproval(txId: bigint, options: TransactionOptions): Promise<TransactionResult>;
19
19
  updateBroadcasterApprovalWithMetaTx(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
20
20
  updateBroadcasterCancellation(txId: bigint, options: TransactionOptions): Promise<TransactionResult>;
21
21
  updateBroadcasterCancellationWithMetaTx(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
22
- /**
23
- * @dev Wrapper matching ISecureOwnable interface; delegates to definition helper (no contract call)
24
- */
25
- updateRecoveryExecutionOptions(newRecoveryAddress: Address): Promise<Hex>;
26
- updateRecoveryExecutionParams(newRecoveryAddress: Address): Promise<Hex>;
27
22
  updateRecoveryRequestAndApprove(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
28
- /**
29
- * @dev Wrapper matching ISecureOwnable interface; delegates to definition helper (no contract call)
30
- */
31
- updateTimeLockExecutionOptions(newTimeLockPeriodSec: bigint): Promise<Hex>;
32
- updateTimeLockExecutionParams(newTimeLockPeriodSec: bigint): Promise<Hex>;
33
23
  updateTimeLockRequestAndApprove(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
34
24
  /**
35
25
  * @dev Check if this contract supports ISecureOwnable interface
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecureOwnable.d.ts","sourceRoot":"","sources":["../../../contracts/core/SecureOwnable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAO,MAAM,MAAM,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,gBAAiB,YAAW,cAAc;gBAEzE,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,eAAe,EAAE,OAAO,EACxB,KAAK,EAAE,KAAK;IAMR,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIjF,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIvG,mCAAmC,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIrH,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpG,uCAAuC,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKzH,wBAAwB,CAAC,cAAc,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIvI,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIvG,mCAAmC,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIrH,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpG,uCAAuC,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKzH,+BAA+B,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKjH,+BAA+B,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAMvH;;;OAGG;IACG,8BAA8B,IAAI,OAAO,CAAC,OAAO,CAAC;CAGzD;AAED,eAAe,aAAa,CAAC"}
@@ -1,7 +1,6 @@
1
- import SecureOwnableABIJson from '../abi/SecureOwnable.abi.json';
1
+ import SecureOwnableABIJson from '../../abi/SecureOwnable.abi.json';
2
2
  import { BaseStateMachine } from './BaseStateMachine';
3
- import { INTERFACE_IDS } from '../utils/interface-ids';
4
- import { updateRecoveryExecutionParams as defUpdateRecoveryExecutionParams, updateTimeLockExecutionParams as defUpdateTimeLockExecutionParams } from '../lib/definitions/SecureOwnableDefinitions';
3
+ import { INTERFACE_IDS } from '../../utils/interface-ids';
5
4
  /**
6
5
  * @title SecureOwnable
7
6
  * @notice TypeScript wrapper for SecureOwnable smart contract
@@ -27,8 +26,8 @@ export class SecureOwnable extends BaseStateMachine {
27
26
  return this.executeWriteContract('transferOwnershipCancellationWithMetaTx', [metaTx], options);
28
27
  }
29
28
  // Broadcaster Management
30
- async updateBroadcasterRequest(newBroadcaster, options) {
31
- return this.executeWriteContract('updateBroadcasterRequest', [newBroadcaster], options);
29
+ async updateBroadcasterRequest(newBroadcaster, currentBroadcaster, options) {
30
+ return this.executeWriteContract('updateBroadcasterRequest', [newBroadcaster, currentBroadcaster], options);
32
31
  }
33
32
  async updateBroadcasterDelayedApproval(txId, options) {
34
33
  return this.executeWriteContract('updateBroadcasterDelayedApproval', [txId], options);
@@ -43,28 +42,10 @@ export class SecureOwnable extends BaseStateMachine {
43
42
  return this.executeWriteContract('updateBroadcasterCancellationWithMetaTx', [metaTx], options);
44
43
  }
45
44
  // Recovery Management
46
- /**
47
- * @dev Wrapper matching ISecureOwnable interface; delegates to definition helper (no contract call)
48
- */
49
- async updateRecoveryExecutionOptions(newRecoveryAddress) {
50
- return this.updateRecoveryExecutionParams(newRecoveryAddress);
51
- }
52
- async updateRecoveryExecutionParams(newRecoveryAddress) {
53
- return Promise.resolve(defUpdateRecoveryExecutionParams(newRecoveryAddress));
54
- }
55
45
  async updateRecoveryRequestAndApprove(metaTx, options) {
56
46
  return this.executeWriteContract('updateRecoveryRequestAndApprove', [metaTx], options);
57
47
  }
58
48
  // TimeLock Management
59
- /**
60
- * @dev Wrapper matching ISecureOwnable interface; delegates to definition helper (no contract call)
61
- */
62
- async updateTimeLockExecutionOptions(newTimeLockPeriodSec) {
63
- return this.updateTimeLockExecutionParams(newTimeLockPeriodSec);
64
- }
65
- async updateTimeLockExecutionParams(newTimeLockPeriodSec) {
66
- return Promise.resolve(defUpdateTimeLockExecutionParams(newTimeLockPeriodSec));
67
- }
68
49
  async updateTimeLockRequestAndApprove(metaTx, options) {
69
50
  return this.executeWriteContract('updateTimeLockRequestAndApprove', [metaTx], options);
70
51
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecureOwnable.js","sourceRoot":"","sources":["../../../contracts/core/SecureOwnable.tsx"],"names":[],"mappings":"AACA,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AAIpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YACE,MAAoB,EACpB,YAAsC,EACtC,eAAwB,EACxB,KAAY;QAEZ,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IAED,uBAAuB;IACvB,KAAK,CAAC,wBAAwB,CAAC,OAA2B;QACxD,OAAO,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,gCAAgC,CAAC,IAAY,EAAE,OAA2B;QAC9E,OAAO,IAAI,CAAC,oBAAoB,CAAC,kCAAkC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,mCAAmC,CAAC,MAAuB,EAAE,OAA2B;QAC5F,OAAO,IAAI,CAAC,oBAAoB,CAAC,qCAAqC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,IAAY,EAAE,OAA2B;QAC3E,OAAO,IAAI,CAAC,oBAAoB,CAAC,+BAA+B,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,uCAAuC,CAAC,MAAuB,EAAE,OAA2B;QAChG,OAAO,IAAI,CAAC,oBAAoB,CAAC,yCAAyC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IACjG,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,wBAAwB,CAAC,cAAuB,EAAE,kBAA2B,EAAE,OAA2B;QAC9G,OAAO,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9G,CAAC;IAED,KAAK,CAAC,gCAAgC,CAAC,IAAY,EAAE,OAA2B;QAC9E,OAAO,IAAI,CAAC,oBAAoB,CAAC,kCAAkC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,mCAAmC,CAAC,MAAuB,EAAE,OAA2B;QAC5F,OAAO,IAAI,CAAC,oBAAoB,CAAC,qCAAqC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,IAAY,EAAE,OAA2B;QAC3E,OAAO,IAAI,CAAC,oBAAoB,CAAC,+BAA+B,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,uCAAuC,CAAC,MAAuB,EAAE,OAA2B;QAChG,OAAO,IAAI,CAAC,oBAAoB,CAAC,yCAAyC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IACjG,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,+BAA+B,CAAC,MAAuB,EAAE,OAA2B;QACxF,OAAO,IAAI,CAAC,oBAAoB,CAAC,iCAAiC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,+BAA+B,CAAC,MAAuB,EAAE,OAA2B;QACxF,OAAO,IAAI,CAAC,oBAAoB,CAAC,iCAAiC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,8CAA8C;IAE9C;;;OAGG;IACH,KAAK,CAAC,8BAA8B;QAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,eAAe,aAAa,CAAC"}