@bloxchain/sdk 1.0.0-alpha → 1.0.0-alpha.10

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 (119) hide show
  1. package/README.md +48 -10
  2. package/abi/{ControlBlox.abi.json → AccountBlox.abi.json} +699 -2974
  3. package/abi/BareBlox.abi.json +127 -90
  4. package/abi/BaseStateMachine.abi.json +127 -90
  5. package/abi/EngineBlox.abi.json +11 -31
  6. package/abi/GuardController.abi.json +217 -895
  7. package/abi/GuardControllerDefinitions.abi.json +380 -0
  8. package/abi/IDefinition.abi.json +19 -0
  9. package/abi/RoleBlox.abi.json +818 -2404
  10. package/abi/RuntimeRBAC.abi.json +122 -328
  11. package/abi/RuntimeRBACDefinitions.abi.json +243 -0
  12. package/abi/SecureBlox.abi.json +620 -1952
  13. package/abi/SecureOwnable.abi.json +469 -1801
  14. package/abi/SecureOwnableDefinitions.abi.json +57 -0
  15. package/abi/SimpleRWA20.abi.json +486 -1999
  16. package/abi/SimpleRWA20Definitions.abi.json +19 -0
  17. package/abi/SimpleVault.abi.json +884 -2685
  18. package/abi/SimpleVaultDefinitions.abi.json +19 -0
  19. package/dist/abi/AccountBlox.abi.json +3935 -0
  20. package/dist/abi/BareBlox.abi.json +1378 -0
  21. package/dist/abi/BaseStateMachine.abi.json +1259 -1222
  22. package/dist/abi/EngineBlox.abi.json +852 -0
  23. package/dist/abi/GuardController.abi.json +2232 -2910
  24. package/dist/abi/GuardControllerDefinitions.abi.json +380 -0
  25. package/dist/abi/IDefinition.abi.json +110 -91
  26. package/dist/abi/RoleBlox.abi.json +2983 -0
  27. package/dist/abi/RuntimeRBAC.abi.json +1540 -1746
  28. package/dist/abi/RuntimeRBACDefinitions.abi.json +376 -0
  29. package/dist/abi/SecureBlox.abi.json +2753 -0
  30. package/dist/abi/SecureOwnable.abi.json +2583 -3915
  31. package/dist/abi/SecureOwnableDefinitions.abi.json +411 -0
  32. package/dist/abi/SimpleRWA20.abi.json +4032 -0
  33. package/dist/abi/SimpleRWA20Definitions.abi.json +191 -0
  34. package/dist/abi/SimpleVault.abi.json +3407 -0
  35. package/dist/abi/SimpleVaultDefinitions.abi.json +269 -0
  36. package/dist/abi.d.ts +11 -0
  37. package/dist/abi.d.ts.map +1 -0
  38. package/dist/abi.js +10 -0
  39. package/dist/abi.js.map +1 -0
  40. package/dist/contracts/BaseStateMachine.d.ts +9 -0
  41. package/dist/contracts/BaseStateMachine.d.ts.map +1 -1
  42. package/dist/contracts/BaseStateMachine.js +12 -0
  43. package/dist/contracts/BaseStateMachine.js.map +1 -1
  44. package/dist/contracts/GuardController.d.ts +4 -4
  45. package/dist/contracts/GuardController.d.ts.map +1 -1
  46. package/dist/contracts/GuardController.js +8 -7
  47. package/dist/contracts/GuardController.js.map +1 -1
  48. package/dist/contracts/RuntimeRBAC.d.ts +4 -20
  49. package/dist/contracts/RuntimeRBAC.d.ts.map +1 -1
  50. package/dist/contracts/RuntimeRBAC.js +5 -12
  51. package/dist/contracts/RuntimeRBAC.js.map +1 -1
  52. package/dist/contracts/SecureOwnable.d.ts +3 -3
  53. package/dist/contracts/SecureOwnable.d.ts.map +1 -1
  54. package/dist/contracts/SecureOwnable.js +7 -8
  55. package/dist/contracts/SecureOwnable.js.map +1 -1
  56. package/dist/contracts/core/BaseStateMachine.d.ts +98 -0
  57. package/dist/contracts/core/BaseStateMachine.d.ts.map +1 -0
  58. package/dist/contracts/core/BaseStateMachine.js +271 -0
  59. package/dist/contracts/core/BaseStateMachine.js.map +1 -0
  60. package/dist/contracts/core/GuardController.d.ts +120 -0
  61. package/dist/contracts/core/GuardController.d.ts.map +1 -0
  62. package/dist/contracts/core/GuardController.js +150 -0
  63. package/dist/contracts/core/GuardController.js.map +1 -0
  64. package/dist/contracts/core/RuntimeRBAC.d.ts +40 -0
  65. package/dist/contracts/core/RuntimeRBAC.d.ts.map +1 -0
  66. package/dist/contracts/core/RuntimeRBAC.js +50 -0
  67. package/dist/contracts/core/RuntimeRBAC.js.map +1 -0
  68. package/dist/contracts/core/SecureOwnable.d.ts +41 -0
  69. package/dist/contracts/core/SecureOwnable.d.ts.map +1 -0
  70. package/dist/contracts/core/SecureOwnable.js +81 -0
  71. package/dist/contracts/core/SecureOwnable.js.map +1 -0
  72. package/dist/index.d.ts +6 -4
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +5 -4
  75. package/dist/index.js.map +1 -1
  76. package/dist/interfaces/base.state.machine.index.d.ts +3 -0
  77. package/dist/interfaces/base.state.machine.index.d.ts.map +1 -1
  78. package/dist/interfaces/core.access.index.d.ts +3 -14
  79. package/dist/interfaces/core.access.index.d.ts.map +1 -1
  80. package/dist/interfaces/core.execution.index.d.ts +2 -2
  81. package/dist/interfaces/core.execution.index.d.ts.map +1 -1
  82. package/dist/interfaces/core.security.index.d.ts +1 -1
  83. package/dist/interfaces/core.security.index.d.ts.map +1 -1
  84. package/dist/lib/EngineBlox.d.ts +0 -9
  85. package/dist/lib/EngineBlox.d.ts.map +1 -1
  86. package/dist/lib/EngineBlox.js +0 -9
  87. package/dist/lib/EngineBlox.js.map +1 -1
  88. package/dist/lib/definitions/GuardControllerDefinitions.d.ts +43 -0
  89. package/dist/lib/definitions/GuardControllerDefinitions.d.ts.map +1 -0
  90. package/dist/lib/definitions/GuardControllerDefinitions.js +69 -0
  91. package/dist/lib/definitions/GuardControllerDefinitions.js.map +1 -0
  92. package/dist/lib/definitions/RuntimeRBACDefinitions.d.ts +59 -0
  93. package/dist/lib/definitions/RuntimeRBACDefinitions.d.ts.map +1 -0
  94. package/dist/lib/definitions/RuntimeRBACDefinitions.js +92 -0
  95. package/dist/lib/definitions/RuntimeRBACDefinitions.js.map +1 -0
  96. package/dist/lib/definitions/SecureOwnableDefinitions.d.ts +17 -0
  97. package/dist/lib/definitions/SecureOwnableDefinitions.d.ts.map +1 -0
  98. package/dist/lib/definitions/SecureOwnableDefinitions.js +21 -0
  99. package/dist/lib/definitions/SecureOwnableDefinitions.js.map +1 -0
  100. package/dist/lib/definitions/index.d.ts +9 -0
  101. package/dist/lib/definitions/index.d.ts.map +1 -0
  102. package/dist/lib/definitions/index.js +8 -0
  103. package/dist/lib/definitions/index.js.map +1 -0
  104. package/dist/types/base.state.machine.index.d.ts +0 -1
  105. package/dist/types/base.state.machine.index.d.ts.map +1 -1
  106. package/dist/types/base.state.machine.index.js +1 -2
  107. package/dist/types/base.state.machine.index.js.map +1 -1
  108. package/dist/types/core.execution.index.d.ts +1 -1
  109. package/dist/types/core.execution.index.js +1 -1
  110. package/dist/types/core.security.index.d.ts.map +1 -1
  111. package/dist/types/core.security.index.js +2 -2
  112. package/dist/types/core.security.index.js.map +1 -1
  113. package/dist/utils/contract-errors.d.ts +15 -2
  114. package/dist/utils/contract-errors.d.ts.map +1 -1
  115. package/dist/utils/contract-errors.js +18 -4
  116. package/dist/utils/contract-errors.js.map +1 -1
  117. package/dist/utils/interface-ids.js +1 -1
  118. package/dist/utils/interface-ids.js.map +1 -1
  119. package/package.json +75 -65
@@ -1,6 +1,7 @@
1
1
  import SecureOwnableABIJson from '../abi/SecureOwnable.abi.json';
2
2
  import { BaseStateMachine } from './BaseStateMachine';
3
3
  import { INTERFACE_IDS } from '../utils/interface-ids';
4
+ import { updateRecoveryExecutionParams as defUpdateRecoveryExecutionParams, updateTimeLockExecutionParams as defUpdateTimeLockExecutionParams } from '../lib/definitions/SecureOwnableDefinitions';
4
5
  /**
5
6
  * @title SecureOwnable
6
7
  * @notice TypeScript wrapper for SecureOwnable smart contract
@@ -26,8 +27,8 @@ export class SecureOwnable extends BaseStateMachine {
26
27
  return this.executeWriteContract('transferOwnershipCancellationWithMetaTx', [metaTx], options);
27
28
  }
28
29
  // Broadcaster Management
29
- async updateBroadcasterRequest(newBroadcaster, options) {
30
- return this.executeWriteContract('updateBroadcasterRequest', [newBroadcaster], options);
30
+ async updateBroadcasterRequest(newBroadcaster, location, options) {
31
+ return this.executeWriteContract('updateBroadcasterRequest', [newBroadcaster, location], options);
31
32
  }
32
33
  async updateBroadcasterDelayedApproval(txId, options) {
33
34
  return this.executeWriteContract('updateBroadcasterDelayedApproval', [txId], options);
@@ -43,28 +44,26 @@ export class SecureOwnable extends BaseStateMachine {
43
44
  }
44
45
  // Recovery Management
45
46
  /**
46
- * @dev Wrapper matching ISecureOwnable interface; delegates to updateRecoveryExecutionParams
47
+ * @dev Wrapper matching ISecureOwnable interface; delegates to definition helper (no contract call)
47
48
  */
48
49
  async updateRecoveryExecutionOptions(newRecoveryAddress) {
49
50
  return this.updateRecoveryExecutionParams(newRecoveryAddress);
50
51
  }
51
52
  async updateRecoveryExecutionParams(newRecoveryAddress) {
52
- // Contract ABI encodes bytes as Hex string; read directly as Hex
53
- return this.executeReadContract('updateRecoveryExecutionParams', [newRecoveryAddress]);
53
+ return Promise.resolve(defUpdateRecoveryExecutionParams(newRecoveryAddress));
54
54
  }
55
55
  async updateRecoveryRequestAndApprove(metaTx, options) {
56
56
  return this.executeWriteContract('updateRecoveryRequestAndApprove', [metaTx], options);
57
57
  }
58
58
  // TimeLock Management
59
59
  /**
60
- * @dev Wrapper matching ISecureOwnable interface; delegates to updateTimeLockExecutionParams
60
+ * @dev Wrapper matching ISecureOwnable interface; delegates to definition helper (no contract call)
61
61
  */
62
62
  async updateTimeLockExecutionOptions(newTimeLockPeriodSec) {
63
63
  return this.updateTimeLockExecutionParams(newTimeLockPeriodSec);
64
64
  }
65
65
  async updateTimeLockExecutionParams(newTimeLockPeriodSec) {
66
- // Contract ABI encodes bytes as Hex string; read directly as Hex
67
- return this.executeReadContract('updateTimeLockExecutionParams', [newTimeLockPeriodSec]);
66
+ return Promise.resolve(defUpdateTimeLockExecutionParams(newTimeLockPeriodSec));
68
67
  }
69
68
  async updateTimeLockRequestAndApprove(metaTx, options) {
70
69
  return this.executeWriteContract('updateTimeLockRequestAndApprove', [metaTx], options);
@@ -1 +1 @@
1
- {"version":3,"file":"SecureOwnable.js","sourceRoot":"","sources":["../../contracts/SecureOwnable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SecureOwnable.js","sourceRoot":"","sources":["../../contracts/SecureOwnable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
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';
6
+ import { FunctionSchema } from '../../types/definition.index';
7
+ /**
8
+ * @title BaseStateMachine
9
+ * @notice TypeScript wrapper for BaseStateMachine smart contract with common utilities
10
+ */
11
+ export declare abstract class BaseStateMachine implements IBaseStateMachine {
12
+ protected client: PublicClient;
13
+ protected walletClient: WalletClient | undefined;
14
+ protected contractAddress: Address;
15
+ protected chain: Chain;
16
+ protected abi: any;
17
+ constructor(client: PublicClient, walletClient: WalletClient | undefined, contractAddress: Address, chain: Chain, abi: any);
18
+ /**
19
+ * Validates that wallet client is available for write operations
20
+ */
21
+ protected validateWalletClient(): void;
22
+ /**
23
+ * Common method to execute write contract operations
24
+ */
25
+ protected executeWriteContract(functionName: string, args: any[], options: TransactionOptions): Promise<TransactionResult>;
26
+ /**
27
+ * Common method to execute read contract operations
28
+ */
29
+ protected executeReadContract<T>(functionName: string, args?: any[]): Promise<T>;
30
+ createMetaTxParams(handlerContract: Address, handlerSelector: Hex, action: TxAction, deadline: bigint, maxGasPrice: bigint, signer: Address): Promise<MetaTxParams>;
31
+ generateUnsignedMetaTransactionForNew(requester: Address, target: Address, value: bigint, gasLimit: bigint, operationType: Hex, executionSelector: Hex, executionParams: Hex, metaTxParams: MetaTxParams): Promise<MetaTransaction>;
32
+ generateUnsignedMetaTransactionForExisting(txId: bigint, metaTxParams: MetaTxParams): Promise<MetaTransaction>;
33
+ getTransactionHistory(fromTxId: bigint, toTxId: bigint): Promise<TxRecord[]>;
34
+ getTransaction(txId: bigint): Promise<TxRecord>;
35
+ getPendingTransactions(): Promise<bigint[]>;
36
+ getRole(roleHash: Hex): Promise<{
37
+ roleName: string;
38
+ roleHashReturn: Hex;
39
+ maxWallets: bigint;
40
+ walletCount: bigint;
41
+ isProtected: boolean;
42
+ }>;
43
+ hasRole(roleHash: Hex, wallet: Address): Promise<boolean>;
44
+ /**
45
+ * Gets all roles assigned to a wallet
46
+ * @param wallet The wallet address to get roles for
47
+ * @returns Array of role hashes assigned to the wallet
48
+ * @notice Requires caller to have any role for privacy protection
49
+ * @notice This function uses the reverse index for efficient lookup
50
+ */
51
+ getWalletRoles(wallet: Address): Promise<Hex[]>;
52
+ /**
53
+ * Gets all authorized wallets for a role
54
+ * @param roleHash The role hash to get wallets for
55
+ * @returns Array of authorized wallet addresses
56
+ * @notice Requires caller to have any role for privacy protection
57
+ */
58
+ getWalletsInRole(roleHash: Hex): Promise<Address[]>;
59
+ isActionSupportedByFunction(functionSelector: Hex, action: TxAction): Promise<boolean>;
60
+ getActiveRolePermissions(roleHash: Hex): Promise<any[]>;
61
+ functionSchemaExists(functionSelector: Hex): Promise<boolean>;
62
+ getFunctionSchema(functionSelector: Hex): Promise<FunctionSchema>;
63
+ getSignerNonce(signer: Address): Promise<bigint>;
64
+ getSupportedOperationTypes(): Promise<Hex[]>;
65
+ getSupportedRoles(): Promise<Hex[]>;
66
+ getSupportedFunctions(): Promise<Hex[]>;
67
+ getTimeLockPeriodSec(): Promise<bigint>;
68
+ initialized(): Promise<boolean>;
69
+ /**
70
+ * @dev Returns the owner of the contract
71
+ * @return The owner of the contract
72
+ */
73
+ owner(): Promise<Address>;
74
+ /**
75
+ * @dev Returns all broadcaster addresses
76
+ * @return Array of broadcaster addresses
77
+ */
78
+ getBroadcasters(): Promise<Address[]>;
79
+ /**
80
+ * @dev Returns the recovery address
81
+ * @return The recovery address
82
+ */
83
+ getRecovery(): Promise<Address>;
84
+ /**
85
+ * @dev Returns all hook contracts registered for a function selector
86
+ * @param functionSelector The function selector to query hooks for
87
+ * @return Array of hook contract addresses
88
+ */
89
+ getHooks(functionSelector: Hex): Promise<Address[]>;
90
+ supportsInterface(interfaceId: Hex): Promise<boolean>;
91
+ /**
92
+ * @dev Check if this contract supports IBaseStateMachine interface
93
+ * @return Promise<boolean> indicating if IBaseStateMachine is supported
94
+ */
95
+ supportsBaseStateMachineInterface(): Promise<boolean>;
96
+ }
97
+ export default BaseStateMachine;
98
+ //# sourceMappingURL=BaseStateMachine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStateMachine.d.ts","sourceRoot":"","sources":["../../../contracts/core/BaseStateMachine.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ import { handleViemError } from '../../utils/viem-error-handler';
2
+ /**
3
+ * @title BaseStateMachine
4
+ * @notice TypeScript wrapper for BaseStateMachine smart contract with common utilities
5
+ */
6
+ export class BaseStateMachine {
7
+ constructor(client, walletClient, contractAddress, chain, abi) {
8
+ this.client = client;
9
+ this.walletClient = walletClient;
10
+ this.contractAddress = contractAddress;
11
+ this.chain = chain;
12
+ this.abi = abi;
13
+ }
14
+ // ============ COMMON UTILITY METHODS ============
15
+ /**
16
+ * Validates that wallet client is available for write operations
17
+ */
18
+ validateWalletClient() {
19
+ if (!this.walletClient) {
20
+ throw new Error('Wallet client is required for this operation');
21
+ }
22
+ }
23
+ /**
24
+ * Common method to execute write contract operations
25
+ */
26
+ async executeWriteContract(functionName, args, options) {
27
+ this.validateWalletClient();
28
+ // Viem's writeContract will use the WalletClient's account if available
29
+ // Only pass account explicitly if it differs from WalletClient's account
30
+ // Otherwise, let Viem use the WalletClient's account automatically
31
+ const walletClientAccount = this.walletClient.account?.address;
32
+ 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
+ const writeContractParams = {
57
+ chain: this.chain,
58
+ address: this.contractAddress,
59
+ abi: this.abi,
60
+ functionName,
61
+ args,
62
+ };
63
+ // Only set account if it differs from WalletClient's account
64
+ // This ensures consistency and avoids potential conflicts
65
+ if (!walletClientAccount || walletClientAccount.toLowerCase() !== requestedAccount) {
66
+ writeContractParams.account = options.from;
67
+ }
68
+ 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
+ });
75
+ }
76
+ catch (simulateError) {
77
+ // Re-throw to get better error handling
78
+ throw simulateError;
79
+ }
80
+ const hash = await this.walletClient.writeContract(writeContractParams);
81
+ return {
82
+ hash,
83
+ wait: () => this.client.waitForTransactionReceipt({ hash })
84
+ };
85
+ }
86
+ catch (error) {
87
+ // Use utility to handle and enhance error with contract error decoding
88
+ // handleViemError returns Promise<never> and always throws, so this will never return
89
+ // TypeScript doesn't recognize Promise<never> in control flow, so we explicitly throw
90
+ throw await handleViemError(error, this.abi);
91
+ }
92
+ }
93
+ /**
94
+ * Common method to execute read contract operations
95
+ */
96
+ async executeReadContract(functionName, args = []) {
97
+ try {
98
+ const result = await this.client.readContract({
99
+ address: this.contractAddress,
100
+ abi: this.abi,
101
+ functionName,
102
+ args,
103
+ // Include account for permission checks if wallet client is available
104
+ account: this.walletClient?.account
105
+ });
106
+ return result;
107
+ }
108
+ catch (error) {
109
+ // Try to decode the error if it's a contract revert
110
+ if (error.data || error.cause?.data) {
111
+ const errorData = error.data || error.cause?.data;
112
+ if (errorData && typeof errorData === 'string' && errorData.startsWith('0x')) {
113
+ try {
114
+ const { decodeErrorResult } = await import('viem');
115
+ const decoded = decodeErrorResult({
116
+ abi: this.abi,
117
+ data: errorData
118
+ });
119
+ throw new Error(`${decoded.errorName}(${JSON.stringify(decoded.args)})`);
120
+ }
121
+ catch (decodeError) {
122
+ // If decoding fails, throw the original error
123
+ throw error;
124
+ }
125
+ }
126
+ }
127
+ throw error;
128
+ }
129
+ }
130
+ // ============ META-TRANSACTION UTILITIES ============
131
+ async createMetaTxParams(handlerContract, handlerSelector, action, deadline, maxGasPrice, signer) {
132
+ return this.executeReadContract('createMetaTxParams', [
133
+ handlerContract,
134
+ handlerSelector,
135
+ action,
136
+ deadline,
137
+ maxGasPrice,
138
+ signer
139
+ ]);
140
+ }
141
+ async generateUnsignedMetaTransactionForNew(requester, target, value, gasLimit, operationType, executionSelector, executionParams, metaTxParams) {
142
+ return this.executeReadContract('generateUnsignedMetaTransactionForNew', [
143
+ requester,
144
+ target,
145
+ value,
146
+ gasLimit,
147
+ operationType,
148
+ executionSelector,
149
+ executionParams,
150
+ metaTxParams
151
+ ]);
152
+ }
153
+ async generateUnsignedMetaTransactionForExisting(txId, metaTxParams) {
154
+ return this.executeReadContract('generateUnsignedMetaTransactionForExisting', [
155
+ txId,
156
+ metaTxParams
157
+ ]);
158
+ }
159
+ // ============ STATE QUERIES ============
160
+ async getTransactionHistory(fromTxId, toTxId) {
161
+ return this.executeReadContract('getTransactionHistory', [fromTxId, toTxId]);
162
+ }
163
+ async getTransaction(txId) {
164
+ return this.executeReadContract('getTransaction', [txId]);
165
+ }
166
+ async getPendingTransactions() {
167
+ return this.executeReadContract('getPendingTransactions');
168
+ }
169
+ // ============ ROLE AND PERMISSION QUERIES ============
170
+ async getRole(roleHash) {
171
+ return this.executeReadContract('getRole', [roleHash]);
172
+ }
173
+ async hasRole(roleHash, wallet) {
174
+ return this.executeReadContract('hasRole', [roleHash, wallet]);
175
+ }
176
+ /**
177
+ * Gets all roles assigned to a wallet
178
+ * @param wallet The wallet address to get roles for
179
+ * @returns Array of role hashes assigned to the wallet
180
+ * @notice Requires caller to have any role for privacy protection
181
+ * @notice This function uses the reverse index for efficient lookup
182
+ */
183
+ async getWalletRoles(wallet) {
184
+ return this.executeReadContract('getWalletRoles', [wallet]);
185
+ }
186
+ /**
187
+ * Gets all authorized wallets for a role
188
+ * @param roleHash The role hash to get wallets for
189
+ * @returns Array of authorized wallet addresses
190
+ * @notice Requires caller to have any role for privacy protection
191
+ */
192
+ async getWalletsInRole(roleHash) {
193
+ return this.executeReadContract('getWalletsInRole', [roleHash]);
194
+ }
195
+ async isActionSupportedByFunction(functionSelector, action) {
196
+ return this.executeReadContract('isActionSupportedByFunction', [functionSelector, action]);
197
+ }
198
+ async getActiveRolePermissions(roleHash) {
199
+ return this.executeReadContract('getActiveRolePermissions', [roleHash]);
200
+ }
201
+ async functionSchemaExists(functionSelector) {
202
+ return this.executeReadContract('functionSchemaExists', [functionSelector]);
203
+ }
204
+ async getFunctionSchema(functionSelector) {
205
+ return this.executeReadContract('getFunctionSchema', [functionSelector]);
206
+ }
207
+ async getSignerNonce(signer) {
208
+ return this.executeReadContract('getSignerNonce', [signer]);
209
+ }
210
+ // ============ SYSTEM STATE QUERIES ============
211
+ async getSupportedOperationTypes() {
212
+ return this.executeReadContract('getSupportedOperationTypes');
213
+ }
214
+ async getSupportedRoles() {
215
+ return this.executeReadContract('getSupportedRoles');
216
+ }
217
+ async getSupportedFunctions() {
218
+ return this.executeReadContract('getSupportedFunctions');
219
+ }
220
+ async getTimeLockPeriodSec() {
221
+ return this.executeReadContract('getTimeLockPeriodSec');
222
+ }
223
+ async initialized() {
224
+ return this.executeReadContract('initialized');
225
+ }
226
+ // ============ SYSTEM ROLE QUERY FUNCTIONS ============
227
+ /**
228
+ * @dev Returns the owner of the contract
229
+ * @return The owner of the contract
230
+ */
231
+ async owner() {
232
+ return this.executeReadContract('owner');
233
+ }
234
+ /**
235
+ * @dev Returns all broadcaster addresses
236
+ * @return Array of broadcaster addresses
237
+ */
238
+ async getBroadcasters() {
239
+ return this.executeReadContract('getBroadcasters');
240
+ }
241
+ /**
242
+ * @dev Returns the recovery address
243
+ * @return The recovery address
244
+ */
245
+ async getRecovery() {
246
+ return this.executeReadContract('getRecovery');
247
+ }
248
+ /**
249
+ * @dev Returns all hook contracts registered for a function selector
250
+ * @param functionSelector The function selector to query hooks for
251
+ * @return Array of hook contract addresses
252
+ */
253
+ async getHooks(functionSelector) {
254
+ return this.executeReadContract('getHooks', [functionSelector]);
255
+ }
256
+ // ============ INTERFACE SUPPORT ============
257
+ async supportsInterface(interfaceId) {
258
+ return this.executeReadContract('supportsInterface', [interfaceId]);
259
+ }
260
+ /**
261
+ * @dev Check if this contract supports IBaseStateMachine interface
262
+ * @return Promise<boolean> indicating if IBaseStateMachine is supported
263
+ */
264
+ async supportsBaseStateMachineInterface() {
265
+ // Import dynamically to avoid circular dependencies
266
+ const { INTERFACE_IDS } = await import('../../utils/interface-ids');
267
+ return this.supportsInterface(INTERFACE_IDS.IBaseStateMachine);
268
+ }
269
+ }
270
+ export default BaseStateMachine;
271
+ //# sourceMappingURL=BaseStateMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStateMachine.js","sourceRoot":"","sources":["../../../contracts/core/BaseStateMachine.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
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';
5
+ import { BaseStateMachine } from './BaseStateMachine';
6
+ /**
7
+ * @title GuardController
8
+ * @notice TypeScript wrapper for GuardController smart contract
9
+ * @dev Lightweight controller for generic contract delegation with full EngineBlox workflows
10
+ *
11
+ * This contract provides a complete solution for delegating control to external addresses.
12
+ * It extends BaseStateMachine for core state machine functionality and supports all EngineBlox
13
+ * execution patterns including time-locked transactions, meta-transactions, and payment management.
14
+ *
15
+ * This contract is modular and can be combined with RuntimeRBAC and SecureOwnable for role management.
16
+ */
17
+ export declare class GuardController extends BaseStateMachine implements IGuardController {
18
+ constructor(client: PublicClient, walletClient: WalletClient | undefined, contractAddress: Address, chain: Chain);
19
+ /**
20
+ * @notice Initializer to initialize GuardController
21
+ * @param initialOwner The initial owner address
22
+ * @param broadcaster The broadcaster address
23
+ * @param recovery The recovery address
24
+ * @param timeLockPeriodSec The timelock period in seconds
25
+ * @param eventForwarder The event forwarder address
26
+ * @param options Transaction options including from address
27
+ * @return TransactionResult with hash and wait function
28
+ */
29
+ initialize(initialOwner: Address, broadcaster: Address, recovery: Address, timeLockPeriodSec: bigint, eventForwarder: Address, options: TransactionOptions): Promise<TransactionResult>;
30
+ /**
31
+ * @dev Requests a time-locked execution via EngineBlox workflow
32
+ * @param target The address of the target contract
33
+ * @param value The ETH value to send (0 for standard function calls)
34
+ * @param functionSelector The function selector to execute (0x00000000 for simple ETH transfers)
35
+ * @param params The encoded parameters for the function (empty for simple ETH transfers)
36
+ * @param gasLimit The gas limit for execution
37
+ * @param operationType The operation type hash
38
+ * @param options Transaction options including from address
39
+ * @return TransactionResult with hash and wait function
40
+ * @notice Creates a time-locked transaction that must be approved after the timelock period
41
+ * @notice Requires EXECUTE_TIME_DELAY_REQUEST permission for the function selector
42
+ * @notice For standard function calls: value=0, functionSelector=non-zero, params=encoded data
43
+ * @notice For simple ETH transfers: value>0, functionSelector=0x00000000, params=""
44
+ */
45
+ executeWithTimeLock(target: Address, value: bigint, functionSelector: Hex, params: Hex, gasLimit: bigint, operationType: Hex, options: TransactionOptions): Promise<TransactionResult>;
46
+ /**
47
+ * @dev Approves and executes a time-locked transaction
48
+ * @param txId The transaction ID
49
+ * @param options Transaction options including from address
50
+ * @return TransactionResult with hash and wait function
51
+ * @notice Requires STANDARD execution type and EXECUTE_TIME_DELAY_APPROVE permission for the execution function
52
+ */
53
+ approveTimeLockExecution(txId: bigint, options: TransactionOptions): Promise<TransactionResult>;
54
+ /**
55
+ * @dev Cancels a time-locked transaction
56
+ * @param txId The transaction ID
57
+ * @param options Transaction options including from address
58
+ * @return TransactionResult with hash and wait function
59
+ * @notice Requires STANDARD execution type and EXECUTE_TIME_DELAY_CANCEL permission for the execution function
60
+ */
61
+ cancelTimeLockExecution(txId: bigint, options: TransactionOptions): Promise<TransactionResult>;
62
+ /**
63
+ * @dev Approves a time-locked transaction using a meta-transaction
64
+ * @param metaTx The meta-transaction containing the transaction record and signature
65
+ * @param options Transaction options including from address
66
+ * @return TransactionResult with hash and wait function
67
+ * @notice Requires STANDARD execution type and EXECUTE_META_APPROVE permission for the execution function
68
+ */
69
+ approveTimeLockExecutionWithMetaTx(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
70
+ /**
71
+ * @dev Cancels a time-locked transaction using a meta-transaction
72
+ * @param metaTx The meta-transaction containing the transaction record and signature
73
+ * @param options Transaction options including from address
74
+ * @return TransactionResult with hash and wait function
75
+ * @notice Requires STANDARD execution type and EXECUTE_META_CANCEL permission for the execution function
76
+ */
77
+ cancelTimeLockExecutionWithMetaTx(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
78
+ /**
79
+ * @dev Requests and approves a transaction in one step using a meta-transaction
80
+ * @param metaTx The meta-transaction containing the transaction record and signature
81
+ * @param options Transaction options including from address
82
+ * @return TransactionResult with hash and wait function
83
+ * @notice Requires STANDARD execution type
84
+ * @notice Validates function schema and permissions for the execution function (same as executeWithTimeLock)
85
+ * @notice Requires EXECUTE_META_REQUEST_AND_APPROVE permission for the execution function selector
86
+ */
87
+ 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
+ /**
98
+ * @dev Requests and approves a guard configuration batch using a meta-transaction
99
+ * @param metaTx The meta-transaction describing the guard configuration batch
100
+ * @param options Transaction options including from address
101
+ * @return TransactionResult with hash and wait function
102
+ * @notice OWNER signs, BROADCASTER executes according to GuardControllerDefinitions
103
+ * @notice Supports whitelist management and function schema registration
104
+ */
105
+ guardConfigBatchRequestAndApprove(metaTx: MetaTransaction, options: TransactionOptions): Promise<TransactionResult>;
106
+ /**
107
+ * @dev Gets all whitelisted targets for a function selector (from BaseStateMachine).
108
+ * @param functionSelector The function selector
109
+ * @return Promise<Address[]> Array of whitelisted target addresses
110
+ * @notice Requires caller to have any role (via _validateAnyRole) for privacy protection
111
+ */
112
+ getFunctionWhitelistTargets(functionSelector: Hex): Promise<Address[]>;
113
+ /**
114
+ * @dev Check if this contract supports IGuardController interface
115
+ * @return Promise<boolean> indicating if IGuardController is supported
116
+ */
117
+ supportsGuardControllerInterface(): Promise<boolean>;
118
+ }
119
+ export default GuardController;
120
+ //# sourceMappingURL=GuardController.d.ts.map
@@ -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;AAItD;;;;;;;;;;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;;;;;;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;;;;OAIG;IACG,+BAA+B,CACnC,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC,GAChD,OAAO,CAAC,GAAG,CAAC;IAIf;;;;;;;OAOG;IACG,iCAAiC,CACrC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAI7B;;;;;OAKG;IACG,2BAA2B,CAC/B,gBAAgB,EAAE,GAAG,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC;IAcrB;;;OAGG;IACG,gCAAgC,IAAI,OAAO,CAAC,OAAO,CAAC;CAY3D;AAED,eAAe,eAAe,CAAC"}