Skip to content
LogoLogo

IHubCoreFactory

Git Source

Inherits: IBridgeAdapterFactory

Functions

isPreDepositVault

Address => Whether this is a PreDepositVault instance deployed by this factory.

function isPreDepositVault(address preDepositVault) external view returns (bool);

Parameters

NameTypeDescription
preDepositVaultaddress

Returns

NameTypeDescription
<none>bool

isMachine

Address => Whether this is a Machine instance deployed by this factory.

function isMachine(address machine) external view returns (bool);

Parameters

NameTypeDescription
machineaddress

Returns

NameTypeDescription
<none>bool

createPreDepositVault

Deploys a new PreDepositVault instance.

function createPreDepositVault(
        IPreDepositVault.PreDepositVaultInitParams calldata params,
        address depositToken,
        address accountingToken,
        string memory tokenName,
        string memory tokenSymbol,
        bool setupAMFunctionRoles
    ) external returns (address preDepositVault);

Parameters

NameTypeDescription
paramsIPreDepositVault.PreDepositVaultInitParamsThe initialization parameters.
depositTokenaddressThe address of the deposit token.
accountingTokenaddressThe address of the accounting token.
tokenNamestringThe name of the share token.
tokenSymbolstringThe symbol of the share token.
setupAMFunctionRolesboolWhether to set roles for restricted functions on the deployed instance.

Returns

NameTypeDescription
preDepositVaultaddressThe address of the deployed PreDepositVault instance.

createMachineFromPreDeposit

Deploys a new Machine instance and migrates an existing PreDepositVault instance to it.

function createMachineFromPreDeposit(
        IMachine.MachineInitParams calldata mParams,
        ICaliber.CaliberInitParams calldata cParams,
        IMakinaGovernable.MakinaGovernableInitParams calldata mgParams,
        ISpokeSnapshotConsumer.SpokeSnapshotConsumerInitParams calldata sscParams,
        BridgeAdapterInitParams[] calldata baParams,
        address preDepositVault,
        bytes32 salt,
        bool setupAMFunctionRoles
    ) external returns (address machine);

Parameters

NameTypeDescription
mParamsIMachine.MachineInitParamsThe machine initialization parameters.
cParamsICaliber.CaliberInitParamsThe caliber initialization parameters.
mgParamsIMakinaGovernable.MakinaGovernableInitParamsThe makina governable initialization parameters.
sscParamsISpokeSnapshotConsumer.SpokeSnapshotConsumerInitParamsThe spoke snapshot consumer initialization parameters.
baParamsBridgeAdapterInitParams[]The list of bridge adapter initialization parameters and controller configuration.
preDepositVaultaddressThe address of the PreDepositVault instance to migrate.
saltbytes32The salt used to deploy the hub caliber deterministically.
setupAMFunctionRolesboolWhether to set roles for restricted functions on the deployed instance.

Returns

NameTypeDescription
machineaddressThe address of the deployed Machine instance.

createMachine

Deploys a new Machine instance.

function createMachine(
        IMachine.MachineInitParams calldata mParams,
        ICaliber.CaliberInitParams calldata cParams,
        IMakinaGovernable.MakinaGovernableInitParams calldata mgParams,
        ISpokeSnapshotConsumer.SpokeSnapshotConsumerInitParams calldata sscParams,
        BridgeAdapterInitParams[] calldata baParams,
        address accountingToken,
        string memory tokenName,
        string memory tokenSymbol,
        bytes32 salt,
        bool setupAMFunctionRoles
    ) external returns (address machine);

Parameters

NameTypeDescription
mParamsIMachine.MachineInitParamsThe machine initialization parameters.
cParamsICaliber.CaliberInitParamsThe caliber initialization parameters.
mgParamsIMakinaGovernable.MakinaGovernableInitParamsThe makina governable initialization parameters.
sscParamsISpokeSnapshotConsumer.SpokeSnapshotConsumerInitParamsThe spoke snapshot consumer initialization parameters.
baParamsBridgeAdapterInitParams[]The list of bridge adapter initialization parameters and controller configuration.
accountingTokenaddressThe address of the accounting token.
tokenNamestringThe name of the share token.
tokenSymbolstringThe symbol of the share token.
saltbytes32The salt used to deploy the hub caliber deterministically.
setupAMFunctionRolesboolWhether to set roles for restricted functions on the deployed instance.

Returns

NameTypeDescription
machineaddressThe address of the deployed Machine instance.

Events

MachineCreated

event MachineCreated(address indexed machine, address indexed shareToken);

Parameters

NameTypeDescription
machineaddress
shareTokenaddress

PreDepositVaultCreated

event PreDepositVaultCreated(address indexed preDepositVault, address indexed shareToken);

Parameters

NameTypeDescription
preDepositVaultaddress
shareTokenaddress

ShareTokenCreated

event ShareTokenCreated(address indexed shareToken);

Parameters

NameTypeDescription
shareTokenaddress

Structs

MachineBundle

The core components of a new machine instance.

struct MachineBundle {
        address machine;
        address shareToken;
        address caliber;
    }

Properties

NameTypeDescription
machineaddress
shareTokenaddress
caliberaddress