TypedData

IComputedVariable

interface IComputedVariable {
  index: string;
  var: string;
  add: string;
  sub: string;
  mul: string;
  div: string;
}

TypedDataRecurrency

interface TypedDataRecurrency {
  max_repeats: string;
  chill_time: string;
  accumetable: boolean;
}

TypedDataMultiSig

interface TypedDataMultiSig {
  signers: string[];
  required_signers: number;
}

TypedDataTypes

type TypedDataTypes = {
  EIP712Domain: MessageTypeProperty[];
  BatchMultiSigCall: MessageTypeProperty[];
  Meta: MessageTypeProperty[];
  Limits: MessageTypeProperty[];
  Call: MessageTypeProperty[];
  Recurrency?: MessageTypeProperty[];
  MultiSig?: MessageTypeProperty[];
} & { [key: string]: MessageTypeProperty[] };

TypedDataDomain

interface TypedDataDomain {
  name: string;
  version: string;
  chainId: number;
  verifyingContract: string;
  salt: string;
}

TypedDataMessageTransaction

type TypedDataMessageTransaction = {
  call: {
    call_index: number;
    payer_index: number;
    call_type: (typeof CALL_TYPE_MSG)[keyof typeof CALL_TYPE_MSG];
    from: string;
    to: string;
    to_ens: string;
    eth_value: string;
    gas_limit: string;
    permissions: number;
    flow_control: string;
    returned_false_means_fail: boolean;
    jump_on_success: number;
    jump_on_fail: number;
    method_interface: string;
  };
} & {
  [key: string]: FCTCallParam;
};

TypedDataLimits

interface TypedDataLimits {
  valid_from: string;
  expires_at: string;
  gas_price_limit: string;
  purgeable: boolean;
  blockable: boolean;
}

TypedDataMeta

interface TypedDataMeta {
  name: string;
  builder: string;
  selector: string;
  version: string;
  random_id: string;
  eip712: boolean;
}

MessageTransaction

type MessageTransaction = 
    Record<`transaction_${number}`, TypedDataMessageTransaction>;

MessageMeta

type MessageMeta = Record<"meta", TypedDataMeta>;

MessageLimits

type MessageLimits = Record<"limits", TypedDataLimits>;

MessageRecurrency

type MessageRecurrency = Record<"recurrency", TypedDataRecurrency>;

MessageMultiSig

type MessageMultiSig = Record<"multisig", TypedDataMultiSig>;

MessageComputed

type MessageComputed = Record<`computed_${number}`, IComputedVariable>;

MandatoryTypedDataMessage

type MandatoryTypedDataMessage = MessageTransaction & MessageMeta & MessageLimits;

OptionalTypedDataMessage

type OptionalTypedDataMessage = 
    MessageRecurrency & MessageMultiSig & MessageComputed;

TypedDataMessage

type TypedDataMessage = 
    MandatoryTypedDataMessage & Partial<OptionalTypedDataMessage>;

BatchMultiSigCallTypedData

interface BatchMultiSigCallTypedData {
  types: TypedDataTypes;
  primaryType: string;
  domain: TypedDataDomain;
  message: TypedDataMessage;
}

Last updated