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

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 (129) hide show
  1. package/README.md +376 -376
  2. package/abi/AccountBlox.abi.json +609 -2479
  3. package/abi/BareBlox.abi.json +94 -0
  4. package/abi/BaseStateMachine.abi.json +85 -45
  5. package/abi/CopyBlox.abi.json +1593 -0
  6. package/abi/EngineBlox.abi.json +73 -90
  7. package/abi/GuardController.abi.json +252 -806
  8. package/abi/GuardControllerDefinitions.abi.json +411 -0
  9. package/abi/IDefinition.abi.json +5 -0
  10. package/abi/RoleBlox.abi.json +375 -1590
  11. package/abi/RuntimeRBAC.abi.json +155 -218
  12. package/abi/RuntimeRBACDefinitions.abi.json +179 -0
  13. package/abi/SecureBlox.abi.json +436 -1511
  14. package/abi/SecureOwnable.abi.json +524 -1621
  15. package/abi/SecureOwnableDefinitions.abi.json +5 -0
  16. package/abi/SimpleRWA20.abi.json +478 -1756
  17. package/abi/SimpleRWA20Definitions.abi.json +5 -0
  18. package/abi/SimpleVault.abi.json +648 -2214
  19. package/abi/SimpleVaultDefinitions.abi.json +5 -0
  20. package/dist/abi/AccountBlox.abi.json +3929 -0
  21. package/dist/abi/BareBlox.abi.json +1378 -0
  22. package/dist/abi/BaseStateMachine.abi.json +1213 -1173
  23. package/dist/abi/CopyBlox.abi.json +1593 -0
  24. package/dist/abi/EngineBlox.abi.json +855 -0
  25. package/dist/abi/GuardController.abi.json +2222 -2776
  26. package/dist/abi/GuardControllerDefinitions.abi.json +411 -0
  27. package/dist/abi/IDefinition.abi.json +113 -108
  28. package/dist/abi/RoleBlox.abi.json +2994 -0
  29. package/dist/abi/RuntimeRBAC.abi.json +1540 -1603
  30. package/dist/abi/RuntimeRBACDefinitions.abi.json +381 -0
  31. package/dist/abi/SecureBlox.abi.json +2753 -0
  32. package/dist/abi/SecureOwnable.abi.json +2585 -3682
  33. package/dist/abi/SecureOwnableDefinitions.abi.json +416 -0
  34. package/dist/abi/SimpleRWA20.abi.json +4010 -0
  35. package/dist/abi/SimpleRWA20Definitions.abi.json +196 -0
  36. package/dist/abi/SimpleVault.abi.json +3385 -0
  37. package/dist/abi/SimpleVaultDefinitions.abi.json +274 -0
  38. package/dist/abi.d.ts +11 -0
  39. package/dist/abi.d.ts.map +1 -0
  40. package/dist/abi.js +10 -0
  41. package/dist/abi.js.map +1 -0
  42. package/dist/contracts/{BaseStateMachine.d.ts → core/BaseStateMachine.d.ts} +20 -6
  43. package/dist/contracts/core/BaseStateMachine.d.ts.map +1 -0
  44. package/dist/contracts/{BaseStateMachine.js → core/BaseStateMachine.js} +88 -38
  45. package/dist/contracts/core/BaseStateMachine.js.map +1 -0
  46. package/dist/contracts/{GuardController.d.ts → core/GuardController.d.ts} +22 -15
  47. package/dist/contracts/core/GuardController.d.ts.map +1 -0
  48. package/dist/contracts/{GuardController.js → core/GuardController.js} +19 -21
  49. package/dist/contracts/core/GuardController.js.map +1 -0
  50. package/dist/contracts/core/RuntimeRBAC.d.ts +27 -0
  51. package/dist/contracts/core/RuntimeRBAC.d.ts.map +1 -0
  52. package/dist/contracts/core/RuntimeRBAC.js +33 -0
  53. package/dist/contracts/core/RuntimeRBAC.js.map +1 -0
  54. package/dist/contracts/{SecureOwnable.d.ts → core/SecureOwnable.d.ts} +5 -15
  55. package/dist/contracts/core/SecureOwnable.d.ts.map +1 -0
  56. package/dist/contracts/{SecureOwnable.js → core/SecureOwnable.js} +4 -23
  57. package/dist/contracts/core/SecureOwnable.js.map +1 -0
  58. package/dist/index.d.ts +8 -7
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +6 -6
  61. package/dist/index.js.map +1 -1
  62. package/dist/interfaces/base.index.d.ts +10 -2
  63. package/dist/interfaces/base.index.d.ts.map +1 -1
  64. package/dist/interfaces/base.state.machine.index.d.ts +3 -2
  65. package/dist/interfaces/base.state.machine.index.d.ts.map +1 -1
  66. package/dist/interfaces/core.access.index.d.ts +2 -16
  67. package/dist/interfaces/core.access.index.d.ts.map +1 -1
  68. package/dist/interfaces/core.execution.index.d.ts +8 -11
  69. package/dist/interfaces/core.execution.index.d.ts.map +1 -1
  70. package/dist/interfaces/core.security.index.d.ts +1 -4
  71. package/dist/interfaces/core.security.index.d.ts.map +1 -1
  72. package/dist/lib/Definition.d.ts.map +1 -1
  73. package/dist/lib/Definition.js +1 -0
  74. package/dist/lib/Definition.js.map +1 -1
  75. package/dist/lib/EngineBlox.d.ts +16 -49
  76. package/dist/lib/EngineBlox.d.ts.map +1 -1
  77. package/dist/lib/EngineBlox.js +20 -108
  78. package/dist/lib/EngineBlox.js.map +1 -1
  79. package/dist/lib/definitions/GuardControllerDefinitions.d.ts +34 -7
  80. package/dist/lib/definitions/GuardControllerDefinitions.d.ts.map +1 -1
  81. package/dist/lib/definitions/GuardControllerDefinitions.js +62 -10
  82. package/dist/lib/definitions/GuardControllerDefinitions.js.map +1 -1
  83. package/dist/lib/definitions/RuntimeRBACDefinitions.d.ts +48 -7
  84. package/dist/lib/definitions/RuntimeRBACDefinitions.d.ts.map +1 -1
  85. package/dist/lib/definitions/RuntimeRBACDefinitions.js +73 -10
  86. package/dist/lib/definitions/RuntimeRBACDefinitions.js.map +1 -1
  87. package/dist/lib/definitions/SecureOwnableDefinitions.d.ts +12 -7
  88. package/dist/lib/definitions/SecureOwnableDefinitions.d.ts.map +1 -1
  89. package/dist/lib/definitions/SecureOwnableDefinitions.js +25 -9
  90. package/dist/lib/definitions/SecureOwnableDefinitions.js.map +1 -1
  91. package/dist/lib/definitions/index.d.ts +6 -4
  92. package/dist/lib/definitions/index.d.ts.map +1 -1
  93. package/dist/lib/definitions/index.js +5 -4
  94. package/dist/lib/definitions/index.js.map +1 -1
  95. package/dist/types/base.state.machine.index.d.ts +0 -2
  96. package/dist/types/base.state.machine.index.d.ts.map +1 -1
  97. package/dist/types/base.state.machine.index.js +1 -3
  98. package/dist/types/base.state.machine.index.js.map +1 -1
  99. package/dist/types/core.execution.index.d.ts +1 -0
  100. package/dist/types/core.execution.index.d.ts.map +1 -1
  101. package/dist/types/core.execution.index.js +1 -0
  102. package/dist/types/core.execution.index.js.map +1 -1
  103. package/dist/types/core.security.index.d.ts.map +1 -1
  104. package/dist/types/core.security.index.js +2 -2
  105. package/dist/types/core.security.index.js.map +1 -1
  106. package/dist/types/definition.index.d.ts +2 -0
  107. package/dist/types/definition.index.d.ts.map +1 -1
  108. package/dist/types/definition.index.js.map +1 -1
  109. package/dist/utils/contract-errors.d.ts +125 -6
  110. package/dist/utils/contract-errors.d.ts.map +1 -1
  111. package/dist/utils/contract-errors.js +375 -107
  112. package/dist/utils/contract-errors.js.map +1 -1
  113. package/dist/utils/interface-ids.js +8 -8
  114. package/dist/utils/interface-ids.js.map +1 -1
  115. package/dist/utils/metaTx/metaTransaction.d.ts +103 -7
  116. package/dist/utils/metaTx/metaTransaction.d.ts.map +1 -1
  117. package/dist/utils/metaTx/metaTransaction.js +136 -25
  118. package/dist/utils/metaTx/metaTransaction.js.map +1 -1
  119. package/package.json +10 -6
  120. package/dist/contracts/BaseStateMachine.d.ts.map +0 -1
  121. package/dist/contracts/BaseStateMachine.js.map +0 -1
  122. package/dist/contracts/GuardController.d.ts.map +0 -1
  123. package/dist/contracts/GuardController.js.map +0 -1
  124. package/dist/contracts/RuntimeRBAC.d.ts +0 -54
  125. package/dist/contracts/RuntimeRBAC.d.ts.map +0 -1
  126. package/dist/contracts/RuntimeRBAC.js +0 -58
  127. package/dist/contracts/RuntimeRBAC.js.map +0 -1
  128. package/dist/contracts/SecureOwnable.d.ts.map +0 -1
  129. package/dist/contracts/SecureOwnable.js.map +0 -1
@@ -0,0 +1,274 @@
1
+ [
2
+ {
3
+ "inputs": [],
4
+ "name": "APPROVE_WITHDRAWAL_DELAYED_SELECTOR",
5
+ "outputs": [
6
+ {
7
+ "internalType": "bytes4",
8
+ "name": "",
9
+ "type": "bytes4"
10
+ }
11
+ ],
12
+ "stateMutability": "view",
13
+ "type": "function"
14
+ },
15
+ {
16
+ "inputs": [],
17
+ "name": "APPROVE_WITHDRAWAL_META_SELECTOR",
18
+ "outputs": [
19
+ {
20
+ "internalType": "bytes4",
21
+ "name": "",
22
+ "type": "bytes4"
23
+ }
24
+ ],
25
+ "stateMutability": "view",
26
+ "type": "function"
27
+ },
28
+ {
29
+ "inputs": [],
30
+ "name": "CANCEL_WITHDRAWAL_SELECTOR",
31
+ "outputs": [
32
+ {
33
+ "internalType": "bytes4",
34
+ "name": "",
35
+ "type": "bytes4"
36
+ }
37
+ ],
38
+ "stateMutability": "view",
39
+ "type": "function"
40
+ },
41
+ {
42
+ "inputs": [],
43
+ "name": "GENERIC_APPROVAL",
44
+ "outputs": [
45
+ {
46
+ "internalType": "bytes32",
47
+ "name": "",
48
+ "type": "bytes32"
49
+ }
50
+ ],
51
+ "stateMutability": "view",
52
+ "type": "function"
53
+ },
54
+ {
55
+ "inputs": [],
56
+ "name": "GENERIC_CANCELLATION",
57
+ "outputs": [
58
+ {
59
+ "internalType": "bytes32",
60
+ "name": "",
61
+ "type": "bytes32"
62
+ }
63
+ ],
64
+ "stateMutability": "view",
65
+ "type": "function"
66
+ },
67
+ {
68
+ "inputs": [],
69
+ "name": "GENERIC_META_APPROVAL",
70
+ "outputs": [
71
+ {
72
+ "internalType": "bytes32",
73
+ "name": "",
74
+ "type": "bytes32"
75
+ }
76
+ ],
77
+ "stateMutability": "view",
78
+ "type": "function"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "WITHDRAW_ETH",
83
+ "outputs": [
84
+ {
85
+ "internalType": "bytes32",
86
+ "name": "",
87
+ "type": "bytes32"
88
+ }
89
+ ],
90
+ "stateMutability": "view",
91
+ "type": "function"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "WITHDRAW_ETH_REQUEST_SELECTOR",
96
+ "outputs": [
97
+ {
98
+ "internalType": "bytes4",
99
+ "name": "",
100
+ "type": "bytes4"
101
+ }
102
+ ],
103
+ "stateMutability": "view",
104
+ "type": "function"
105
+ },
106
+ {
107
+ "inputs": [],
108
+ "name": "WITHDRAW_ETH_SELECTOR",
109
+ "outputs": [
110
+ {
111
+ "internalType": "bytes4",
112
+ "name": "",
113
+ "type": "bytes4"
114
+ }
115
+ ],
116
+ "stateMutability": "view",
117
+ "type": "function"
118
+ },
119
+ {
120
+ "inputs": [],
121
+ "name": "WITHDRAW_TOKEN",
122
+ "outputs": [
123
+ {
124
+ "internalType": "bytes32",
125
+ "name": "",
126
+ "type": "bytes32"
127
+ }
128
+ ],
129
+ "stateMutability": "view",
130
+ "type": "function"
131
+ },
132
+ {
133
+ "inputs": [],
134
+ "name": "WITHDRAW_TOKEN_REQUEST_SELECTOR",
135
+ "outputs": [
136
+ {
137
+ "internalType": "bytes4",
138
+ "name": "",
139
+ "type": "bytes4"
140
+ }
141
+ ],
142
+ "stateMutability": "view",
143
+ "type": "function"
144
+ },
145
+ {
146
+ "inputs": [],
147
+ "name": "WITHDRAW_TOKEN_SELECTOR",
148
+ "outputs": [
149
+ {
150
+ "internalType": "bytes4",
151
+ "name": "",
152
+ "type": "bytes4"
153
+ }
154
+ ],
155
+ "stateMutability": "view",
156
+ "type": "function"
157
+ },
158
+ {
159
+ "inputs": [],
160
+ "name": "getFunctionSchemas",
161
+ "outputs": [
162
+ {
163
+ "components": [
164
+ {
165
+ "internalType": "string",
166
+ "name": "functionSignature",
167
+ "type": "string"
168
+ },
169
+ {
170
+ "internalType": "bytes4",
171
+ "name": "functionSelector",
172
+ "type": "bytes4"
173
+ },
174
+ {
175
+ "internalType": "bytes32",
176
+ "name": "operationType",
177
+ "type": "bytes32"
178
+ },
179
+ {
180
+ "internalType": "string",
181
+ "name": "operationName",
182
+ "type": "string"
183
+ },
184
+ {
185
+ "internalType": "uint16",
186
+ "name": "supportedActionsBitmap",
187
+ "type": "uint16"
188
+ },
189
+ {
190
+ "internalType": "bool",
191
+ "name": "enforceHandlerRelations",
192
+ "type": "bool"
193
+ },
194
+ {
195
+ "internalType": "bool",
196
+ "name": "isProtected",
197
+ "type": "bool"
198
+ },
199
+ {
200
+ "internalType": "bytes4[]",
201
+ "name": "handlerForSelectors",
202
+ "type": "bytes4[]"
203
+ }
204
+ ],
205
+ "internalType": "struct EngineBlox.FunctionSchema[]",
206
+ "name": "",
207
+ "type": "tuple[]"
208
+ }
209
+ ],
210
+ "stateMutability": "pure",
211
+ "type": "function"
212
+ },
213
+ {
214
+ "inputs": [],
215
+ "name": "getRolePermissions",
216
+ "outputs": [
217
+ {
218
+ "components": [
219
+ {
220
+ "internalType": "bytes32[]",
221
+ "name": "roleHashes",
222
+ "type": "bytes32[]"
223
+ },
224
+ {
225
+ "components": [
226
+ {
227
+ "internalType": "bytes4",
228
+ "name": "functionSelector",
229
+ "type": "bytes4"
230
+ },
231
+ {
232
+ "internalType": "uint16",
233
+ "name": "grantedActionsBitmap",
234
+ "type": "uint16"
235
+ },
236
+ {
237
+ "internalType": "bytes4[]",
238
+ "name": "handlerForSelectors",
239
+ "type": "bytes4[]"
240
+ }
241
+ ],
242
+ "internalType": "struct EngineBlox.FunctionPermission[]",
243
+ "name": "functionPermissions",
244
+ "type": "tuple[]"
245
+ }
246
+ ],
247
+ "internalType": "struct IDefinition.RolePermission",
248
+ "name": "",
249
+ "type": "tuple"
250
+ }
251
+ ],
252
+ "stateMutability": "pure",
253
+ "type": "function"
254
+ },
255
+ {
256
+ "inputs": [
257
+ {
258
+ "internalType": "bytes4",
259
+ "name": "interfaceId",
260
+ "type": "bytes4"
261
+ }
262
+ ],
263
+ "name": "supportsInterface",
264
+ "outputs": [
265
+ {
266
+ "internalType": "bool",
267
+ "name": "",
268
+ "type": "bool"
269
+ }
270
+ ],
271
+ "stateMutability": "pure",
272
+ "type": "function"
273
+ }
274
+ ]
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":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAa,MAAM,MAAM,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D;;;GAGG;AACH,8BAAsB,gBAAiB,YAAW,iBAAiB;IAE/D,SAAS,CAAC,MAAM,EAAE,YAAY;IAC9B,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS;IAChD,SAAS,CAAC,eAAe,EAAE,OAAO;IAClC,SAAS,CAAC,KAAK,EAAE,KAAK;IACtB,SAAS,CAAC,GAAG,EAAE,GAAG;gBAJR,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,eAAe,EAAE,OAAO,EACxB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG;IAKpB;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAMtC;;OAEG;cACa,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAiH7B;;OAEG;cACa,mBAAmB,CAAC,CAAC,EACnC,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,GAAG,EAAO,GACf,OAAO,CAAC,CAAC,CAAC;IAoCP,kBAAkB,CACtB,eAAe,EAAE,OAAO,EACxB,eAAe,EAAE,GAAG,EACpB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,CAAC;IAWlB,qCAAqC,CACzC,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,GAAG,EAClB,iBAAiB,EAAE,GAAG,EACtB,eAAe,EAAE,GAAG,EACpB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,eAAe,CAAC;IAarB,0CAA0C,CAC9C,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,eAAe,CAAC;IAS3B,sGAAsG;IAChG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5E,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI/C,sBAAsB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM3C,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC;QACpC,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,GAAG,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IAUI,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D;;;;;;OAMG;IACG,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAIrD;;;;;OAKG;IACG,oBAAoB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIvD,wBAAwB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAIvD,iBAAiB,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjE,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAMhD,0BAA0B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAI5C,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAInC,qBAAqB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAIvC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAMrC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI3C;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;OAIG;IACG,QAAQ,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAMnD,iBAAiB,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D;;;OAGG;IACG,iCAAiC,IAAI,OAAO,CAAC,OAAO,CAAC;CAK5D;AAED,eAAe,gBAAgB,CAAC"}
@@ -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"}