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

     1  //Code generated by solts. DO NOT EDIT.
     2  import { Address, CancelStreamSignal, ContractCodec, Event, Keccak } 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 Creator {
    34    export const contractName = 'Creator';
    35    export const abi =
    36      '[{"constant":false,"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"create","outputs":[{"internalType":"address","name":"proxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]';
    37    export const bytecode =
    38      '608060405234801561001057600080fd5b50610504806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063b6a46b3b14610030575b600080fd5b6100a76004803603602081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b90919293919293905050506100e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600082826040516100f990610153565b80806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509350505050604051809103906000f08015801561014a573d6000803e3d6000fd5b50905092915050565b61036f806101618339019056fe60806040526040518060200160405280600081525060009080519060200190610029929190610131565b5034801561003657600080fd5b5060405161036f38038061036f8339818101604052602081101561005957600080fd5b810190808051604051939291908464010000000082111561007957600080fd5b8382019150602082018581111561008f57600080fd5b82518660018202830111640100000000821117156100ac57600080fd5b8083526020830192505050908051906020019080838360005b838110156100e05780820151818401526020810190506100c5565b50505050905090810190601f16801561010d5780820380516001836020036101000a031916815260200191505b50604052505050806000908051906020019061012a929190610131565b50506101d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061017257805160ff19168380011785556101a0565b828001600101855582156101a0579182015b8281111561019f578251825591602001919060010190610184565b5b5090506101ad91906101b1565b5090565b6101d391905b808211156101cf5760008160009055506001016101b7565b5090565b90565b61018a806101e56000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80636d4ce63c14610030575b600080fd5b6100386100b3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561007857808201518184015260208101905061005d565b50505050905090810190601f1680156100a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561014b5780601f106101205761010080835404028352916020019161014b565b820191906000526020600020905b81548152906001019060200180831161012e57829003601f168201915b505050505090509056fea265627a7a723158206774e6bd107164a63f42ab8950431a6d5e09eed4da0c066049dc9db7278bbeb364736f6c63430005110032a265627a7a72315820cf64c1da8de972eb1f9f2b5e6799c7af3385d3ee9b08b51fb8d7b060fa7eb4e864736f6c63430005110032';
    39    export const deployedBytecode =
    40      '608060405234801561001057600080fd5b506004361061002b5760003560e01c8063b6a46b3b14610030575b600080fd5b6100a76004803603602081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b90919293919293905050506100e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600082826040516100f990610153565b80806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509350505050604051809103906000f08015801561014a573d6000803e3d6000fd5b50905092915050565b61036f806101618339019056fe60806040526040518060200160405280600081525060009080519060200190610029929190610131565b5034801561003657600080fd5b5060405161036f38038061036f8339818101604052602081101561005957600080fd5b810190808051604051939291908464010000000082111561007957600080fd5b8382019150602082018581111561008f57600080fd5b82518660018202830111640100000000821117156100ac57600080fd5b8083526020830192505050908051906020019080838360005b838110156100e05780820151818401526020810190506100c5565b50505050905090810190601f16801561010d5780820380516001836020036101000a031916815260200191505b50604052505050806000908051906020019061012a929190610131565b50506101d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061017257805160ff19168380011785556101a0565b828001600101855582156101a0579182015b8281111561019f578251825591602001919060010190610184565b5b5090506101ad91906101b1565b5090565b6101d391905b808211156101cf5760008160009055506001016101b7565b5090565b90565b61018a806101e56000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80636d4ce63c14610030575b600080fd5b6100386100b3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561007857808201518184015260208101905061005d565b50505050905090810190601f1680156100a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561014b5780601f106101205761010080835404028352916020019161014b565b820191906000526020600020905b81548152906001019060200180831161012e57829003601f168201915b505050505090509056fea265627a7a723158206774e6bd107164a63f42ab8950431a6d5e09eed4da0c066049dc9db7278bbeb364736f6c63430005110032a265627a7a72315820cf64c1da8de972eb1f9f2b5e6799c7af3385d3ee9b08b51fb8d7b060fa7eb4e864736f6c63430005110032';
    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          ? [
    54              { abi: Creator.abi, codeHash: new Keccak(256).update(Creator.deployedBytecode, 'hex').digest('binary') },
    55              { abi: Proxy.abi, codeHash: new Keccak(256).update(Proxy.deployedBytecode, 'hex').digest('binary') },
    56            ]
    57          : undefined,
    58      );
    59    }
    60    export async function deployContract(deps: { client: Provider; withContractMeta?: boolean }): Promise<Contract> {
    61      const address = await deploy(deps);
    62      return contract(deps.client, address);
    63    }
    64    export type Contract = ReturnType<typeof contract>;
    65    export const contract = (client: Provider, address: string) =>
    66      ({
    67        name: 'Creator',
    68        address,
    69        functions: {
    70          create(
    71            _name: string,
    72            call = defaultCall,
    73          ): Promise<{
    74            proxy: string;
    75          }> {
    76            const data = encode(client).create(_name);
    77            return call<{
    78              proxy: string;
    79            }>(client, address, data, false, (data: Uint8Array | undefined) => {
    80              return decode(client, data).create();
    81            });
    82          },
    83        } as const,
    84      } as const);
    85    export const encode = (client: Provider) => {
    86      const codec = client.contractCodec(abi);
    87      return {
    88        create: (_name: string) => {
    89          return codec.encodeFunctionData('B6A46B3B', _name);
    90        },
    91      };
    92    };
    93    export const decode = (client: Provider, data: Uint8Array | undefined, topics: Uint8Array[] = []) => {
    94      const codec = client.contractCodec(abi);
    95      return {
    96        create: (): {
    97          proxy: string;
    98        } => {
    99          const [proxy] = codec.decodeFunctionResult('B6A46B3B', data);
   100          return { proxy: proxy };
   101        },
   102      };
   103    };
   104  }
   105  export namespace Proxy {
   106    export const contractName = 'Proxy';
   107    export const abi =
   108      '[{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"get","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"}]';
   109    export const bytecode =
   110      '60806040526040518060200160405280600081525060009080519060200190610029929190610131565b5034801561003657600080fd5b5060405161036f38038061036f8339818101604052602081101561005957600080fd5b810190808051604051939291908464010000000082111561007957600080fd5b8382019150602082018581111561008f57600080fd5b82518660018202830111640100000000821117156100ac57600080fd5b8083526020830192505050908051906020019080838360005b838110156100e05780820151818401526020810190506100c5565b50505050905090810190601f16801561010d5780820380516001836020036101000a031916815260200191505b50604052505050806000908051906020019061012a929190610131565b50506101d6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061017257805160ff19168380011785556101a0565b828001600101855582156101a0579182015b8281111561019f578251825591602001919060010190610184565b5b5090506101ad91906101b1565b5090565b6101d391905b808211156101cf5760008160009055506001016101b7565b5090565b90565b61018a806101e56000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80636d4ce63c14610030575b600080fd5b6100386100b3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561007857808201518184015260208101905061005d565b50505050905090810190601f1680156100a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561014b5780601f106101205761010080835404028352916020019161014b565b820191906000526020600020905b81548152906001019060200180831161012e57829003601f168201915b505050505090509056fea265627a7a723158206774e6bd107164a63f42ab8950431a6d5e09eed4da0c066049dc9db7278bbeb364736f6c63430005110032';
   111    export const deployedBytecode =
   112      '608060405234801561001057600080fd5b506004361061002b5760003560e01c80636d4ce63c14610030575b600080fd5b6100386100b3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561007857808201518184015260208101905061005d565b50505050905090810190601f1680156100a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561014b5780601f106101205761010080835404028352916020019161014b565b820191906000526020600020905b81548152906001019060200180831161012e57829003601f168201915b505050505090509056fea265627a7a723158206774e6bd107164a63f42ab8950431a6d5e09eed4da0c066049dc9db7278bbeb364736f6c63430005110032';
   113    export function deploy(
   114      {
   115        client,
   116        withContractMeta,
   117      }: {
   118        client: Provider;
   119        withContractMeta?: boolean;
   120      },
   121      _name: string,
   122    ): Promise<string> {
   123      const codec = client.contractCodec(abi);
   124      const data = Buffer.concat([Buffer.from(bytecode, 'hex'), codec.encodeDeploy(_name)]);
   125      return client.deploy(
   126        data,
   127        withContractMeta
   128          ? [
   129              { abi: Creator.abi, codeHash: new Keccak(256).update(Creator.deployedBytecode, 'hex').digest('binary') },
   130              { abi: Proxy.abi, codeHash: new Keccak(256).update(Proxy.deployedBytecode, 'hex').digest('binary') },
   131            ]
   132          : undefined,
   133      );
   134    }
   135    export async function deployContract(
   136      deps: {
   137        client: Provider;
   138        withContractMeta?: boolean;
   139      },
   140      _name: string,
   141    ): Promise<Contract> {
   142      const address = await deploy(deps, _name);
   143      return contract(deps.client, address);
   144    }
   145    export type Contract = ReturnType<typeof contract>;
   146    export const contract = (client: Provider, address: string) =>
   147      ({
   148        name: 'Proxy',
   149        address,
   150        functions: {
   151          get(call = defaultCall): Promise<[string]> {
   152            const data = encode(client).get();
   153            return call<[string]>(client, address, data, true, (data: Uint8Array | undefined) => {
   154              return decode(client, data).get();
   155            });
   156          },
   157        } as const,
   158      } as const);
   159    export const encode = (client: Provider) => {
   160      const codec = client.contractCodec(abi);
   161      return {
   162        get: () => {
   163          return codec.encodeFunctionData('6D4CE63C');
   164        },
   165      };
   166    };
   167    export const decode = (client: Provider, data: Uint8Array | undefined, topics: Uint8Array[] = []) => {
   168      const codec = client.contractCodec(abi);
   169      return {
   170        get: (): [string] => {
   171          return codec.decodeFunctionResult('6D4CE63C', data);
   172        },
   173      };
   174    };
   175  }