SaltGenerator
Unified salt generation for all CapSign contracts
Provides standardized salt calculation methods for consistent address prediction
Functions
generateWalletSalt
Generate salt for smart wallet deployment
function generateWalletSalt(bytes[] memory owners, string memory walletType, uint256 nonce, address deployer)
internal
pure
returns (bytes32 salt);
Parameters
owners
bytes[]
Array of owner public keys/addresses in bytes format
walletType
string
Type of wallet ("individual", "entity", "custodial", "multisig")
nonce
uint256
Deployment nonce for uniqueness
deployer
address
Address of the deployer (optional, use address(0) for deterministic)
Returns
salt
bytes32
Deterministic salt for CREATE2
generateIAMSalt
Generate salt for IAM deployment
function generateIAMSalt(address issuer, string memory issuerName, string memory templateName, uint256 nonce)
internal
pure
returns (bytes32 salt);
Parameters
issuer
address
Address of the issuer/entity
issuerName
string
Name of the issuer entity
templateName
string
Template name (optional)
nonce
uint256
Deployment nonce
Returns
salt
bytes32
Deterministic salt for CREATE2
generateGovernanceSalt
Generate salt for governance deployment
function generateGovernanceSalt(address creator, string memory governanceType, string memory name, uint256 nonce)
internal
pure
returns (bytes32 salt);
Parameters
creator
address
Address of the creator
governanceType
string
Type of governance
name
string
Governance name
nonce
uint256
Deployment nonce
Returns
salt
bytes32
Deterministic salt for CREATE2
generateAssetSalt
Generate salt for asset/token deployment
function generateAssetSalt(address issuer, string memory tokenSymbol, string memory tokenName, uint256 nonce)
internal
pure
returns (bytes32 salt);
Parameters
issuer
address
Address of the issuer
tokenSymbol
string
Token symbol
tokenName
string
Token name
nonce
uint256
Deployment nonce
Returns
salt
bytes32
Deterministic salt for CREATE2
generateLedgerSalt
Generate salt for ledger deployment
function generateLedgerSalt(address creator, string memory currencyCode, uint8 decimals, uint256 nonce)
internal
pure
returns (bytes32 salt);
Parameters
creator
address
Address of the creator
currencyCode
string
Currency code (e.g., "USD", "EUR")
decimals
uint8
Token decimals
nonce
uint256
Deployment nonce
Returns
salt
bytes32
Deterministic salt for CREATE2
generateAASalt
Generate salt for Account Abstraction compatibility
Used by toCapSignSmartAccount for interface integration
function generateAASalt(bytes[] memory ownersBytes, uint256 nonce) internal pure returns (bytes32 salt);
Parameters
ownersBytes
bytes[]
Packed owners bytes
nonce
uint256
Deployment nonce
Returns
salt
bytes32
Deterministic salt for CREATE2
generateTestWalletSalt
Generate salt for test deployments with custom suffix
Used in tests to ensure unique deployments
function generateTestWalletSalt(
bytes[] memory owners,
string memory walletType,
uint256 nonce,
address deployer,
string memory customSuffix
) internal pure returns (bytes32 salt);
Parameters
owners
bytes[]
Array of owner public keys/addresses in bytes format
walletType
string
Type of wallet
nonce
uint256
Deployment nonce
deployer
address
Address of the deployer
customSuffix
string
Custom suffix for test uniqueness
Returns
salt
bytes32
Deterministic salt for CREATE2
Last updated
Was this helpful?