/** * Copyright (c) Whales Corp. * All Rights Reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import { Maybe } from "../utils/maybe"; export type ABIError = { message: string }; export type ABITypeRef = { kind: 'simple', type: string, optional?: Maybe, format?: Maybe, } | { kind: 'dict', format?: Maybe, key: string, keyFormat?: Maybe, value: string, valueFormat?: Maybe, }; export type ABIField = { name: string, type: ABITypeRef } export type ABIType = { name: string, header?: Maybe, fields: ABIField[], }; export type ABIArgument = { name: string, type: ABITypeRef } export type ABIGetter = { name: string, methodId?: Maybe, arguments?: Maybe, returnType?: Maybe, }; export type ABIReceiverMessage = { kind: 'typed', type: string } | { kind: 'any', } | { kind: 'empty', } | { kind: 'text', text?: Maybe }; export type ABIReceiver = { receiver: 'internal' | 'external'; message: ABIReceiverMessage; } export type ContractABI = { name?: Maybe, types?: Maybe, errors?: Maybe<{ [key: number]: ABIError }>, getters?: Maybe; receivers?: Maybe; };