@bloxchain/sdk 1.0.0-alpha.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +411 -376
- package/abi/AccountBlox.abi.json +1895 -1833
- package/abi/BaseStateMachine.abi.json +773 -822
- package/abi/CopyBlox.abi.json +1609 -0
- package/abi/EngineBlox.abi.json +562 -552
- package/abi/GuardController.abi.json +1597 -1609
- package/abi/GuardControllerDefinitions.abi.json +257 -120
- package/abi/IDefinition.abi.json +57 -47
- package/abi/RoleBlox.abi.json +2993 -2982
- package/abi/RuntimeRBAC.abi.json +841 -842
- package/abi/RuntimeRBACDefinitions.abi.json +265 -99
- package/abi/SecureBlox.abi.json +2752 -2752
- package/abi/SecureOwnable.abi.json +1365 -1349
- package/abi/SecureOwnableDefinitions.abi.json +174 -164
- package/dist/abi/AccountBlox.abi.json +3978 -0
- package/dist/abi/BareBlox.abi.json +1378 -0
- package/dist/abi/BaseStateMachine.abi.json +1281 -1330
- package/dist/abi/CopyBlox.abi.json +1609 -0
- package/dist/abi/EngineBlox.abi.json +862 -0
- package/dist/abi/GuardController.abi.json +2325 -2337
- package/dist/abi/GuardControllerDefinitions.abi.json +416 -0
- package/dist/abi/IDefinition.abi.json +122 -112
- package/dist/abi/RoleBlox.abi.json +2994 -0
- package/dist/abi/RuntimeRBAC.abi.json +1629 -1630
- package/dist/abi/RuntimeRBACDefinitions.abi.json +386 -0
- package/dist/abi/SecureBlox.abi.json +2753 -0
- package/dist/abi/SecureOwnable.abi.json +2735 -2719
- package/dist/abi/SecureOwnableDefinitions.abi.json +421 -0
- package/{abi → dist/abi}/SimpleRWA20.abi.json +52 -74
- package/{abi → dist/abi}/SimpleRWA20Definitions.abi.json +5 -0
- package/{abi → dist/abi}/SimpleVault.abi.json +54 -76
- package/{abi → dist/abi}/SimpleVaultDefinitions.abi.json +5 -0
- package/dist/abi.d.ts +11 -0
- package/dist/abi.d.ts.map +1 -0
- package/dist/abi.js +10 -0
- package/dist/abi.js.map +1 -0
- package/dist/contracts/core/BaseStateMachine.d.ts +7 -8
- package/dist/contracts/core/BaseStateMachine.d.ts.map +1 -1
- package/dist/contracts/core/BaseStateMachine.js +77 -42
- package/dist/contracts/core/BaseStateMachine.js.map +1 -1
- package/dist/contracts/core/GuardController.d.ts +21 -14
- package/dist/contracts/core/GuardController.d.ts.map +1 -1
- package/dist/contracts/core/GuardController.js +18 -20
- package/dist/contracts/core/GuardController.js.map +1 -1
- package/dist/contracts/core/RuntimeRBAC.d.ts +5 -18
- package/dist/contracts/core/RuntimeRBAC.d.ts.map +1 -1
- package/dist/contracts/core/RuntimeRBAC.js +4 -21
- package/dist/contracts/core/RuntimeRBAC.js.map +1 -1
- package/dist/contracts/core/SecureOwnable.d.ts +14 -16
- package/dist/contracts/core/SecureOwnable.d.ts.map +1 -1
- package/dist/contracts/core/SecureOwnable.js +21 -24
- package/dist/contracts/core/SecureOwnable.js.map +1 -1
- package/dist/index.d.ts +32 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -26
- package/dist/index.js.map +1 -1
- package/dist/interfaces/base.index.d.ts +10 -2
- package/dist/interfaces/base.index.d.ts.map +1 -1
- package/dist/interfaces/base.state.machine.index.d.ts +4 -6
- package/dist/interfaces/base.state.machine.index.d.ts.map +1 -1
- package/dist/interfaces/core.access.index.d.ts +4 -9
- package/dist/interfaces/core.access.index.d.ts.map +1 -1
- package/dist/interfaces/core.execution.index.d.ts +9 -12
- package/dist/interfaces/core.execution.index.d.ts.map +1 -1
- package/dist/interfaces/core.security.index.d.ts +4 -7
- package/dist/interfaces/core.security.index.d.ts.map +1 -1
- package/dist/interfaces/definition.index.d.ts +1 -1
- package/dist/interfaces/definition.index.d.ts.map +1 -1
- package/dist/interfaces/lib.index.d.ts +2 -2
- package/dist/interfaces/lib.index.d.ts.map +1 -1
- package/dist/lib/Definition.d.ts +2 -2
- package/dist/lib/Definition.d.ts.map +1 -1
- package/dist/lib/Definition.js +9 -2
- package/dist/lib/Definition.js.map +1 -1
- package/dist/lib/EngineBlox.d.ts +23 -48
- package/dist/lib/EngineBlox.d.ts.map +1 -1
- package/dist/lib/EngineBlox.js +61 -136
- package/dist/lib/EngineBlox.js.map +1 -1
- package/dist/lib/definitions/GuardControllerDefinitions.d.ts +30 -13
- package/dist/lib/definitions/GuardControllerDefinitions.d.ts.map +1 -1
- package/dist/lib/definitions/GuardControllerDefinitions.js +58 -27
- package/dist/lib/definitions/GuardControllerDefinitions.js.map +1 -1
- package/dist/lib/definitions/RuntimeRBACDefinitions.d.ts +44 -13
- package/dist/lib/definitions/RuntimeRBACDefinitions.d.ts.map +1 -1
- package/dist/lib/definitions/RuntimeRBACDefinitions.js +68 -32
- package/dist/lib/definitions/RuntimeRBACDefinitions.js.map +1 -1
- package/dist/lib/definitions/SecureOwnableDefinitions.d.ts +12 -7
- package/dist/lib/definitions/SecureOwnableDefinitions.d.ts.map +1 -1
- package/dist/lib/definitions/SecureOwnableDefinitions.js +25 -9
- package/dist/lib/definitions/SecureOwnableDefinitions.js.map +1 -1
- package/dist/lib/definitions/index.d.ts +7 -5
- package/dist/lib/definitions/index.d.ts.map +1 -1
- package/dist/lib/definitions/index.js +6 -5
- package/dist/lib/definitions/index.js.map +1 -1
- package/dist/types/base.state.machine.index.d.ts +4 -20
- package/dist/types/base.state.machine.index.d.ts.map +1 -1
- package/dist/types/base.state.machine.index.js +20 -40
- package/dist/types/base.state.machine.index.js.map +1 -1
- package/dist/types/core.access.index.d.ts +0 -16
- package/dist/types/core.access.index.d.ts.map +1 -1
- package/dist/types/core.access.index.js +2 -13
- package/dist/types/core.access.index.js.map +1 -1
- package/dist/types/core.execution.index.d.ts +9 -10
- package/dist/types/core.execution.index.d.ts.map +1 -1
- package/dist/types/core.execution.index.js +16 -13
- package/dist/types/core.execution.index.js.map +1 -1
- package/dist/types/core.security.index.d.ts +4 -6
- package/dist/types/core.security.index.d.ts.map +1 -1
- package/dist/types/core.security.index.js +23 -27
- package/dist/types/core.security.index.js.map +1 -1
- package/dist/types/definition.index.d.ts +8 -1
- package/dist/types/definition.index.d.ts.map +1 -1
- package/dist/types/definition.index.js.map +1 -1
- package/dist/types/lib.index.d.ts +7 -28
- package/dist/types/lib.index.d.ts.map +1 -1
- package/dist/types/lib.index.js +11 -34
- package/dist/types/lib.index.js.map +1 -1
- package/dist/types/meta-transaction.signatures.d.ts +10 -0
- package/dist/types/meta-transaction.signatures.d.ts.map +1 -0
- package/dist/types/meta-transaction.signatures.js +12 -0
- package/dist/types/meta-transaction.signatures.js.map +1 -0
- package/dist/types/meta-tx-signatures.d.ts +9 -0
- package/dist/types/meta-tx-signatures.d.ts.map +1 -0
- package/dist/types/meta-tx-signatures.js +11 -0
- package/dist/types/meta-tx-signatures.js.map +1 -0
- package/dist/utils/bitmap.d.ts +1 -1
- package/dist/utils/bitmap.d.ts.map +1 -1
- package/dist/utils/contract-errors.d.ts +125 -12
- package/dist/utils/contract-errors.d.ts.map +1 -1
- package/dist/utils/contract-errors.js +367 -104
- package/dist/utils/contract-errors.js.map +1 -1
- package/dist/utils/erc20/erc20Token.d.ts +1 -1
- package/dist/utils/erc20/erc20Token.d.ts.map +1 -1
- package/dist/utils/erc20/erc20Token.js +5 -1
- package/dist/utils/erc20/erc20Token.js.map +1 -1
- package/dist/utils/interface-ids.d.ts +5 -31
- package/dist/utils/interface-ids.d.ts.map +1 -1
- package/dist/utils/interface-ids.js +27 -88
- package/dist/utils/interface-ids.js.map +1 -1
- package/dist/utils/metaTx/metaTransaction.d.ts +110 -9
- package/dist/utils/metaTx/metaTransaction.d.ts.map +1 -1
- package/dist/utils/metaTx/metaTransaction.js +146 -26
- package/dist/utils/metaTx/metaTransaction.js.map +1 -1
- package/dist/utils/validations.d.ts +1 -1
- package/dist/utils/validations.d.ts.map +1 -1
- package/dist/utils/validations.js +12 -12
- package/dist/utils/validations.js.map +1 -1
- package/dist/utils/viem-error-handler.d.ts +1 -1
- package/dist/utils/viem-error-handler.d.ts.map +1 -1
- package/dist/utils/viem-error-handler.js +1 -1
- package/dist/utils/viem-error-handler.js.map +1 -1
- package/package.json +77 -71
- package/dist/contracts/BaseStateMachine.d.ts +0 -92
- package/dist/contracts/BaseStateMachine.d.ts.map +0 -1
- package/dist/contracts/BaseStateMachine.js +0 -263
- package/dist/contracts/BaseStateMachine.js.map +0 -1
- package/dist/contracts/GuardController.d.ts +0 -120
- package/dist/contracts/GuardController.d.ts.map +0 -1
- package/dist/contracts/GuardController.js +0 -150
- package/dist/contracts/GuardController.js.map +0 -1
- package/dist/contracts/RuntimeRBAC.d.ts +0 -40
- package/dist/contracts/RuntimeRBAC.d.ts.map +0 -1
- package/dist/contracts/RuntimeRBAC.js +0 -50
- package/dist/contracts/RuntimeRBAC.js.map +0 -1
- package/dist/contracts/SecureOwnable.d.ts +0 -41
- package/dist/contracts/SecureOwnable.d.ts.map +0 -1
- package/dist/contracts/SecureOwnable.js +0 -81
- package/dist/contracts/SecureOwnable.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Address, PublicClient, WalletClient, Chain } from 'viem';
|
|
2
|
-
import { TransactionOptions, TransactionResult } from '../../interfaces/base.index';
|
|
2
|
+
import { TransactionOptions, TransactionResult } from '../../interfaces/base.index.js';
|
|
3
3
|
/**
|
|
4
4
|
* @title ERC20TokenContract
|
|
5
5
|
* @notice A contract for interacting with ERC20 tokens
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20Token.d.ts","sourceRoot":"","sources":["../../../utils/erc20/erc20Token.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,KAAK,EAEN,MAAM,MAAM,CAAC;AAMd,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"erc20Token.d.ts","sourceRoot":"","sources":["../../../utils/erc20/erc20Token.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,KAAK,EAEN,MAAM,MAAM,CAAC;AAMd,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEvF;;;;GAIG;AACH,cAAM,UAAU;IACd,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;IAC/B,SAAS,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACtC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAEvB;;;;;;OAMG;gBAED,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,YAAY,EAAE,OAAO,EACrB,KAAK,EAAE,KAAK;IAQd;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlD;;;;;;OAMG;IACG,QAAQ,CACZ,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAiB7B;;;;;;;OAOG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAiB7B;;;;;;;;OAQG;IACG,YAAY,CAChB,IAAI,EAAE,OAAO,EACb,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAiB7B;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IASpC;;;;;OAKG;IACG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlE;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ/B;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IASjC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAQ9B;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import ERC20ABI from './ERC20Token.abi.json';
|
|
1
|
+
import ERC20ABI from './ERC20Token.abi.json' with { type: 'json' };
|
|
2
2
|
// Parse and type the ABI
|
|
3
3
|
const ERC20TokenABI = ERC20ABI;
|
|
4
4
|
/**
|
|
@@ -7,6 +7,10 @@ const ERC20TokenABI = ERC20ABI;
|
|
|
7
7
|
* @dev Implements standard ERC20 token functionality according to EIP-20
|
|
8
8
|
*/
|
|
9
9
|
class ERC20Token {
|
|
10
|
+
client;
|
|
11
|
+
walletClient;
|
|
12
|
+
tokenAddress;
|
|
13
|
+
chain;
|
|
10
14
|
/**
|
|
11
15
|
* @notice Creates a new ERC20TokenContract instance
|
|
12
16
|
* @param client The viem PublicClient instance for blockchain interactions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20Token.js","sourceRoot":"","sources":["../../../utils/erc20/erc20Token.tsx"],"names":[],"mappings":"AAOA,OAAO,QAAQ,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"erc20Token.js","sourceRoot":"","sources":["../../../utils/erc20/erc20Token.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +1,30 @@
|
|
|
1
1
|
import { Hex } from 'viem';
|
|
2
2
|
/**
|
|
3
|
-
* Interface IDs for component detection
|
|
4
|
-
* These match the interface IDs calculated by Solidity's type(Interface).interfaceId
|
|
5
|
-
*
|
|
6
|
-
* NOTE: These values are calculated from function signatures and should match
|
|
7
|
-
* the values returned by Solidity's type(Interface).interfaceId.
|
|
8
|
-
* If there are discrepancies, verify against the actual Solidity contract interfaces.
|
|
3
|
+
* Interface IDs for component detection (aligned with current `I*` interfaces under contracts/core).
|
|
9
4
|
*/
|
|
10
5
|
export declare const INTERFACE_IDS: {
|
|
11
6
|
readonly IBaseStateMachine: `0x${string}`;
|
|
12
7
|
readonly ISecureOwnable: `0x${string}`;
|
|
8
|
+
/** Batch-only RBAC (`IRuntimeRBAC.sol`). */
|
|
13
9
|
readonly IRuntimeRBAC: `0x${string}`;
|
|
14
10
|
readonly IGuardController: `0x${string}`;
|
|
15
11
|
};
|
|
16
|
-
/**
|
|
17
|
-
* Helper function to check if a contract supports a specific interface
|
|
18
|
-
* @param contract The contract instance (must have supportsInterface method)
|
|
19
|
-
* @param interfaceId The interface ID to check
|
|
20
|
-
* @returns Promise<boolean> indicating if the interface is supported
|
|
21
|
-
*/
|
|
22
12
|
export declare function supportsInterface(contract: {
|
|
23
13
|
supportsInterface: (interfaceId: Hex) => Promise<boolean>;
|
|
24
14
|
}, interfaceId: Hex): Promise<boolean>;
|
|
25
|
-
/**
|
|
26
|
-
* Helper functions to check for specific component interfaces
|
|
27
|
-
*/
|
|
28
15
|
export declare const ComponentDetection: {
|
|
29
|
-
/**
|
|
30
|
-
* Check if contract supports IBaseStateMachine interface
|
|
31
|
-
*/
|
|
32
16
|
isBaseStateMachine(contract: {
|
|
33
17
|
supportsInterface: (interfaceId: Hex) => Promise<boolean>;
|
|
34
18
|
}): Promise<boolean>;
|
|
35
|
-
/**
|
|
36
|
-
* Check if contract supports ISecureOwnable interface
|
|
37
|
-
*/
|
|
38
19
|
isSecureOwnable(contract: {
|
|
39
20
|
supportsInterface: (interfaceId: Hex) => Promise<boolean>;
|
|
40
21
|
}): Promise<boolean>;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
hasSecureOwnableFeatures(contract: any): Promise<boolean>;
|
|
45
|
-
/**
|
|
46
|
-
* Check if contract supports IRuntimeRBAC interface
|
|
47
|
-
*/
|
|
22
|
+
hasSecureOwnableFeatures(contract: {
|
|
23
|
+
transferOwnershipRequest?: unknown;
|
|
24
|
+
}): Promise<boolean>;
|
|
48
25
|
isRuntimeRBAC(contract: {
|
|
49
26
|
supportsInterface: (interfaceId: Hex) => Promise<boolean>;
|
|
50
27
|
}): Promise<boolean>;
|
|
51
|
-
/**
|
|
52
|
-
* Check if contract supports IGuardController interface
|
|
53
|
-
*/
|
|
54
28
|
isGuardController(contract: {
|
|
55
29
|
supportsInterface: (interfaceId: Hex) => Promise<boolean>;
|
|
56
30
|
}): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface-ids.d.ts","sourceRoot":"","sources":["../../utils/interface-ids.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAsB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"interface-ids.d.ts","sourceRoot":"","sources":["../../utils/interface-ids.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAsB,MAAM,MAAM,CAAC;AAoB/C;;GAEG;AACH,eAAO,MAAM,aAAa;;;IAkCxB,4CAA4C;;;CAepC,CAAC;AAEX,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE;IAAE,iBAAiB,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,EACvE,WAAW,EAAE,GAAG,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,eAAO,MAAM,kBAAkB;iCACM;QACjC,iBAAiB,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC3D,GAAG,OAAO,CAAC,OAAO,CAAC;8BAIY;QAC9B,iBAAiB,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC3D,GAAG,OAAO,CAAC,OAAO,CAAC;uCAIqB;QAAE,wBAAwB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;4BAIpE;QAC5B,iBAAiB,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC3D,GAAG,OAAO,CAAC,OAAO,CAAC;gCAIc;QAChC,iBAAiB,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC3D,GAAG,OAAO,CAAC,OAAO,CAAC;CAGrB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { keccak256, toBytes } from 'viem';
|
|
2
|
+
import { ENGINE_BLOX_META_TX_PARAMS, metaTxHandlerSignature } from '../types/meta-tx-signatures.js';
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
4
|
+
* ERC-165 interface ID: XOR of all function selectors in an interface.
|
|
5
|
+
* Must match Solidity `type(Interface).interfaceId`.
|
|
5
6
|
*/
|
|
6
7
|
function calculateInterfaceId(signatures) {
|
|
7
8
|
if (signatures.length === 0) {
|
|
@@ -9,141 +10,79 @@ function calculateInterfaceId(signatures) {
|
|
|
9
10
|
}
|
|
10
11
|
let interfaceId = 0n;
|
|
11
12
|
for (const sig of signatures) {
|
|
12
|
-
|
|
13
|
-
interfaceId = interfaceId ^ BigInt(selector);
|
|
13
|
+
interfaceId ^= BigInt(keccak256(toBytes(sig)).slice(0, 10));
|
|
14
14
|
}
|
|
15
|
-
// Format as 4-byte hex string
|
|
16
15
|
return `0x${interfaceId.toString(16).padStart(8, '0')}`;
|
|
17
16
|
}
|
|
18
17
|
/**
|
|
19
|
-
* Interface IDs for component detection
|
|
20
|
-
* These match the interface IDs calculated by Solidity's type(Interface).interfaceId
|
|
21
|
-
*
|
|
22
|
-
* NOTE: These values are calculated from function signatures and should match
|
|
23
|
-
* the values returned by Solidity's type(Interface).interfaceId.
|
|
24
|
-
* If there are discrepancies, verify against the actual Solidity contract interfaces.
|
|
18
|
+
* Interface IDs for component detection (aligned with current `I*` interfaces under contracts/core).
|
|
25
19
|
*/
|
|
26
|
-
// IBaseStateMachine interface ID
|
|
27
|
-
// Calculated from all functions in IBaseStateMachine interface
|
|
28
20
|
export const INTERFACE_IDS = {
|
|
29
|
-
// IBaseStateMachine - XOR of all function selectors
|
|
30
21
|
IBaseStateMachine: calculateInterfaceId([
|
|
31
22
|
'createMetaTxParams(address,bytes4,uint8,uint256,uint256,address)',
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
`generateUnsignedMetaTransactionForNew(address,address,uint256,uint256,bytes32,bytes4,bytes,${ENGINE_BLOX_META_TX_PARAMS})`,
|
|
24
|
+
`generateUnsignedMetaTransactionForExisting(uint256,${ENGINE_BLOX_META_TX_PARAMS})`,
|
|
34
25
|
'getTransactionHistory(uint256,uint256)',
|
|
35
26
|
'getTransaction(uint256)',
|
|
36
27
|
'getPendingTransactions()',
|
|
37
28
|
'hasRole(bytes32,address)',
|
|
38
|
-
'
|
|
29
|
+
'getFunctionSchema(bytes4)',
|
|
39
30
|
'getActiveRolePermissions(bytes32)',
|
|
40
31
|
'getSignerNonce(address)',
|
|
41
32
|
'getSupportedOperationTypes()',
|
|
42
33
|
'getSupportedRoles()',
|
|
43
34
|
'getSupportedFunctions()',
|
|
44
35
|
'getTimeLockPeriodSec()',
|
|
45
|
-
'initialized()'
|
|
36
|
+
'initialized()',
|
|
46
37
|
]),
|
|
47
|
-
// ISecureOwnable - XOR of all function selectors in ISecureOwnable interface
|
|
48
38
|
ISecureOwnable: calculateInterfaceId([
|
|
49
39
|
'transferOwnershipRequest()',
|
|
50
40
|
'transferOwnershipDelayedApproval(uint256)',
|
|
51
|
-
'transferOwnershipApprovalWithMetaTx
|
|
41
|
+
metaTxHandlerSignature('transferOwnershipApprovalWithMetaTx'),
|
|
52
42
|
'transferOwnershipCancellation(uint256)',
|
|
53
|
-
'transferOwnershipCancellationWithMetaTx
|
|
54
|
-
'updateBroadcasterRequest(address,
|
|
43
|
+
metaTxHandlerSignature('transferOwnershipCancellationWithMetaTx'),
|
|
44
|
+
'updateBroadcasterRequest(address,address)',
|
|
55
45
|
'updateBroadcasterDelayedApproval(uint256)',
|
|
56
|
-
'updateBroadcasterApprovalWithMetaTx
|
|
46
|
+
metaTxHandlerSignature('updateBroadcasterApprovalWithMetaTx'),
|
|
57
47
|
'updateBroadcasterCancellation(uint256)',
|
|
58
|
-
'updateBroadcasterCancellationWithMetaTx
|
|
59
|
-
'
|
|
60
|
-
'
|
|
61
|
-
'updateTimeLockExecutionParams(uint256)',
|
|
62
|
-
'updateTimeLockRequestAndApprove(((uint256,uint256,uint8,(address,address,uint256,uint256,bytes32,bytes4,bytes),bytes32,bytes,(address,uint256,address,uint256)),(uint256,uint256,address,bytes4,uint8,uint256,uint256,address),bytes32,bytes,bytes))'
|
|
48
|
+
metaTxHandlerSignature('updateBroadcasterCancellationWithMetaTx'),
|
|
49
|
+
metaTxHandlerSignature('updateRecoveryRequestAndApprove'),
|
|
50
|
+
metaTxHandlerSignature('updateTimeLockRequestAndApprove'),
|
|
63
51
|
]),
|
|
64
|
-
|
|
52
|
+
/** Batch-only RBAC (`IRuntimeRBAC.sol`). */
|
|
65
53
|
IRuntimeRBAC: calculateInterfaceId([
|
|
66
|
-
'
|
|
67
|
-
'updateRole(bytes32,string,uint256)',
|
|
68
|
-
'deleteRole(bytes32)',
|
|
69
|
-
'addWalletToRole(bytes32,address)',
|
|
70
|
-
'revokeWallet(bytes32,address)',
|
|
71
|
-
'replaceWalletInRole(bytes32,address,address)',
|
|
72
|
-
'addFunctionPermissionToRole(bytes32,bytes4,uint8)',
|
|
73
|
-
'removeFunctionPermissionFromRole(bytes32,bytes4)',
|
|
74
|
-
'getRuntimeRoles()',
|
|
75
|
-
'getAllRoles()',
|
|
76
|
-
'getRoleInfo(bytes32)',
|
|
77
|
-
'hasRole(bytes32,address)',
|
|
78
|
-
'getWalletsInRole(bytes32)',
|
|
79
|
-
'getRolePermissions(bytes32)',
|
|
80
|
-
'isRoleProtected(bytes32)',
|
|
81
|
-
'getRoleWalletCount(bytes32)',
|
|
82
|
-
'isRoleAtCapacity(bytes32)'
|
|
54
|
+
metaTxHandlerSignature('roleConfigBatchRequestAndApprove'),
|
|
83
55
|
]),
|
|
84
|
-
// IGuardController - XOR of all function selectors in IGuardController interface
|
|
85
56
|
IGuardController: calculateInterfaceId([
|
|
86
57
|
'initialize(address,address,address,uint256,address)',
|
|
87
58
|
'executeWithTimeLock(address,uint256,bytes4,bytes,uint256,bytes32)',
|
|
88
|
-
'
|
|
89
|
-
'
|
|
90
|
-
'
|
|
91
|
-
'
|
|
92
|
-
'
|
|
93
|
-
|
|
59
|
+
'executeWithPayment(address,uint256,bytes4,bytes,uint256,bytes32,(address,uint256,address,uint256))',
|
|
60
|
+
'approveTimeLockExecution(uint256)',
|
|
61
|
+
'cancelTimeLockExecution(uint256)',
|
|
62
|
+
metaTxHandlerSignature('approveTimeLockExecutionWithMetaTx'),
|
|
63
|
+
metaTxHandlerSignature('cancelTimeLockExecutionWithMetaTx'),
|
|
64
|
+
metaTxHandlerSignature('requestAndApproveExecution'),
|
|
65
|
+
]),
|
|
94
66
|
};
|
|
95
|
-
/**
|
|
96
|
-
* Helper function to check if a contract supports a specific interface
|
|
97
|
-
* @param contract The contract instance (must have supportsInterface method)
|
|
98
|
-
* @param interfaceId The interface ID to check
|
|
99
|
-
* @returns Promise<boolean> indicating if the interface is supported
|
|
100
|
-
*/
|
|
101
67
|
export async function supportsInterface(contract, interfaceId) {
|
|
102
68
|
return contract.supportsInterface(interfaceId);
|
|
103
69
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Helper functions to check for specific component interfaces
|
|
106
|
-
*/
|
|
107
70
|
export const ComponentDetection = {
|
|
108
|
-
/**
|
|
109
|
-
* Check if contract supports IBaseStateMachine interface
|
|
110
|
-
*/
|
|
111
71
|
async isBaseStateMachine(contract) {
|
|
112
72
|
return supportsInterface(contract, INTERFACE_IDS.IBaseStateMachine);
|
|
113
73
|
},
|
|
114
|
-
/**
|
|
115
|
-
* Check if contract supports ISecureOwnable interface
|
|
116
|
-
*/
|
|
117
74
|
async isSecureOwnable(contract) {
|
|
118
75
|
return supportsInterface(contract, INTERFACE_IDS.ISecureOwnable);
|
|
119
76
|
},
|
|
120
|
-
/**
|
|
121
|
-
* Check if contract has SecureOwnable features by checking for specific functions
|
|
122
|
-
*/
|
|
123
77
|
async hasSecureOwnableFeatures(contract) {
|
|
124
|
-
|
|
125
|
-
// Check if transferOwnershipRequest exists
|
|
126
|
-
if (typeof contract.transferOwnershipRequest === 'function') {
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
78
|
+
return typeof contract.transferOwnershipRequest === 'function';
|
|
134
79
|
},
|
|
135
|
-
/**
|
|
136
|
-
* Check if contract supports IRuntimeRBAC interface
|
|
137
|
-
*/
|
|
138
80
|
async isRuntimeRBAC(contract) {
|
|
139
81
|
return supportsInterface(contract, INTERFACE_IDS.IRuntimeRBAC);
|
|
140
82
|
},
|
|
141
|
-
/**
|
|
142
|
-
* Check if contract supports IGuardController interface
|
|
143
|
-
*/
|
|
144
83
|
async isGuardController(contract) {
|
|
145
84
|
return supportsInterface(contract, INTERFACE_IDS.IGuardController);
|
|
146
|
-
}
|
|
85
|
+
},
|
|
147
86
|
};
|
|
148
87
|
export default INTERFACE_IDS;
|
|
149
88
|
//# sourceMappingURL=interface-ids.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface-ids.js","sourceRoot":"","sources":["../../utils/interface-ids.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"interface-ids.js","sourceRoot":"","sources":["../../utils/interface-ids.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,102 @@
|
|
|
1
1
|
import { Address, Hex, PublicClient, WalletClient, Chain } from 'viem';
|
|
2
|
-
import { MetaTransaction, MetaTxParams, TxParams } from '../../interfaces/lib.index';
|
|
3
|
-
import { TxAction } from '../../types/lib.index';
|
|
2
|
+
import { MetaTransaction, MetaTxParams, TxParams } from '../../interfaces/lib.index.js';
|
|
3
|
+
import { TxAction } from '../../types/lib.index.js';
|
|
4
|
+
/**
|
|
5
|
+
* EIP-712 signing uses a selective MetaTxRecord (txId, params, payment only) per EngineBlox.sol.
|
|
6
|
+
* That is separate from ABI handler signatures in `types/meta-tx-signatures.ts` (full MetaTransaction
|
|
7
|
+
* tuple for `bytes4` selectors such as `roleConfigBatchRequestAndApprove(...)`).
|
|
8
|
+
*/
|
|
9
|
+
/** EIP-712 domain and types matching EngineBlox (selective MetaTxRecord: txId, params, payment only) */
|
|
10
|
+
export declare const META_TX_DOMAIN: {
|
|
11
|
+
name: "Bloxchain";
|
|
12
|
+
version: string;
|
|
13
|
+
chainId: number;
|
|
14
|
+
verifyingContract: Address;
|
|
15
|
+
};
|
|
16
|
+
export declare const META_TX_TYPES: {
|
|
17
|
+
readonly MetaTransaction: readonly [{
|
|
18
|
+
readonly name: "txRecord";
|
|
19
|
+
readonly type: "MetaTxRecord";
|
|
20
|
+
}, {
|
|
21
|
+
readonly name: "params";
|
|
22
|
+
readonly type: "MetaTxParams";
|
|
23
|
+
}, {
|
|
24
|
+
readonly name: "data";
|
|
25
|
+
readonly type: "bytes";
|
|
26
|
+
}];
|
|
27
|
+
readonly MetaTxRecord: readonly [{
|
|
28
|
+
readonly name: "txId";
|
|
29
|
+
readonly type: "uint256";
|
|
30
|
+
}, {
|
|
31
|
+
readonly name: "params";
|
|
32
|
+
readonly type: "TxParams";
|
|
33
|
+
}, {
|
|
34
|
+
readonly name: "payment";
|
|
35
|
+
readonly type: "PaymentDetails";
|
|
36
|
+
}];
|
|
37
|
+
readonly TxParams: readonly [{
|
|
38
|
+
readonly name: "requester";
|
|
39
|
+
readonly type: "address";
|
|
40
|
+
}, {
|
|
41
|
+
readonly name: "target";
|
|
42
|
+
readonly type: "address";
|
|
43
|
+
}, {
|
|
44
|
+
readonly name: "value";
|
|
45
|
+
readonly type: "uint256";
|
|
46
|
+
}, {
|
|
47
|
+
readonly name: "gasLimit";
|
|
48
|
+
readonly type: "uint256";
|
|
49
|
+
}, {
|
|
50
|
+
readonly name: "operationType";
|
|
51
|
+
readonly type: "bytes32";
|
|
52
|
+
}, {
|
|
53
|
+
readonly name: "executionSelector";
|
|
54
|
+
readonly type: "bytes4";
|
|
55
|
+
}, {
|
|
56
|
+
readonly name: "executionParams";
|
|
57
|
+
readonly type: "bytes";
|
|
58
|
+
}];
|
|
59
|
+
readonly MetaTxParams: readonly [{
|
|
60
|
+
readonly name: "chainId";
|
|
61
|
+
readonly type: "uint256";
|
|
62
|
+
}, {
|
|
63
|
+
readonly name: "nonce";
|
|
64
|
+
readonly type: "uint256";
|
|
65
|
+
}, {
|
|
66
|
+
readonly name: "handlerContract";
|
|
67
|
+
readonly type: "address";
|
|
68
|
+
}, {
|
|
69
|
+
readonly name: "handlerSelector";
|
|
70
|
+
readonly type: "bytes4";
|
|
71
|
+
}, {
|
|
72
|
+
readonly name: "action";
|
|
73
|
+
readonly type: "uint8";
|
|
74
|
+
}, {
|
|
75
|
+
readonly name: "deadline";
|
|
76
|
+
readonly type: "uint256";
|
|
77
|
+
}, {
|
|
78
|
+
readonly name: "maxGasPrice";
|
|
79
|
+
readonly type: "uint256";
|
|
80
|
+
}, {
|
|
81
|
+
readonly name: "signer";
|
|
82
|
+
readonly type: "address";
|
|
83
|
+
}];
|
|
84
|
+
readonly PaymentDetails: readonly [{
|
|
85
|
+
readonly name: "recipient";
|
|
86
|
+
readonly type: "address";
|
|
87
|
+
}, {
|
|
88
|
+
readonly name: "nativeTokenAmount";
|
|
89
|
+
readonly type: "uint256";
|
|
90
|
+
}, {
|
|
91
|
+
readonly name: "erc20TokenAddress";
|
|
92
|
+
readonly type: "address";
|
|
93
|
+
}, {
|
|
94
|
+
readonly name: "erc20TokenAmount";
|
|
95
|
+
readonly type: "uint256";
|
|
96
|
+
}];
|
|
97
|
+
};
|
|
98
|
+
/** EIP-712 message shape for MetaTransaction (for typed-data signing) */
|
|
99
|
+
export declare function buildTypedDataMessage(metaTx: MetaTransaction): Record<string, unknown>;
|
|
4
100
|
/**
|
|
5
101
|
* @title MetaTransactionSigner
|
|
6
102
|
* @dev Standardized utility for creating and signing meta-transactions
|
|
@@ -45,8 +141,16 @@ export declare class MetaTransactionSigner {
|
|
|
45
141
|
*/
|
|
46
142
|
createUnsignedMetaTransactionForExisting(txId: bigint, metaTxParams: MetaTxParams): Promise<MetaTransaction>;
|
|
47
143
|
/**
|
|
48
|
-
* @dev Signs an unsigned meta-transaction using
|
|
144
|
+
* @dev Signs an unsigned meta-transaction using a walletClient via EIP-712 typed data (eth_signTypedData_v4).
|
|
145
|
+
* Uses the canonical EIP-712 domain + types so the wallet-computed digest matches EngineBlox.generateMessageHash.
|
|
49
146
|
* @param unsignedMetaTx Unsigned meta-transaction
|
|
147
|
+
* @returns Complete signed meta-transaction
|
|
148
|
+
*/
|
|
149
|
+
signMetaTransactionWithWallet(unsignedMetaTx: MetaTransaction): Promise<MetaTransaction>;
|
|
150
|
+
/**
|
|
151
|
+
* @dev Signs an unsigned meta-transaction using private key (standard EIP-712 digest; no personal_sign prefix).
|
|
152
|
+
* Uses the contract's message hash as the digest, so we sign the digest returned by the contract directly.
|
|
153
|
+
* @param unsignedMetaTx Unsigned meta-transaction (message = EIP-712 digest from contract)
|
|
50
154
|
* @param signerAddress Address of the signer
|
|
51
155
|
* @param privateKey Private key for signing (required for remote Ganache)
|
|
52
156
|
* @returns Complete signed meta-transaction
|
|
@@ -92,10 +196,7 @@ export declare class MetaTransactionSigner {
|
|
|
92
196
|
*/
|
|
93
197
|
private generateUnsignedMetaTransactionForExisting;
|
|
94
198
|
/**
|
|
95
|
-
* @dev Verifies a signature against
|
|
96
|
-
* @param messageHash The message hash
|
|
97
|
-
* @param signature The signature to verify
|
|
98
|
-
* @param expectedSigner The expected signer address
|
|
199
|
+
* @dev Verifies a signature against the EIP-712 message hash and expected signer (contract uses raw digest recovery).
|
|
99
200
|
*/
|
|
100
201
|
private verifySignature;
|
|
101
202
|
/**
|
|
@@ -111,8 +212,8 @@ export declare class MetaTransactionSigner {
|
|
|
111
212
|
export declare class MetaTransactionBuilder {
|
|
112
213
|
/**
|
|
113
214
|
* @dev Creates meta-transaction parameters
|
|
114
|
-
* @param handlerContract
|
|
115
|
-
* @param handlerSelector
|
|
215
|
+
* @param handlerContract Verifying account address (must match EIP-712 `verifyingContract` / `address(this)` on verify)
|
|
216
|
+
* @param handlerSelector Selector of the **exact** external function that will submit this meta-tx (must equal on-chain `msg.sig`)
|
|
116
217
|
* @param action Transaction action
|
|
117
218
|
* @param deadline Deadline timestamp
|
|
118
219
|
* @param maxGasPrice Maximum gas price
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaTransaction.d.ts","sourceRoot":"","sources":["../../../utils/metaTx/metaTransaction.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,GAAG,EACH,YAAY,EACZ,YAAY,EACZ,KAAK,EACN,MAAM,MAAM,CAAC;AACd,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,QAAQ,
|
|
1
|
+
{"version":3,"file":"metaTransaction.d.ts","sourceRoot":"","sources":["../../../utils/metaTx/metaTransaction.tsx"],"names":[],"mappings":"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"}
|