github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/js/src/solts/sol/Eventer.abi.ts (about)

     1  //Code generated by solts. DO NOT EDIT.
     2  import { Address, CancelStreamSignal, ContractCodec, Event, Keccak, listenerFor } from '../../index';
     3  interface Provider {
     4    deploy(
     5      data: string | Uint8Array,
     6      contractMeta?: {
     7        abi: string;
     8        codeHash: Uint8Array;
     9      }[],
    10    ): Promise<Address>;
    11    call(data: string | Uint8Array, address: string): Promise<Uint8Array | undefined>;
    12    callSim(data: string | Uint8Array, address: string): Promise<Uint8Array | undefined>;
    13    listen(
    14      signatures: string[],
    15      address: string,
    16      callback: (err?: Error, event?: Event) => CancelStreamSignal | void,
    17      start?: 'first' | 'latest' | 'stream' | number,
    18      end?: 'first' | 'latest' | 'stream' | number,
    19    ): unknown;
    20    contractCodec(contractABI: string): ContractCodec;
    21  }
    22  export type Caller = typeof defaultCall;
    23  export async function defaultCall<Output>(
    24    client: Provider,
    25    addr: string,
    26    data: Uint8Array,
    27    isSim: boolean,
    28    callback: (returnData: Uint8Array | undefined) => Output,
    29  ): Promise<Output> {
    30    const returnData = await (isSim ? client.callSim(data, addr) : client.call(data, addr));
    31    return callback(returnData);
    32  }
    33  export namespace Eventer {
    34    export const contractName = 'Eventer';
    35    export const abi =
    36      '[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"eventId","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"intervalId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"eventAddress","type":"address"},{"indexed":false,"internalType":"string","name":"namespace","type":"string"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"address","name":"controller","type":"address"},{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"},{"indexed":false,"internalType":"string","name":"metadata","type":"string"}],"name":"Init","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"int256","name":"timestamp","type":"int256"},{"indexed":false,"internalType":"string","name":"place","type":"string"},{"indexed":false,"internalType":"string","name":"postalAddress","type":"string"}],"name":"MonoRampage","type":"event"},{"constant":false,"inputs":[],"name":"announce","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]';
    37    export const bytecode =
    38      '6080604052348015600f57600080fd5b506102b58061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638f970df014610030575b600080fd5b61003861003a565b005b607b7f6a35688e78094e86ac7dd4593423fa89415105dc68a0766b27106861ef4102146040518080602001806020018381038352600d8152602001807f53616e74612045756c61726961000000000000000000000000000000000000008152506020018381038252600a8152602001807f53616e74204a75616d65000000000000000000000000000000000000000000008152506020019250505060405180910390a27f696e74657276616c3200000000000000000000000000000000000000000000007f6576656e743100000000000000000000000000000000000000000000000000007f5f20df97ee573ab8b43581cf3ff905f3507ad2329b7efe6f92e802b4fad031c17359c99d4ebf520619ee7f806f11d90a9cac02ce06336004604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001848103845260068152602001807f64696e696e670000000000000000000000000000000000000000000000000000815250602001848103835260098152602001807f627265616b666173740000000000000000000000000000000000000000000000815250602001848103825260178152602001807f6261636f6e2c6265616e732c656767732c746f6d61746f000000000000000000815250602001965050505050505060405180910390a356fea265627a7a72315820a6cd65593c9a8f5ed08f75519d9dd5664bcdf3a4bb67c8f507e1a69ed348f04f64736f6c63430005110032';
    39    export const deployedBytecode =
    40      '608060405234801561001057600080fd5b506004361061002b5760003560e01c80638f970df014610030575b600080fd5b61003861003a565b005b607b7f6a35688e78094e86ac7dd4593423fa89415105dc68a0766b27106861ef4102146040518080602001806020018381038352600d8152602001807f53616e74612045756c61726961000000000000000000000000000000000000008152506020018381038252600a8152602001807f53616e74204a75616d65000000000000000000000000000000000000000000008152506020019250505060405180910390a27f696e74657276616c3200000000000000000000000000000000000000000000007f6576656e743100000000000000000000000000000000000000000000000000007f5f20df97ee573ab8b43581cf3ff905f3507ad2329b7efe6f92e802b4fad031c17359c99d4ebf520619ee7f806f11d90a9cac02ce06336004604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001848103845260068152602001807f64696e696e670000000000000000000000000000000000000000000000000000815250602001848103835260098152602001807f627265616b666173740000000000000000000000000000000000000000000000815250602001848103825260178152602001807f6261636f6e2c6265616e732c656767732c746f6d61746f000000000000000000815250602001965050505050505060405180910390a356fea265627a7a72315820a6cd65593c9a8f5ed08f75519d9dd5664bcdf3a4bb67c8f507e1a69ed348f04f64736f6c63430005110032';
    41    export function deploy({
    42      client,
    43      withContractMeta,
    44    }: {
    45      client: Provider;
    46      withContractMeta?: boolean;
    47    }): Promise<string> {
    48      const codec = client.contractCodec(abi);
    49      const data = Buffer.concat([Buffer.from(bytecode, 'hex'), codec.encodeDeploy()]);
    50      return client.deploy(
    51        data,
    52        withContractMeta
    53          ? [{ abi: Eventer.abi, codeHash: new Keccak(256).update(Eventer.deployedBytecode, 'hex').digest('binary') }]
    54          : undefined,
    55      );
    56    }
    57    export async function deployContract(deps: { client: Provider; withContractMeta?: boolean }): Promise<Contract> {
    58      const address = await deploy(deps);
    59      return contract(deps.client, address);
    60    }
    61    type EventRegistry = typeof events;
    62    export type EventName = keyof EventRegistry;
    63    export type TaggedPayload<T extends EventName> = ReturnType<EventRegistry[T]['tagged']> & {
    64      event: Event;
    65    };
    66    export type SolidityEvent<T extends EventName> = TaggedPayload<T>['payload'];
    67    export type TypedListener<T extends EventName> = (
    68      callback: (err?: Error, event?: TaggedPayload<T>) => void,
    69      start?: 'first' | 'latest' | 'stream' | number,
    70      end?: 'first' | 'latest' | 'stream' | number,
    71    ) => unknown;
    72    const events = {
    73      Init: {
    74        signature: '5F20DF97EE573AB8B43581CF3FF905F3507AD2329B7EFE6F92E802B4FAD031C1',
    75        tagged: (
    76          eventId: Buffer,
    77          intervalId: Buffer,
    78          eventAddress: string,
    79          namespace: string,
    80          name: string,
    81          controller: string,
    82          threshold: number,
    83          metadata: string,
    84        ) =>
    85          ({
    86            name: 'Init',
    87            payload: {
    88              eventId: eventId,
    89              intervalId: intervalId,
    90              eventAddress: eventAddress,
    91              namespace: namespace,
    92              name: name,
    93              controller: controller,
    94              threshold: threshold,
    95              metadata: metadata,
    96            } as const,
    97          } as const),
    98      } as const,
    99      MonoRampage: {
   100        signature: '6A35688E78094E86AC7DD4593423FA89415105DC68A0766B27106861EF410214',
   101        tagged: (timestamp: number, place: string, postalAddress: string) =>
   102          ({
   103            name: 'MonoRampage',
   104            payload: { timestamp: timestamp, place: place, postalAddress: postalAddress } as const,
   105          } as const),
   106      } as const,
   107    } as const;
   108    export type Contract = ReturnType<typeof contract>;
   109    export const contract = (client: Provider, address: string) =>
   110      ({
   111        name: 'Eventer',
   112        address,
   113        functions: {
   114          announce(call = defaultCall): Promise<void> {
   115            const data = encode(client).announce();
   116            return call<void>(client, address, data, false, (data: Uint8Array | undefined) => {
   117              return decode(client, data).announce();
   118            });
   119          },
   120        } as const,
   121        listeners: {
   122          Init(
   123            callback: (
   124              err?: Error,
   125              event?: {
   126                eventId: Buffer;
   127                intervalId: Buffer;
   128                eventAddress: string;
   129                namespace: string;
   130                name: string;
   131                controller: string;
   132                threshold: number;
   133                metadata: string;
   134              },
   135            ) => CancelStreamSignal | void,
   136            start?: 'first' | 'latest' | 'stream' | number,
   137            end?: 'first' | 'latest' | 'stream' | number,
   138          ): unknown {
   139            return client.listen(
   140              ['5F20DF97EE573AB8B43581CF3FF905F3507AD2329B7EFE6F92E802B4FAD031C1'],
   141              address,
   142              (err?: Error, event?: Event) => {
   143                if (err) {
   144                  return callback(err);
   145                }
   146                return callback(undefined, decode(client, event?.log.data, event?.log.topics).Init());
   147              },
   148              start,
   149              end,
   150            );
   151          },
   152          MonoRampage(
   153            callback: (
   154              err?: Error,
   155              event?: {
   156                timestamp: number;
   157                place: string;
   158                postalAddress: string;
   159              },
   160            ) => CancelStreamSignal | void,
   161            start?: 'first' | 'latest' | 'stream' | number,
   162            end?: 'first' | 'latest' | 'stream' | number,
   163          ): unknown {
   164            return client.listen(
   165              ['6A35688E78094E86AC7DD4593423FA89415105DC68A0766B27106861EF410214'],
   166              address,
   167              (err?: Error, event?: Event) => {
   168                if (err) {
   169                  return callback(err);
   170                }
   171                return callback(undefined, decode(client, event?.log.data, event?.log.topics).MonoRampage());
   172              },
   173              start,
   174              end,
   175            );
   176          },
   177        } as const,
   178        listenerFor: <T extends EventName>(eventNames: T[]): TypedListener<T> =>
   179          (listenerFor(client, address, events, decode, eventNames) as unknown) as TypedListener<T>,
   180        listener: listenerFor(
   181          client,
   182          address,
   183          events,
   184          decode,
   185          Object.keys(events) as EventName[],
   186        ) as TypedListener<EventName>,
   187      } as const);
   188    export const encode = (client: Provider) => {
   189      const codec = client.contractCodec(abi);
   190      return {
   191        announce: () => {
   192          return codec.encodeFunctionData('8F970DF0');
   193        },
   194      };
   195    };
   196    export const decode = (client: Provider, data: Uint8Array | undefined, topics: Uint8Array[] = []) => {
   197      const codec = client.contractCodec(abi);
   198      return {
   199        Init: (): {
   200          eventId: Buffer;
   201          intervalId: Buffer;
   202          eventAddress: string;
   203          namespace: string;
   204          name: string;
   205          controller: string;
   206          threshold: number;
   207          metadata: string;
   208        } => {
   209          const [
   210            eventId,
   211            intervalId,
   212            eventAddress,
   213            namespace,
   214            name,
   215            controller,
   216            threshold,
   217            metadata,
   218          ] = codec.decodeEventLog('5F20DF97EE573AB8B43581CF3FF905F3507AD2329B7EFE6F92E802B4FAD031C1', data, topics);
   219          return {
   220            eventId: eventId,
   221            intervalId: intervalId,
   222            eventAddress: eventAddress,
   223            namespace: namespace,
   224            name: name,
   225            controller: controller,
   226            threshold: threshold,
   227            metadata: metadata,
   228          };
   229        },
   230        MonoRampage: (): {
   231          timestamp: number;
   232          place: string;
   233          postalAddress: string;
   234        } => {
   235          const [timestamp, place, postalAddress] = codec.decodeEventLog(
   236            '6A35688E78094E86AC7DD4593423FA89415105DC68A0766B27106861EF410214',
   237            data,
   238            topics,
   239          );
   240          return { timestamp: timestamp, place: place, postalAddress: postalAddress };
   241        },
   242        announce: (): void => {
   243          return;
   244        },
   245      };
   246    };
   247  }