@kiroboio/fct-core
Version:
Kirobo.io FCT Core library
99 lines • 5.01 kB
JavaScript
import { ethers } from "ethers";
const { keccak256, toUtf8Bytes } = ethers.utils;
export const multicallContracts = {
1: "0xcA11bde05977b3631167028862bE2a173976CA11",
42161: "0xcA11bde05977b3631167028862bE2a173976CA11",
10: "0xcA11bde05977b3631167028862bE2a173976CA11",
8453: "0xcA11bde05977b3631167028862bE2a173976CA11",
//
// Testnets
11155111: "0xcA11bde05977b3631167028862bE2a173976CA11",
5: "0xcA11bde05977b3631167028862bE2a173976CA11",
421613: "0xcA11bde05977b3631167028862bE2a173976CA11",
};
export const EMPTY_HASH = "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470";
// EXTERNAL VARIABLES
export const ExternalVariableBaseAddress = "0xFC00000000000000000000000000000000000000";
export const ExternalVariableBaseBytes32 = "0xFC00000000000000000000000000000000000000000000000000000000000000";
// OUTPUT VARIABLES
// = 0xFD00000000000000000000000000000| 00000 | 0000
// The max value is = FD00000000000000000000000000010000000000;
export const OutputVariableBaseAddress = "0xFD00000000000000000000000000000000000000";
export const OutputVariableBaseBytes32 = "0xFD00000000000000000000000000000000000000000000000000000000000000";
export const MaxOutputVariableAddress = "0xFD00000000000000000000000000010000000000";
export const MaxOutputVariableBytes32 = "0xFD00000000000000000000000000000000000000000000000000010000000000";
export const BackOutputVariableBaseAddress = "0xFDB0000000000000000000000000000000000000";
export const BackOutputVariableBaseBytes32 = "0xFDB0000000000000000000000000000000000000000000000000000000000000";
export const MaxBackOutputVariableAddress = "0xFDB0000000000000000000000000010000000000";
export const MaxBackOutputVariableBytes32 = "0xFDB0000000000000000000000000000000000000000000000000010000000000";
// MULTICALL OUTPUT VARIABLES
export const MulticallOutputVariableBaseAddress = "0xEE00000000000000000000000000000000000000";
export const MulticallOutputVariableBaseBytes32 = "0xEE00000000000000000000000000000000000000000000000000000000000000";
export const BackMulticallOutputVariableBaseAddress = "0xEF00000000000000000000000000000000000000";
export const BackMulticallOutputVariableBaseBytes32 = "0xEF00000000000000000000000000000000000000000000000000000000000000";
// COMPUTED VARIABLES
export const ComputedBaseAddress = "0xFE00000000000000000000000000000000000000";
export const ComputedBaseBytes32 = "0xFE00000000000000000000000000000000000000000000000000000000000000";
export const ValidationBase = "0xE900000000000000000000000000000000000000000000000000000000000000";
export const SolverAddress = "0xFA0B000000000000000000000000000000000000";
export const MinerAddress = "0xFA0A000000000000000000000000000000000000";
export const InvestorAddress = "0xFA0C000000000000000000000000000000000000";
export const ActivatorAddress = "0xFA0D000000000000000000000000000000000000";
export const VARX_FCT_MESSAGE_HASH = "0xFB0D000000000000000000000000000000000000000000000000000000000000";
export const VAR_TX_GAS_PRICE = "0x00FB0C000000000000000000000000000000000000";
export const VARX_TX_GAS_PRICE = "0xFB0C000000000000000000000000000000000000000000000000000000000000";
export const VAR_FCT_MESSAGE_HASH = "0x00FB0D000000000000000000000000000000000000";
const allVariables = [
ExternalVariableBaseBytes32,
OutputVariableBaseBytes32,
BackOutputVariableBaseBytes32,
MulticallOutputVariableBaseBytes32,
BackMulticallOutputVariableBaseBytes32,
ComputedBaseBytes32,
ValidationBase,
SolverAddress,
MinerAddress,
InvestorAddress,
ActivatorAddress,
VARX_FCT_MESSAGE_HASH,
VAR_TX_GAS_PRICE,
VARX_TX_GAS_PRICE,
VAR_FCT_MESSAGE_HASH,
].map((variable) => variable.toLowerCase());
export const ValidationOperator = {
equal: keccak256(toUtf8Bytes("equal")),
"not equal": keccak256(toUtf8Bytes("not equal")),
"greater than": keccak256(toUtf8Bytes("greater than")),
"greater equal than": keccak256(toUtf8Bytes("greater equal than")),
or: keccak256(toUtf8Bytes("or")),
"or not": keccak256(toUtf8Bytes("or not")),
and: keccak256(toUtf8Bytes("and")),
"and not": keccak256(toUtf8Bytes("and not")),
};
export const CALL_TYPE = {
ACTION: "0",
VIEW_ONLY: "1",
LIBRARY: "2",
LIBRARY_VIEW_ONLY: "3",
};
export const CALL_TYPE_MSG = {
ACTION: "action",
VIEW_ONLY: "view only",
LIBRARY: "library: action",
LIBRARY_VIEW_ONLY: "library: view only",
};
// Reverse Call Type MSG
export const CALL_TYPE_MSG_REV = {
action: "ACTION",
"view only": "VIEW_ONLY",
"library: action": "LIBRARY",
"library: view only": "LIBRARY_VIEW_ONLY",
};
export const FCT_VAULT_ADDRESS = "FCT_VAULT_ADDRESS";
export function isVariable(value) {
if (typeof value !== "string")
return false;
const hexString = value.toLowerCase().slice(0, 15);
return allVariables.some((variable) => variable.startsWith(hexString));
}
//# sourceMappingURL=misc.js.map