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 }