export type WitnessScope =
| "None"
| "CalledByEntry"
| "CustomContracts"
| "CustomGroups"
| "WitnessRules"
| "Global"
| "CalledByEntry, CustomContracts"
| "CalledByEntry, CustomGroups"
| "CalledByEntry, WitnessRules"
| "CustomContracts, CustomGroups"
| "CustomContracts, WitnessRules"
| "CustomGroups, WitnessRules"
| "CalledByEntry, CustomContracts, CustomGroups"
| "CalledByEntry, CustomContracts, WitnessRules"
| "CalledByEntry, CustomGroups, WitnessRules"
| "CustomContracts, CustomGroups, WitnessRules"
| "CalledByEntry, CustomContracts, CustomGroups, WitnessRules";
export type WitnessConditionType =
| "Boolean"
| "Not"
| "And"
| "Or"
| "ScriptHash"
| "Group"
| "CalledByEntry"
| "CalledByContract"
| "CalledByGroup";
export interface WitnessCondition {
type: WitnessConditionType;
}
export type WitnessRule = {
action: "Deny" | "Allow";
condition: WitnessCondition;
};
export type Signer = {
account: UInt160;
scopes: WitnessScope;
allowedContracts?: UInt160[];
allowedGroups?: ECPoint[];
rules?: WitnessRule[];
};
export type TransactionOptions = {
suggestedSystemFee?: Integer;
extraSystemFee?: Integer;
validUntilBlock?: number;
};
export type ContractParametersContext = {
type: "Neo.Network.P2P.Payloads.Transaction";
hash: UInt256;
data: Base64Encoded;
items: Record<UInt160, {
script: Base64Encoded;
parameters: Argument[];
signatures: Record<ECPoint, Base64Encoded>;
}>;
network: Network;
};
export type SignOptions = {
isBase64Encoded?: boolean;
isTypedData?: boolean;
isLedgerCompatible?: boolean;
};
export type SignedMessage = {
payload: Base64Encoded;
signature: Base64Encoded;
account: UInt160;
pubkey: ECPoint;
};