From 5e0cbbcc11d3930a5e30f96ecda87cca280bc956 Mon Sep 17 00:00:00 2001 From: Shruthi23 Date: Sun, 7 May 2023 18:11:49 -0700 Subject: [PATCH 1/6] established mapping between docs and hc and addressed review comments --- .../HealthCareProvider/HCManageDoctors.tsx | 8 ++--- client/src/contracts/HealthBlock.ts | 26 +++++++++++--- .../factories/HealthBlock__factory.ts | 24 ++++++++++++- client/src/providers/HealthProvider.tsx | 31 +++++++++++----- contracts/HealthBlock.sol | 35 +++++-------------- 5 files changed, 80 insertions(+), 44 deletions(-) diff --git a/client/src/components/HealthCareProvider/HCManageDoctors.tsx b/client/src/components/HealthCareProvider/HCManageDoctors.tsx index da57d4d..0fb902a 100644 --- a/client/src/components/HealthCareProvider/HCManageDoctors.tsx +++ b/client/src/components/HealthCareProvider/HCManageDoctors.tsx @@ -64,8 +64,8 @@ const HCManageDoctors: FunctionComponent<{}> = () => { {doctorToProviderReqList && doctorToProviderReqList.length > 0 && - doctorToProviderReqList.map((req) => ( - + doctorToProviderReqList.map((req, idx) => ( +
{req.name}
@@ -85,7 +85,7 @@ const HCManageDoctors: FunctionComponent<{}> = () => { className='bg-red-500 hover:bg-red-600 text-white font-bold py-2 px-4 rounded' onClick={() => { if (currentAccount) { - updateProfile?.(currentAccount, req.address, 'rejected'); + updateProfile?.(currentAccount, req.address, 'rejected', idx); } }} > @@ -96,7 +96,7 @@ const HCManageDoctors: FunctionComponent<{}> = () => { className='bg-green-500 hover:bg-green-600 text-white font-bold py-2 px-4 rounded' onClick={() => { if (currentAccount) { - updateProfile?.(currentAccount, req.address, 'confirmed'); + updateProfile?.(currentAccount, req.address, 'confirmed', idx); } }} //updateStatus('confirmed', appointment.appointment_id) diff --git a/client/src/contracts/HealthBlock.ts b/client/src/contracts/HealthBlock.ts index a514115..131203a 100644 --- a/client/src/contracts/HealthBlock.ts +++ b/client/src/contracts/HealthBlock.ts @@ -90,8 +90,8 @@ export interface HealthBlockInterface extends utils.Interface { "getHCProviderInfoAll(address)": FunctionFragment; "registerHCProvider(string,string,string,string)": FunctionFragment; "getAllDoctorsForProvider(address)": FunctionFragment; - "mapDoctorToProvider(address,address)": FunctionFragment; - "declineDoctorToProviderRequest(address,address)": FunctionFragment; + "mapDoctorToProvider(address,address,uint256)": FunctionFragment; + "declineDoctorToProviderRequest(address,address,uint256)": FunctionFragment; "raiseDoctorToProviderRequest(address,address,string)": FunctionFragment; "getAllDoctorToProviderRequests(address)": FunctionFragment; }; @@ -205,11 +205,19 @@ export interface HealthBlockInterface extends utils.Interface { ): string; encodeFunctionData( functionFragment: "mapDoctorToProvider", - values: [PromiseOrValue, PromiseOrValue] + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] ): string; encodeFunctionData( functionFragment: "declineDoctorToProviderRequest", - values: [PromiseOrValue, PromiseOrValue] + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] ): string; encodeFunctionData( functionFragment: "raiseDoctorToProviderRequest", @@ -530,12 +538,14 @@ export interface HealthBlock extends BaseContract { mapDoctorToProvider( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; declineDoctorToProviderRequest( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; @@ -666,12 +676,14 @@ export interface HealthBlock extends BaseContract { mapDoctorToProvider( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; declineDoctorToProviderRequest( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; @@ -804,12 +816,14 @@ export interface HealthBlock extends BaseContract { mapDoctorToProvider( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: CallOverrides ): Promise; declineDoctorToProviderRequest( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: CallOverrides ): Promise; @@ -976,12 +990,14 @@ export interface HealthBlock extends BaseContract { mapDoctorToProvider( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; declineDoctorToProviderRequest( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; @@ -1086,12 +1102,14 @@ export interface HealthBlock extends BaseContract { mapDoctorToProvider( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; declineDoctorToProviderRequest( _providerAddress: PromiseOrValue, _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; diff --git a/client/src/contracts/factories/HealthBlock__factory.ts b/client/src/contracts/factories/HealthBlock__factory.ts index d7d4cd2..52d2f71 100644 --- a/client/src/contracts/factories/HealthBlock__factory.ts +++ b/client/src/contracts/factories/HealthBlock__factory.ts @@ -177,6 +177,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -211,6 +212,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -255,6 +257,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -308,6 +311,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -357,6 +361,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -386,6 +391,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -437,6 +443,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -471,6 +478,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -527,6 +535,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -561,6 +570,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -635,6 +645,7 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, { inputs: [ @@ -648,6 +659,11 @@ const _abi = [ name: "_doctorAddress", type: "address", }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, ], name: "mapDoctorToProvider", outputs: [], @@ -666,6 +682,11 @@ const _abi = [ name: "_doctorAddress", type: "address", }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, ], name: "declineDoctorToProviderRequest", outputs: [], @@ -730,11 +751,12 @@ const _abi = [ ], stateMutability: "view", type: "function", + constant: true, }, ]; const _bytecode = - "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506148cf806100606000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063939686dc116100b8578063b380f5c61161007c578063b380f5c614610358578063bc4fe40214610379578063c5b0aab014610395578063cc063706146103c8578063d7d1bbdb146103fa578063e1e36ab91461041657610137565b8063939686dc146102b6578063a89b1c94146102d2578063a9b467ee146102ee578063afc3b5c414610320578063b2d258ff1461033c57610137565b8063326df664116100ff578063326df664146101f35780635df122e1146102135780636d36f7be146102435780638813ce1214610277578063916922c41461029557610137565b80630869cfbc1461013c57806310b500cc1461016f578063139f09841461019f5780631c297205146101bb5780632d7788db146101d7575b600080fd5b61015660048036038101906101519190613762565b610449565b604051610166949392919061384a565b60405180910390f35b61018960048036038101906101849190613762565b6105b6565b6040516101969190613a0f565b60405180910390f35b6101b960048036038101906101b49190613a31565b6107ce565b005b6101d560048036038101906101d09190613bd2565b610cf0565b005b6101f160048036038101906101ec9190613c93565b610f29565b005b6101fb611125565b60405161020a93929190613cc0565b60405180910390f35b61022d60048036038101906102289190613762565b61134f565b60405161023a9190613e5a565b60405180910390f35b61025d60048036038101906102589190613e7c565b611616565b60405161026e959493929190613ebc565b60405180910390f35b61027f61182e565b60405161028c9190614057565b60405180910390f35b61029d611b85565b6040516102ad9493929190614079565b60405180910390f35b6102d060048036038101906102cb91906140da565b611ec0565b005b6102ec60048036038101906102e79190613a31565b61200e565b005b61030860048036038101906103039190613762565b612227565b60405161031793929190613cc0565b60405180910390f35b61033a60048036038101906103359190614149565b6123b0565b005b610356600480360381019061035191906141c1565b61259e565b005b6103606128ec565b604051610370949392919061427c565b60405180910390f35b610393600480360381019061038e91906142d6565b612baa565b005b6103af60048036038101906103aa9190613762565b612ec8565b6040516103bf9493929190614079565b60405180910390f35b6103e260048036038101906103dd9190613e7c565b613161565b6040516103f1939291906143ad565b60405180910390f35b610414600480360381019061040f9190613c93565b6132d8565b005b610430600480360381019061042b9190613762565b6134d4565b604051610440949392919061427c565b60405180910390f35b600460205280600052604060002060009150905080600001805461046c90614421565b80601f016020809104026020016040519081016040528092919081815260200182805461049890614421565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050908060010160009054906101000a900460ff169080600201805461050d90614421565b80601f016020809104026020016040519081016040528092919081815260200182805461053990614421565b80156105865780601f1061055b57610100808354040283529160200191610586565b820191906000526020600020905b81548152906001019060200180831161056957829003601f168201915b5050505050908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156107c3578382906000526020600020906003020160405180606001604052908160008201805461064a90614421565b80601f016020809104026020016040519081016040528092919081815260200182805461067690614421565b80156106c35780601f10610698576101008083540402835291602001916106c3565b820191906000526020600020905b8154815290600101906020018083116106a657829003601f168201915b505050505081526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201805461073290614421565b80601f016020809104026020016040519081016040528092919081815260200182805461075e90614421565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b50505050508152505081526020019060010190610617565b505050509050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008060005b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508160ff161015610937578473ffffffffffffffffffffffffffffffffffffffff16600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260ff16815481106108cf576108ce614452565b5b906000526020600020906003020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361092457809250610937565b808061092f906144b0565b915050610817565b506040518060400160405280600981526020017f636f6e6669726d65640000000000000000000000000000000000000000000000815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff16815481106109c2576109c1614452565b5b906000526020600020906003020160020190816109df9190614685565b50600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405280856000018054610a3990614421565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6590614421565b8015610ab25780601f10610a8757610100808354040283529160200191610ab2565b820191906000526020600020905b815481529060010190602001808311610a9557829003601f168201915b505050505081526020018560010160009054906101000a900460ff1660ff168152602001856002018054610ae590614421565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1190614421565b8015610b5e5780601f10610b3357610100808354040283529160200191610b5e565b820191906000526020600020905b815481529060010190602001808311610b4157829003601f168201915b50505050508152602001856003018054610b7790614421565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba390614421565b8015610bf05780601f10610bc557610100808354040283529160200191610bf0565b820191906000526020600020905b815481529060010190602001808311610bd357829003601f168201915b505050505081526020018673ffffffffffffffffffffffffffffffffffffffff1681525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000019081610c529190614685565b5060208201518160010160006101000a81548160ff021916908360ff1602179055506040820151816002019081610c899190614685565b506060820151816003019081610c9f9190614685565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b604051602001610cff90614788565b6040516020818303038152906040528051906020012083604051602001610d2691906147ce565b6040516020818303038152906040528051906020012003610d4657600080fd5b604051602001610d5590614788565b6040516020818303038152906040528051906020012081604051602001610d7c91906147ce565b6040516020818303038152906040528051906020012003610d9c57600080fd5b60008260ff16118015610db2575060648260ff16105b610dbb57600080fd5b60405180608001604052808481526020018360ff1681526020018281526020013373ffffffffffffffffffffffffffffffffffffffff16815250600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000019081610e499190614685565b5060208201518160010160006101000a81548160ff021916908360ff1602179055506040820151816002019081610e809190614685565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505082604051610ed991906147ce565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fae90614857565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061102b5761102a614452565b5b906000526020600020906004020190506040518060400160405280600881526020017f72656a65637465640000000000000000000000000000000000000000000000008152508160030190816110819190614685565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4d2b09745b50f68da85b0b25854d46c2b85b43dd6f04ba6f3f503ff878bf4ae560405160405180910390a45050565b606060006060336000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16116111cc57600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff168260020182805461123590614421565b80601f016020809104026020016040519081016040528092919081815260200182805461126190614421565b80156112ae5780601f10611283576101008083540402835291602001916112ae565b820191906000526020600020905b81548152906001019060200180831161129157829003601f168201915b505050505092508080546112c190614421565b80601f01602080910402602001604051908101604052809291908181526020018280546112ed90614421565b801561133a5780601f1061130f5761010080835404028352916020019161133a565b820191906000526020600020905b81548152906001019060200180831161131d57829003601f168201915b50505050509050955095509550505050909192565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561160b57838290600052602060002090600502016040518060a00160405290816000820180546113e390614421565b80601f016020809104026020016040519081016040528092919081815260200182805461140f90614421565b801561145c5780601f106114315761010080835404028352916020019161145c565b820191906000526020600020905b81548152906001019060200180831161143f57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff16815260200160028201805461149290614421565b80601f01602080910402602001604051908101604052809291908181526020018280546114be90614421565b801561150b5780601f106114e05761010080835404028352916020019161150b565b820191906000526020600020905b8154815290600101906020018083116114ee57829003601f168201915b5050505050815260200160038201805461152490614421565b80601f016020809104026020016040519081016040528092919081815260200182805461155090614421565b801561159d5780601f106115725761010080835404028352916020019161159d565b820191906000526020600020905b81548152906001019060200180831161158057829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050815260200190600101906113b0565b505050509050919050565b6002602052816000526040600020818154811061163257600080fd5b90600052602060002090600502016000915091505080600001805461165690614421565b80601f016020809104026020016040519081016040528092919081815260200182805461168290614421565b80156116cf5780601f106116a4576101008083540402835291602001916116cf565b820191906000526020600020905b8154815290600101906020018083116116b257829003601f168201915b5050505050908060010160009054906101000a900460ff16908060020180546116f790614421565b80601f016020809104026020016040519081016040528092919081815260200182805461172390614421565b80156117705780601f1061174557610100808354040283529160200191611770565b820191906000526020600020905b81548152906001019060200180831161175357829003601f168201915b50505050509080600301805461178590614421565b80601f01602080910402602001604051908101604052809291908181526020018280546117b190614421565b80156117fe5780601f106117d3576101008083540402835291602001916117fe565b820191906000526020600020905b8154815290600101906020018083116117e157829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590614857565b60405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611b7c57838290600052602060002090600402016040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180546119c790614421565b80601f01602080910402602001604051908101604052809291908181526020018280546119f390614421565b8015611a405780601f10611a1557610100808354040283529160200191611a40565b820191906000526020600020905b815481529060010190602001808311611a2357829003601f168201915b50505050508152602001600282018054611a5990614421565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8590614421565b8015611ad25780601f10611aa757610100808354040283529160200191611ad2565b820191906000526020600020905b815481529060010190602001808311611ab557829003601f168201915b50505050508152602001600382018054611aeb90614421565b80601f0160208091040260200160405190810160405280929190818152602001828054611b1790614421565b8015611b645780601f10611b3957610100808354040283529160200191611b64565b820191906000526020600020905b815481529060010190602001808311611b4757829003601f168201915b5050505050815250508152602001906001019061193e565b50505050905090565b606080606080336000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611611c2c57600080fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054611c8b90614421565b80601f0160208091040260200160405190810160405280929190818152602001828054611cb790614421565b8015611d045780601f10611cd957610100808354040283529160200191611d04565b820191906000526020600020905b815481529060010190602001808311611ce757829003601f168201915b50505050509350828054611d1790614421565b80601f0160208091040260200160405190810160405280929190818152602001828054611d4390614421565b8015611d905780601f10611d6557610100808354040283529160200191611d90565b820191906000526020600020905b815481529060010190602001808311611d7357829003601f168201915b50505050509250818054611da390614421565b80601f0160208091040260200160405190810160405280929190818152602001828054611dcf90614421565b8015611e1c5780601f10611df157610100808354040283529160200191611e1c565b820191906000526020600020905b815481529060010190602001808311611dff57829003601f168201915b50505050509150808054611e2f90614421565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5b90614421565b8015611ea85780601f10611e7d57610100808354040283529160200191611ea8565b820191906000526020600020905b815481529060010190602001808311611e8b57829003601f168201915b50505050509050965096509650965050505090919293565b600060405180606001604052808381526020018473ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000019081611fa89190614685565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020190816120059190614685565b50505050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008060005b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508160ff161015612177578473ffffffffffffffffffffffffffffffffffffffff16600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260ff168154811061210f5761210e614452565b5b906000526020600020906003020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361216457809250612177565b808061216f906144b0565b915050612057565b506040518060400160405280600881526020017f72656a6563746564000000000000000000000000000000000000000000000000815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360ff168154811061220257612201614452565b5b9060005260206000209060030201600201908161221f9190614685565b505050505050565b6060600060606000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff168260020182805461229690614421565b80601f01602080910402602001604051908101604052809291908181526020018280546122c290614421565b801561230f5780601f106122e45761010080835404028352916020019161230f565b820191906000526020600020905b8154815290600101906020018083116122f257829003601f168201915b5050505050925080805461232290614421565b80601f016020809104026020016040519081016040528092919081815260200182805461234e90614421565b801561239b5780601f106123705761010080835404028352916020019161239b565b820191906000526020600020905b81548152906001019060200180831161237e57829003601f168201915b50505050509050935093509350509193909250565b600060405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816125069190614685565b50604082015181600201908161251c9190614685565b5060608201518160030190816125329190614685565b5050508260405161254391906147ce565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167f13bea7f2b146e27ade33081397e247a39c6fa801e1c40c9d03fd9d808e3bdfcd846040516125919190614877565b60405180910390a3505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016125f090614788565b604051602081830303815290604052805190602001208560405160200161261791906147ce565b604051602081830303815290604052805190602001200361263757600080fd5b60405160200161264690614788565b604051602081830303815290604052805190602001208360405160200161266d91906147ce565b604051602081830303815290604052805190602001200361268d57600080fd5b60405160200161269c90614788565b60405160208183030381529060405280519060200120826040516020016126c391906147ce565b60405160208183030381529060405280519060200120036126e357600080fd5b60008460ff161180156126f9575060648460ff16105b61270257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16111561276057600080fd5b6040518060a001604052808681526020018560ff1681526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816127f49190614685565b5060208201518160010160006101000a81548160ff021916908360ff160217905550604082015181600201908161282b9190614685565b5060608201518160030190816128419190614685565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508460405161289a91906147ce565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a35050505050565b60606000606080336000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161161299457600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff168260020183600301838054612a0190614421565b80601f0160208091040260200160405190810160405280929190818152602001828054612a2d90614421565b8015612a7a5780601f10612a4f57610100808354040283529160200191612a7a565b820191906000526020600020905b815481529060010190602001808311612a5d57829003601f168201915b50505050509350818054612a8d90614421565b80601f0160208091040260200160405190810160405280929190818152602001828054612ab990614421565b8015612b065780601f10612adb57610100808354040283529160200191612b06565b820191906000526020600020905b815481529060010190602001808311612ae957829003601f168201915b50505050509150808054612b1990614421565b80601f0160208091040260200160405190810160405280929190818152602001828054612b4590614421565b8015612b925780601f10612b6757610100808354040283529160200191612b92565b820191906000526020600020905b815481529060010190602001808311612b7557829003601f168201915b50505050509050965096509650965050505090919293565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050604051602001612bfc90614788565b6040516020818303038152906040528051906020012085604051602001612c2391906147ce565b6040516020818303038152906040528051906020012003612c4357600080fd5b604051602001612c5290614788565b6040516020818303038152906040528051906020012084604051602001612c7991906147ce565b6040516020818303038152906040528051906020012003612c9957600080fd5b604051602001612ca890614788565b6040516020818303038152906040528051906020012083604051602001612ccf91906147ce565b6040516020818303038152906040528051906020012003612cef57600080fd5b604051602001612cfe90614788565b6040516020818303038152906040528051906020012082604051602001612d2591906147ce565b6040516020818303038152906040528051906020012003612d4557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115612da357600080fd5b6040518060a001604052808681526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000019081612e349190614685565b506020820151816001019081612e4a9190614685565b506040820151816002019081612e609190614685565b506060820151816003019081612e769190614685565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050505050505050565b6060806060806000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054612f2d90614421565b80601f0160208091040260200160405190810160405280929190818152602001828054612f5990614421565b8015612fa65780601f10612f7b57610100808354040283529160200191612fa6565b820191906000526020600020905b815481529060010190602001808311612f8957829003601f168201915b50505050509350828054612fb990614421565b80601f0160208091040260200160405190810160405280929190818152602001828054612fe590614421565b80156130325780601f1061300757610100808354040283529160200191613032565b820191906000526020600020905b81548152906001019060200180831161301557829003601f168201915b5050505050925081805461304590614421565b80601f016020809104026020016040519081016040528092919081815260200182805461307190614421565b80156130be5780601f10613093576101008083540402835291602001916130be565b820191906000526020600020905b8154815290600101906020018083116130a157829003601f168201915b505050505091508080546130d190614421565b80601f01602080910402602001604051908101604052809291908181526020018280546130fd90614421565b801561314a5780601f1061311f5761010080835404028352916020019161314a565b820191906000526020600020905b81548152906001019060200180831161312d57829003601f168201915b505050505090509450945094509450509193509193565b6003602052816000526040600020818154811061317d57600080fd5b9060005260206000209060030201600091509150508060000180546131a190614421565b80601f01602080910402602001604051908101604052809291908181526020018280546131cd90614421565b801561321a5780601f106131ef5761010080835404028352916020019161321a565b820191906000526020600020905b8154815290600101906020018083116131fd57829003601f168201915b5050505050908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201805461325590614421565b80601f016020809104026020016040519081016040528092919081815260200182805461328190614421565b80156132ce5780601f106132a3576101008083540402835291602001916132ce565b820191906000526020600020905b8154815290600101906020018083116132b157829003601f168201915b5050505050905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335d90614857565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106133da576133d9614452565b5b906000526020600020906004020190506040518060400160405280600881526020017f617070726f7665640000000000000000000000000000000000000000000000008152508160030190816134309190614685565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd9a9c1b40a747e79bd4c1aeabd897bfd5b3679e58fcdcd20dd7af4a8274196bc60405160405180910390a45050565b606060006060806000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff16826002018360030183805461354890614421565b80601f016020809104026020016040519081016040528092919081815260200182805461357490614421565b80156135c15780601f10613596576101008083540402835291602001916135c1565b820191906000526020600020905b8154815290600101906020018083116135a457829003601f168201915b505050505093508180546135d490614421565b80601f016020809104026020016040519081016040528092919081815260200182805461360090614421565b801561364d5780601f106136225761010080835404028352916020019161364d565b820191906000526020600020905b81548152906001019060200180831161363057829003601f168201915b5050505050915080805461366090614421565b80601f016020809104026020016040519081016040528092919081815260200182805461368c90614421565b80156136d95780601f106136ae576101008083540402835291602001916136d9565b820191906000526020600020905b8154815290600101906020018083116136bc57829003601f168201915b505050505090509450945094509450509193509193565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061372f82613704565b9050919050565b61373f81613724565b811461374a57600080fd5b50565b60008135905061375c81613736565b92915050565b600060208284031215613778576137776136fa565b5b60006137868482850161374d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137c95780820151818401526020810190506137ae565b60008484015250505050565b6000601f19601f8301169050919050565b60006137f18261378f565b6137fb818561379a565b935061380b8185602086016137ab565b613814816137d5565b840191505092915050565b600060ff82169050919050565b6138358161381f565b82525050565b61384481613724565b82525050565b6000608082019050818103600083015261386481876137e6565b9050613873602083018661382c565b818103604083015261388581856137e6565b9050613894606083018461383b565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b60006138e58261378f565b6138ef81856138c9565b93506138ff8185602086016137ab565b613908816137d5565b840191505092915050565b61391c81613724565b82525050565b6000606083016000830151848203600086015261393f82826138da565b91505060208301516139546020860182613913565b506040830151848203604086015261396c82826138da565b9150508091505092915050565b60006139858383613922565b905092915050565b6000602082019050919050565b60006139a58261389d565b6139af81856138a8565b9350836020820285016139c1856138b9565b8060005b858110156139fd57848403895281516139de8582613979565b94506139e98361398d565b925060208a019950506001810190506139c5565b50829750879550505050505092915050565b60006020820190508181036000830152613a29818461399a565b905092915050565b60008060408385031215613a4857613a476136fa565b5b6000613a568582860161374d565b9250506020613a678582860161374d565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613ab3826137d5565b810181811067ffffffffffffffff82111715613ad257613ad1613a7b565b5b80604052505050565b6000613ae56136f0565b9050613af18282613aaa565b919050565b600067ffffffffffffffff821115613b1157613b10613a7b565b5b613b1a826137d5565b9050602081019050919050565b82818337600083830152505050565b6000613b49613b4484613af6565b613adb565b905082815260208101848484011115613b6557613b64613a76565b5b613b70848285613b27565b509392505050565b600082601f830112613b8d57613b8c613a71565b5b8135613b9d848260208601613b36565b91505092915050565b613baf8161381f565b8114613bba57600080fd5b50565b600081359050613bcc81613ba6565b92915050565b600080600060608486031215613beb57613bea6136fa565b5b600084013567ffffffffffffffff811115613c0957613c086136ff565b5b613c1586828701613b78565b9350506020613c2686828701613bbd565b925050604084013567ffffffffffffffff811115613c4757613c466136ff565b5b613c5386828701613b78565b9150509250925092565b6000819050919050565b613c7081613c5d565b8114613c7b57600080fd5b50565b600081359050613c8d81613c67565b92915050565b600060208284031215613ca957613ca86136fa565b5b6000613cb784828501613c7e565b91505092915050565b60006060820190508181036000830152613cda81866137e6565b9050613ce9602083018561382c565b8181036040830152613cfb81846137e6565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d3a8161381f565b82525050565b600060a0830160008301518482036000860152613d5d82826138da565b9150506020830151613d726020860182613d31565b5060408301518482036040860152613d8a82826138da565b91505060608301518482036060860152613da482826138da565b9150506080830151613db96080860182613913565b508091505092915050565b6000613dd08383613d40565b905092915050565b6000602082019050919050565b6000613df082613d05565b613dfa8185613d10565b935083602082028501613e0c85613d21565b8060005b85811015613e485784840389528151613e298582613dc4565b9450613e3483613dd8565b925060208a01995050600181019050613e10565b50829750879550505050505092915050565b60006020820190508181036000830152613e748184613de5565b905092915050565b60008060408385031215613e9357613e926136fa565b5b6000613ea18582860161374d565b9250506020613eb285828601613c7e565b9150509250929050565b600060a0820190508181036000830152613ed681886137e6565b9050613ee5602083018761382c565b8181036040830152613ef781866137e6565b90508181036060830152613f0b81856137e6565b9050613f1a608083018461383b565b9695505050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000608083016000830151613f686000860182613913565b5060208301518482036020860152613f8082826138da565b91505060408301518482036040860152613f9a82826138da565b91505060608301518482036060860152613fb482826138da565b9150508091505092915050565b6000613fcd8383613f50565b905092915050565b6000602082019050919050565b6000613fed82613f24565b613ff78185613f2f565b93508360208202850161400985613f40565b8060005b8581101561404557848403895281516140268582613fc1565b945061403183613fd5565b925060208a0199505060018101905061400d565b50829750879550505050505092915050565b600060208201905081810360008301526140718184613fe2565b905092915050565b6000608082019050818103600083015261409381876137e6565b905081810360208301526140a781866137e6565b905081810360408301526140bb81856137e6565b905081810360608301526140cf81846137e6565b905095945050505050565b6000806000606084860312156140f3576140f26136fa565b5b60006141018682870161374d565b93505060206141128682870161374d565b925050604084013567ffffffffffffffff811115614133576141326136ff565b5b61413f86828701613b78565b9150509250925092565b600080604083850312156141605761415f6136fa565b5b600083013567ffffffffffffffff81111561417e5761417d6136ff565b5b61418a85828601613b78565b925050602083013567ffffffffffffffff8111156141ab576141aa6136ff565b5b6141b785828601613b78565b9150509250929050565b600080600080608085870312156141db576141da6136fa565b5b600085013567ffffffffffffffff8111156141f9576141f86136ff565b5b61420587828801613b78565b945050602061421687828801613bbd565b935050604085013567ffffffffffffffff811115614237576142366136ff565b5b61424387828801613b78565b925050606085013567ffffffffffffffff811115614264576142636136ff565b5b61427087828801613b78565b91505092959194509250565b6000608082019050818103600083015261429681876137e6565b90506142a5602083018661382c565b81810360408301526142b781856137e6565b905081810360608301526142cb81846137e6565b905095945050505050565b600080600080608085870312156142f0576142ef6136fa565b5b600085013567ffffffffffffffff81111561430e5761430d6136ff565b5b61431a87828801613b78565b945050602085013567ffffffffffffffff81111561433b5761433a6136ff565b5b61434787828801613b78565b935050604085013567ffffffffffffffff811115614368576143676136ff565b5b61437487828801613b78565b925050606085013567ffffffffffffffff811115614395576143946136ff565b5b6143a187828801613b78565b91505092959194509250565b600060608201905081810360008301526143c781866137e6565b90506143d6602083018561383b565b81810360408301526143e881846137e6565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061443957607f821691505b60208210810361444c5761444b6143f2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006144bb8261381f565b915060ff82036144ce576144cd614481565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261453b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826144fe565b61454586836144fe565b95508019841693508086168417925050509392505050565b6000819050919050565b600061458261457d61457884613c5d565b61455d565b613c5d565b9050919050565b6000819050919050565b61459c83614567565b6145b06145a882614589565b84845461450b565b825550505050565b600090565b6145c56145b8565b6145d0818484614593565b505050565b5b818110156145f4576145e96000826145bd565b6001810190506145d6565b5050565b601f8211156146395761460a816144d9565b614613846144ee565b81016020851015614622578190505b61463661462e856144ee565b8301826145d5565b50505b505050565b600082821c905092915050565b600061465c6000198460080261463e565b1980831691505092915050565b6000614675838361464b565b9150826002028217905092915050565b61468e8261378f565b67ffffffffffffffff8111156146a7576146a6613a7b565b5b6146b18254614421565b6146bc8282856145f8565b600060209050601f8311600181146146ef57600084156146dd578287015190505b6146e78582614669565b86555061474f565b601f1984166146fd866144d9565b60005b8281101561472557848901518255600182019150602085019450602081019050614700565b86831015614742578489015161473e601f89168261464b565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b50565b6000614772600083614757565b915061477d82614762565b600082019050919050565b600061479382614765565b9150819050919050565b60006147a88261378f565b6147b28185614757565b93506147c28185602086016137ab565b80840191505092915050565b60006147da828461479d565b915081905092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b600061484160218361379a565b915061484c826147e5565b604082019050919050565b6000602082019050818103600083015261487081614834565b9050919050565b6000602082019050818103600083015261489181846137e6565b90509291505056fea2646970667358221220dc79161da0496aea80b77cb3dd0508096bc78ead9ee02b4d03b8379c3e9bb5ab64736f6c63430008110033"; + "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614640806100606000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063939686dc116100b8578063bc4fe4021161007c578063bc4fe4021461035d578063c5b0aab014610379578063cc063706146103ac578063d1d8b266146103de578063d7d1bbdb146103fa578063e1e36ab91461041657610137565b8063939686dc146102b6578063a9b467ee146102d2578063afc3b5c414610304578063b2d258ff14610320578063b380f5c61461033c57610137565b80635df122e1116100ff5780635df122e1146101f75780636d36f7be146102275780637521eca11461025b5780638813ce1214610277578063916922c41461029557610137565b80630869cfbc1461013c57806310b500cc1461016f5780631c2972051461019f5780632d7788db146101bb578063326df664146101d7575b600080fd5b61015660048036038101906101519190613518565b610449565b6040516101669493929190613600565b60405180910390f35b61018960048036038101906101849190613518565b6105b6565b60405161019691906137c5565b60405180910390f35b6101b960048036038101906101b49190613948565b6107ce565b005b6101d560048036038101906101d09190613a09565b610a07565b005b6101df610c03565b6040516101ee93929190613a36565b60405180910390f35b610211600480360381019061020c9190613518565b610e2d565b60405161021e9190613bd0565b60405180910390f35b610241600480360381019061023c9190613bf2565b6110f4565b604051610252959493929190613c32565b60405180910390f35b61027560048036038101906102709190613c9a565b61130c565b005b61027f611709565b60405161028c9190613e20565b60405180910390f35b61029d611a60565b6040516102ad9493929190613e42565b60405180910390f35b6102d060048036038101906102cb9190613ea3565b611d9b565b005b6102ec60048036038101906102e79190613518565b611ee9565b6040516102fb93929190613a36565b60405180910390f35b61031e60048036038101906103199190613f12565b612072565b005b61033a60048036038101906103359190613f8a565b612260565b005b6103446125ae565b6040516103549493929190614045565b60405180910390f35b6103776004803603810190610372919061409f565b61286c565b005b610393600480360381019061038e9190613518565b612b8a565b6040516103a39493929190613e42565b60405180910390f35b6103c660048036038101906103c19190613bf2565b612e23565b6040516103d593929190614176565b60405180910390f35b6103f860048036038101906103f39190613c9a565b612f9a565b005b610414600480360381019061040f9190613a09565b61308e565b005b610430600480360381019061042b9190613518565b61328a565b6040516104409493929190614045565b60405180910390f35b600460205280600052604060002060009150905080600001805461046c906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610498906141ea565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050908060010160009054906101000a900460ff169080600201805461050d906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610539906141ea565b80156105865780601f1061055b57610100808354040283529160200191610586565b820191906000526020600020905b81548152906001019060200180831161056957829003601f168201915b5050505050908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156107c3578382906000526020600020906003020160405180606001604052908160008201805461064a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610676906141ea565b80156106c35780601f10610698576101008083540402835291602001916106c3565b820191906000526020600020905b8154815290600101906020018083116106a657829003601f168201915b505050505081526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610732906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461075e906141ea565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b50505050508152505081526020019060010190610617565b505050509050919050565b6040516020016107dd9061424c565b60405160208183030381529060405280519060200120836040516020016108049190614292565b604051602081830303815290604052805190602001200361082457600080fd5b6040516020016108339061424c565b604051602081830303815290604052805190602001208160405160200161085a9190614292565b604051602081830303815290604052805190602001200361087a57600080fd5b60008260ff16118015610890575060648260ff16105b61089957600080fd5b60405180608001604052808481526020018360ff1681526020018281526020013373ffffffffffffffffffffffffffffffffffffffff16815250600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816109279190614455565b5060208201518160010160006101000a81548160ff021916908360ff160217905550604082015181600201908161095e9190614455565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050826040516109b79190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610b0957610b086145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f72656a6563746564000000000000000000000000000000000000000000000000815250816003019081610b5f9190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4d2b09745b50f68da85b0b25854d46c2b85b43dd6f04ba6f3f503ff878bf4ae560405160405180910390a45050565b606060006060336000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611610caa57600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054610d13906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3f906141ea565b8015610d8c5780601f10610d6157610100808354040283529160200191610d8c565b820191906000526020600020905b815481529060010190602001808311610d6f57829003601f168201915b50505050509250808054610d9f906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcb906141ea565b8015610e185780601f10610ded57610100808354040283529160200191610e18565b820191906000526020600020905b815481529060010190602001808311610dfb57829003601f168201915b50505050509050955095509550505050909192565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156110e957838290600052602060002090600502016040518060a0016040529081600082018054610ec1906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610eed906141ea565b8015610f3a5780601f10610f0f57610100808354040283529160200191610f3a565b820191906000526020600020905b815481529060010190602001808311610f1d57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff168152602001600282018054610f70906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9c906141ea565b8015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b50505050508152602001600382018054611002906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461102e906141ea565b801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190610e8e565b505050509050919050565b6002602052816000526040600020818154811061111057600080fd5b906000526020600020906005020160009150915050806000018054611134906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611160906141ea565b80156111ad5780601f10611182576101008083540402835291602001916111ad565b820191906000526020600020905b81548152906001019060200180831161119057829003601f168201915b5050505050908060010160009054906101000a900460ff16908060020180546111d5906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611201906141ea565b801561124e5780601f106112235761010080835404028352916020019161124e565b820191906000526020600020905b81548152906001019060200180831161123157829003601f168201915b505050505090806003018054611263906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461128f906141ea565b80156112dc5780601f106112b1576101008083540402835291602001916112dc565b820191906000526020600020905b8154815290600101906020018083116112bf57829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106113a2576113a16145b9565b5b906000526020600020906003020190506040518060400160405280600981526020017f636f6e6669726d656400000000000000000000000000000000000000000000008152508160020190816113f89190614455565b50600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405280846000018054611452906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461147e906141ea565b80156114cb5780601f106114a0576101008083540402835291602001916114cb565b820191906000526020600020905b8154815290600101906020018083116114ae57829003601f168201915b505050505081526020018460010160009054906101000a900460ff1660ff1681526020018460020180546114fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461152a906141ea565b80156115775780601f1061154c57610100808354040283529160200191611577565b820191906000526020600020905b81548152906001019060200180831161155a57829003601f168201915b50505050508152602001846003018054611590906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546115bc906141ea565b80156116095780601f106115de57610100808354040283529160200191611609565b820191906000526020600020905b8154815290600101906020018083116115ec57829003601f168201915b505050505081526020018673ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000209060050201600090919091909150600082015181600001908161166b9190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816116a29190614455565b5060608201518160030190816116b89190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179090614599565b60405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611a5757838290600052602060002090600402016040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180546118a2906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546118ce906141ea565b801561191b5780601f106118f05761010080835404028352916020019161191b565b820191906000526020600020905b8154815290600101906020018083116118fe57829003601f168201915b50505050508152602001600282018054611934906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611960906141ea565b80156119ad5780601f10611982576101008083540402835291602001916119ad565b820191906000526020600020905b81548152906001019060200180831161199057829003601f168201915b505050505081526020016003820180546119c6906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546119f2906141ea565b8015611a3f5780601f10611a1457610100808354040283529160200191611a3f565b820191906000526020600020905b815481529060010190602001808311611a2257829003601f168201915b50505050508152505081526020019060010190611819565b50505050905090565b606080606080336000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611611b0757600080fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054611b66906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611b92906141ea565b8015611bdf5780601f10611bb457610100808354040283529160200191611bdf565b820191906000526020600020905b815481529060010190602001808311611bc257829003601f168201915b50505050509350828054611bf2906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e906141ea565b8015611c6b5780601f10611c4057610100808354040283529160200191611c6b565b820191906000526020600020905b815481529060010190602001808311611c4e57829003601f168201915b50505050509250818054611c7e906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611caa906141ea565b8015611cf75780601f10611ccc57610100808354040283529160200191611cf7565b820191906000526020600020905b815481529060010190602001808311611cda57829003601f168201915b50505050509150808054611d0a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611d36906141ea565b8015611d835780601f10611d5857610100808354040283529160200191611d83565b820191906000526020600020905b815481529060010190602001808311611d6657829003601f168201915b50505050509050965096509650965050505090919293565b600060405180606001604052808381526020018473ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000019081611e839190614455565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019081611ee09190614455565b50505050505050565b6060600060606000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054611f58906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611f84906141ea565b8015611fd15780601f10611fa657610100808354040283529160200191611fd1565b820191906000526020600020905b815481529060010190602001808311611fb457829003601f168201915b50505050509250808054611fe4906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612010906141ea565b801561205d5780601f106120325761010080835404028352916020019161205d565b820191906000526020600020905b81548152906001019060200180831161204057829003601f168201915b50505050509050935093509350509193909250565b600060405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816121c89190614455565b5060408201518160020190816121de9190614455565b5060608201518160030190816121f49190614455565b505050826040516122059190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167f13bea7f2b146e27ade33081397e247a39c6fa801e1c40c9d03fd9d808e3bdfcd8460405161225391906145e8565b60405180910390a3505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016122b29061424c565b60405160208183030381529060405280519060200120856040516020016122d99190614292565b60405160208183030381529060405280519060200120036122f957600080fd5b6040516020016123089061424c565b604051602081830303815290604052805190602001208360405160200161232f9190614292565b604051602081830303815290604052805190602001200361234f57600080fd5b60405160200161235e9061424c565b60405160208183030381529060405280519060200120826040516020016123859190614292565b60405160208183030381529060405280519060200120036123a557600080fd5b60008460ff161180156123bb575060648460ff16105b6123c457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16111561242257600080fd5b6040518060a001604052808681526020018560ff1681526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816124b69190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816124ed9190614455565b5060608201518160030190816125039190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508460405161255c9190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a35050505050565b60606000606080336000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161161265657600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546126c3906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546126ef906141ea565b801561273c5780601f106127115761010080835404028352916020019161273c565b820191906000526020600020905b81548152906001019060200180831161271f57829003601f168201915b5050505050935081805461274f906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461277b906141ea565b80156127c85780601f1061279d576101008083540402835291602001916127c8565b820191906000526020600020905b8154815290600101906020018083116127ab57829003601f168201915b505050505091508080546127db906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612807906141ea565b80156128545780601f1061282957610100808354040283529160200191612854565b820191906000526020600020905b81548152906001019060200180831161283757829003601f168201915b50505050509050965096509650965050505090919293565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016128be9061424c565b60405160208183030381529060405280519060200120856040516020016128e59190614292565b604051602081830303815290604052805190602001200361290557600080fd5b6040516020016129149061424c565b604051602081830303815290604052805190602001208460405160200161293b9190614292565b604051602081830303815290604052805190602001200361295b57600080fd5b60405160200161296a9061424c565b60405160208183030381529060405280519060200120836040516020016129919190614292565b60405160208183030381529060405280519060200120036129b157600080fd5b6040516020016129c09061424c565b60405160208183030381529060405280519060200120826040516020016129e79190614292565b6040516020818303038152906040528051906020012003612a0757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115612a6557600080fd5b6040518060a001604052808681526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000019081612af69190614455565b506020820151816001019081612b0c9190614455565b506040820151816002019081612b229190614455565b506060820151816003019081612b389190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050505050505050565b6060806060806000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054612bef906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612c1b906141ea565b8015612c685780601f10612c3d57610100808354040283529160200191612c68565b820191906000526020600020905b815481529060010190602001808311612c4b57829003601f168201915b50505050509350828054612c7b906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612ca7906141ea565b8015612cf45780601f10612cc957610100808354040283529160200191612cf4565b820191906000526020600020905b815481529060010190602001808311612cd757829003601f168201915b50505050509250818054612d07906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612d33906141ea565b8015612d805780601f10612d5557610100808354040283529160200191612d80565b820191906000526020600020905b815481529060010190602001808311612d6357829003601f168201915b50505050509150808054612d93906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612dbf906141ea565b8015612e0c5780601f10612de157610100808354040283529160200191612e0c565b820191906000526020600020905b815481529060010190602001808311612def57829003601f168201915b505050505090509450945094509450509193509193565b60036020528160005260406000208181548110612e3f57600080fd5b906000526020600020906003020160009150915050806000018054612e63906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8f906141ea565b8015612edc5780601f10612eb157610100808354040283529160200191612edc565b820191906000526020600020905b815481529060010190602001808311612ebf57829003601f168201915b5050505050908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054612f17906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612f43906141ea565b8015612f905780601f10612f6557610100808354040283529160200191612f90565b820191906000526020600020905b815481529060010190602001808311612f7357829003601f168201915b5050505050905083565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106130305761302f6145b9565b5b906000526020600020906003020190506040518060400160405280600881526020017f72656a65637465640000000000000000000000000000000000000000000000008152508160020190816130869190614455565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461311c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311390614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106131905761318f6145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f617070726f7665640000000000000000000000000000000000000000000000008152508160030190816131e69190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd9a9c1b40a747e79bd4c1aeabd897bfd5b3679e58fcdcd20dd7af4a8274196bc60405160405180910390a45050565b606060006060806000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546132fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461332a906141ea565b80156133775780601f1061334c57610100808354040283529160200191613377565b820191906000526020600020905b81548152906001019060200180831161335a57829003601f168201915b5050505050935081805461338a906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546133b6906141ea565b80156134035780601f106133d857610100808354040283529160200191613403565b820191906000526020600020905b8154815290600101906020018083116133e657829003601f168201915b50505050509150808054613416906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054613442906141ea565b801561348f5780601f106134645761010080835404028352916020019161348f565b820191906000526020600020905b81548152906001019060200180831161347257829003601f168201915b505050505090509450945094509450509193509193565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134e5826134ba565b9050919050565b6134f5816134da565b811461350057600080fd5b50565b600081359050613512816134ec565b92915050565b60006020828403121561352e5761352d6134b0565b5b600061353c84828501613503565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561357f578082015181840152602081019050613564565b60008484015250505050565b6000601f19601f8301169050919050565b60006135a782613545565b6135b18185613550565b93506135c1818560208601613561565b6135ca8161358b565b840191505092915050565b600060ff82169050919050565b6135eb816135d5565b82525050565b6135fa816134da565b82525050565b6000608082019050818103600083015261361a818761359c565b905061362960208301866135e2565b818103604083015261363b818561359c565b905061364a60608301846135f1565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061369b82613545565b6136a5818561367f565b93506136b5818560208601613561565b6136be8161358b565b840191505092915050565b6136d2816134da565b82525050565b600060608301600083015184820360008601526136f58282613690565b915050602083015161370a60208601826136c9565b50604083015184820360408601526137228282613690565b9150508091505092915050565b600061373b83836136d8565b905092915050565b6000602082019050919050565b600061375b82613653565b613765818561365e565b9350836020820285016137778561366f565b8060005b858110156137b35784840389528151613794858261372f565b945061379f83613743565b925060208a0199505060018101905061377b565b50829750879550505050505092915050565b600060208201905081810360008301526137df8184613750565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138298261358b565b810181811067ffffffffffffffff82111715613848576138476137f1565b5b80604052505050565b600061385b6134a6565b90506138678282613820565b919050565b600067ffffffffffffffff821115613887576138866137f1565b5b6138908261358b565b9050602081019050919050565b82818337600083830152505050565b60006138bf6138ba8461386c565b613851565b9050828152602081018484840111156138db576138da6137ec565b5b6138e684828561389d565b509392505050565b600082601f830112613903576139026137e7565b5b81356139138482602086016138ac565b91505092915050565b613925816135d5565b811461393057600080fd5b50565b6000813590506139428161391c565b92915050565b600080600060608486031215613961576139606134b0565b5b600084013567ffffffffffffffff81111561397f5761397e6134b5565b5b61398b868287016138ee565b935050602061399c86828701613933565b925050604084013567ffffffffffffffff8111156139bd576139bc6134b5565b5b6139c9868287016138ee565b9150509250925092565b6000819050919050565b6139e6816139d3565b81146139f157600080fd5b50565b600081359050613a03816139dd565b92915050565b600060208284031215613a1f57613a1e6134b0565b5b6000613a2d848285016139f4565b91505092915050565b60006060820190508181036000830152613a50818661359c565b9050613a5f60208301856135e2565b8181036040830152613a71818461359c565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ab0816135d5565b82525050565b600060a0830160008301518482036000860152613ad38282613690565b9150506020830151613ae86020860182613aa7565b5060408301518482036040860152613b008282613690565b91505060608301518482036060860152613b1a8282613690565b9150506080830151613b2f60808601826136c9565b508091505092915050565b6000613b468383613ab6565b905092915050565b6000602082019050919050565b6000613b6682613a7b565b613b708185613a86565b935083602082028501613b8285613a97565b8060005b85811015613bbe5784840389528151613b9f8582613b3a565b9450613baa83613b4e565b925060208a01995050600181019050613b86565b50829750879550505050505092915050565b60006020820190508181036000830152613bea8184613b5b565b905092915050565b60008060408385031215613c0957613c086134b0565b5b6000613c1785828601613503565b9250506020613c28858286016139f4565b9150509250929050565b600060a0820190508181036000830152613c4c818861359c565b9050613c5b60208301876135e2565b8181036040830152613c6d818661359c565b90508181036060830152613c81818561359c565b9050613c9060808301846135f1565b9695505050505050565b600080600060608486031215613cb357613cb26134b0565b5b6000613cc186828701613503565b9350506020613cd286828701613503565b9250506040613ce3868287016139f4565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000608083016000830151613d3160008601826136c9565b5060208301518482036020860152613d498282613690565b91505060408301518482036040860152613d638282613690565b91505060608301518482036060860152613d7d8282613690565b9150508091505092915050565b6000613d968383613d19565b905092915050565b6000602082019050919050565b6000613db682613ced565b613dc08185613cf8565b935083602082028501613dd285613d09565b8060005b85811015613e0e5784840389528151613def8582613d8a565b9450613dfa83613d9e565b925060208a01995050600181019050613dd6565b50829750879550505050505092915050565b60006020820190508181036000830152613e3a8184613dab565b905092915050565b60006080820190508181036000830152613e5c818761359c565b90508181036020830152613e70818661359c565b90508181036040830152613e84818561359c565b90508181036060830152613e98818461359c565b905095945050505050565b600080600060608486031215613ebc57613ebb6134b0565b5b6000613eca86828701613503565b9350506020613edb86828701613503565b925050604084013567ffffffffffffffff811115613efc57613efb6134b5565b5b613f08868287016138ee565b9150509250925092565b60008060408385031215613f2957613f286134b0565b5b600083013567ffffffffffffffff811115613f4757613f466134b5565b5b613f53858286016138ee565b925050602083013567ffffffffffffffff811115613f7457613f736134b5565b5b613f80858286016138ee565b9150509250929050565b60008060008060808587031215613fa457613fa36134b0565b5b600085013567ffffffffffffffff811115613fc257613fc16134b5565b5b613fce878288016138ee565b9450506020613fdf87828801613933565b935050604085013567ffffffffffffffff81111561400057613fff6134b5565b5b61400c878288016138ee565b925050606085013567ffffffffffffffff81111561402d5761402c6134b5565b5b614039878288016138ee565b91505092959194509250565b6000608082019050818103600083015261405f818761359c565b905061406e60208301866135e2565b8181036040830152614080818561359c565b90508181036060830152614094818461359c565b905095945050505050565b600080600080608085870312156140b9576140b86134b0565b5b600085013567ffffffffffffffff8111156140d7576140d66134b5565b5b6140e3878288016138ee565b945050602085013567ffffffffffffffff811115614104576141036134b5565b5b614110878288016138ee565b935050604085013567ffffffffffffffff811115614131576141306134b5565b5b61413d878288016138ee565b925050606085013567ffffffffffffffff81111561415e5761415d6134b5565b5b61416a878288016138ee565b91505092959194509250565b60006060820190508181036000830152614190818661359c565b905061419f60208301856135f1565b81810360408301526141b1818461359c565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061420257607f821691505b602082108103614215576142146141bb565b5b50919050565b600081905092915050565b50565b600061423660008361421b565b915061424182614226565b600082019050919050565b600061425782614229565b9150819050919050565b600061426c82613545565b614276818561421b565b9350614286818560208601613561565b80840191505092915050565b600061429e8284614261565b915081905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261430b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826142ce565b61431586836142ce565b95508019841693508086168417925050509392505050565b6000819050919050565b600061435261434d614348846139d3565b61432d565b6139d3565b9050919050565b6000819050919050565b61436c83614337565b61438061437882614359565b8484546142db565b825550505050565b600090565b614395614388565b6143a0818484614363565b505050565b5b818110156143c4576143b960008261438d565b6001810190506143a6565b5050565b601f821115614409576143da816142a9565b6143e3846142be565b810160208510156143f2578190505b6144066143fe856142be565b8301826143a5565b50505b505050565b600082821c905092915050565b600061442c6000198460080261440e565b1980831691505092915050565b6000614445838361441b565b9150826002028217905092915050565b61445e82613545565b67ffffffffffffffff811115614477576144766137f1565b5b61448182546141ea565b61448c8282856143c8565b600060209050601f8311600181146144bf57600084156144ad578287015190505b6144b78582614439565b86555061451f565b601f1984166144cd866142a9565b60005b828110156144f5578489015182556001820191506020850194506020810190506144d0565b86831015614512578489015161450e601f89168261441b565b8355505b6001600288020188555050505b505050505050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000614583602183613550565b915061458e82614527565b604082019050919050565b600060208201905081810360008301526145b281614576565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020820190508181036000830152614602818461359c565b90509291505056fea2646970667358221220c1b2ae848c7babf4c77ed1faeecb417b032136e191fa5cca6754b17c1620030064736f6c63430008110033"; type HealthBlockConstructorParams = | [signer?: Signer] diff --git a/client/src/providers/HealthProvider.tsx b/client/src/providers/HealthProvider.tsx index eb37685..12023c1 100644 --- a/client/src/providers/HealthProvider.tsx +++ b/client/src/providers/HealthProvider.tsx @@ -35,7 +35,12 @@ interface HealthAppContextInterface { connectWallet?: () => Promise; healthBlockContract?: () => Promise; registerHealthBlockContract?: (name: string, age: number, email: string) => Promise; - updateProfile?: (hcAddress: string, docAddress: string, status: string) => Promise; + updateProfile?: ( + hcAddress: string, + docAddress: string, + status: string, + idx: number, + ) => Promise; registerDoctorHealthBlockContract?: ( name: string, age: number, @@ -290,10 +295,16 @@ export const HealthProvider: React.FC = ({ children, ...props }) => { setDoctorList(docArr); } catch (error) { - setError('Error Loading Health Contract'); + throw new Error(error); + // setError('Error Loading Health Contract'); } }; - const updateProfile = async (hcAddress: string, docAddress: string, status: string) => { + const updateProfile = async ( + hcAddress: string, + docAddress: string, + status: string, + idx: number, + ) => { try { const web3modal = new Web3Modal(); const connection = await web3modal.connect(); @@ -302,14 +313,15 @@ export const HealthProvider: React.FC = ({ children, ...props }) => { const contract: HealthBlock = fetchContract(signer); let update; if (status == 'confirmed') { - update = await contract.mapDoctorToProvider(hcAddress, docAddress); + update = await contract.mapDoctorToProvider(hcAddress, docAddress, idx); } else { - update = await contract.declineDoctorToProviderRequest(hcAddress, docAddress); + update = await contract.declineDoctorToProviderRequest(hcAddress, docAddress, idx); } update.wait(); } catch (err: any) { - setError(`Error Loading Health Contract ${err}`); + throw new Error(err); + //setError(`Error Loading Health Contract ${err}`); } }; @@ -323,6 +335,7 @@ export const HealthProvider: React.FC = ({ children, ...props }) => { const doctors = await contract.getAllDoctorToProviderRequests( '0xb3cc507e752dcc3da1cef955b58e97ae77160103', ); + let docArr = []; for (let i = 0; i < doctors.length; i++) { let obj = { @@ -335,7 +348,8 @@ export const HealthProvider: React.FC = ({ children, ...props }) => { setDocToProviderList(docArr); } catch (err: any) { - setError(`Error Loading Health Contract ${err}`); + throw new Error(err); + //setError(`Error Loading Health Contract ${err}`); } }; @@ -352,7 +366,8 @@ export const HealthProvider: React.FC = ({ children, ...props }) => { const contract: HealthBlock = fetchContract(signer); const update = await contract.raiseDoctorToProviderRequest(hcAddress, docAddress, doctorName); } catch (err: any) { - setError(`Error Loading Health Contract ${err}`); + //setError(`Error Loading Health Contract ${err}`); + throw new Error(err); } }; diff --git a/contracts/HealthBlock.sol b/contracts/HealthBlock.sol index 23eef74..1673333 100644 --- a/contracts/HealthBlock.sol +++ b/contracts/HealthBlock.sol @@ -176,39 +176,20 @@ contract HealthBlock { function getAllDoctorsForProvider(address providerAddress) public view returns (doctor[] memory) { return providerToDoctors[providerAddress]; } - function mapDoctorToProvider(address _providerAddress, address _doctorAddress) public{ + function mapDoctorToProvider(address _providerAddress, address _doctorAddress, uint256 idx) public{ doctor storage d = doctors[_doctorAddress]; - uint8 idx =0; - bool found = false; - for(uint8 i =0;i< providerToDoctorRequests[_providerAddress].length;i++){ - if(providerToDoctorRequests[_providerAddress][i].doctorAddr == _doctorAddress){ - idx = i; - break; - found = true; - } - } - - providerToDoctorRequests[_providerAddress][idx].status = 'confirmed'; - providerToDoctors[_providerAddress].push(doctor({name:d.name,email:d.email,specialization:d.specialization,id:_doctorAddress,age:d.age})); + DoctorToProviderRequest storage request = providerToDoctorRequests[_providerAddress][idx]; + request.status="confirmed"; + providerToDoctors[_providerAddress].push(doctor({name:d.name,email:d.email,specialization:d.specialization,id:_doctorAddress,age:d.age})); } - function declineDoctorToProviderRequest(address _providerAddress, address _doctorAddress) public{ + function declineDoctorToProviderRequest(address _providerAddress, address _doctorAddress,uint256 idx) public{ doctor storage d = doctors[_doctorAddress]; - uint8 idx =0; - bool found = false; - for(uint8 i =0;i< providerToDoctorRequests[_providerAddress].length;i++){ - if(providerToDoctorRequests[_providerAddress][i].doctorAddr == _doctorAddress){ - idx = i; - break; - found = true; - } - } + DoctorToProviderRequest storage request = providerToDoctorRequests[_providerAddress][idx]; + request.status ="rejected"; - providerToDoctorRequests[_providerAddress][idx].status = 'rejected'; - - - } + } From bdfdbb4155ea282032a4d82788c4b0942ebbfcf3 Mon Sep 17 00:00:00 2001 From: Shruthi23 Date: Sun, 7 May 2023 18:12:26 -0700 Subject: [PATCH 2/6] Removed ts files --- client/src/contracts/HealthBlock.ts | 1128 ----------------- client/src/contracts/common.ts | 46 - .../factories/HealthBlock__factory.ts | 806 ------------ client/src/contracts/factories/index.ts | 4 - client/src/contracts/index.ts | 6 - 5 files changed, 1990 deletions(-) delete mode 100644 client/src/contracts/HealthBlock.ts delete mode 100644 client/src/contracts/common.ts delete mode 100644 client/src/contracts/factories/HealthBlock__factory.ts delete mode 100644 client/src/contracts/factories/index.ts delete mode 100644 client/src/contracts/index.ts diff --git a/client/src/contracts/HealthBlock.ts b/client/src/contracts/HealthBlock.ts deleted file mode 100644 index 131203a..0000000 --- a/client/src/contracts/HealthBlock.ts +++ /dev/null @@ -1,1128 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "./common"; - -export declare namespace HealthBlock { - export type RequestStruct = { - doctor: PromiseOrValue; - doctorName: PromiseOrValue; - credentialsHash: PromiseOrValue; - status: PromiseOrValue; - }; - - export type RequestStructOutput = [string, string, string, string] & { - doctor: string; - doctorName: string; - credentialsHash: string; - status: string; - }; - - export type DoctorStruct = { - name: PromiseOrValue; - age: PromiseOrValue; - email: PromiseOrValue; - specialization: PromiseOrValue; - id: PromiseOrValue; - }; - - export type DoctorStructOutput = [string, number, string, string, string] & { - name: string; - age: number; - email: string; - specialization: string; - id: string; - }; - - export type DoctorToProviderRequestStruct = { - doctorName: PromiseOrValue; - doctorAddr: PromiseOrValue; - status: PromiseOrValue; - }; - - export type DoctorToProviderRequestStructOutput = [string, string, string] & { - doctorName: string; - doctorAddr: string; - status: string; - }; -} - -export interface HealthBlockInterface extends utils.Interface { - functions: { - "patients(address)": FunctionFragment; - "providerToDoctorRequests(address,uint256)": FunctionFragment; - "providerToDoctors(address,uint256)": FunctionFragment; - "raiseRequest(string,string)": FunctionFragment; - "getRequests()": FunctionFragment; - "rejectRequest(uint256)": FunctionFragment; - "approveRequest(uint256)": FunctionFragment; - "getPatientInfo()": FunctionFragment; - "getPatientInfoAll(address)": FunctionFragment; - "registerPatient(string,uint8,string)": FunctionFragment; - "getDoctorInfo()": FunctionFragment; - "getDoctorInfoAll(address)": FunctionFragment; - "registerDoctor(string,uint8,string,string)": FunctionFragment; - "getHCProviderInfo()": FunctionFragment; - "getHCProviderInfoAll(address)": FunctionFragment; - "registerHCProvider(string,string,string,string)": FunctionFragment; - "getAllDoctorsForProvider(address)": FunctionFragment; - "mapDoctorToProvider(address,address,uint256)": FunctionFragment; - "declineDoctorToProviderRequest(address,address,uint256)": FunctionFragment; - "raiseDoctorToProviderRequest(address,address,string)": FunctionFragment; - "getAllDoctorToProviderRequests(address)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "patients" - | "providerToDoctorRequests" - | "providerToDoctors" - | "raiseRequest" - | "getRequests" - | "rejectRequest" - | "approveRequest" - | "getPatientInfo" - | "getPatientInfoAll" - | "registerPatient" - | "getDoctorInfo" - | "getDoctorInfoAll" - | "registerDoctor" - | "getHCProviderInfo" - | "getHCProviderInfoAll" - | "registerHCProvider" - | "getAllDoctorsForProvider" - | "mapDoctorToProvider" - | "declineDoctorToProviderRequest" - | "raiseDoctorToProviderRequest" - | "getAllDoctorToProviderRequests" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "patients", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "providerToDoctorRequests", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "providerToDoctors", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "raiseRequest", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getRequests", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "rejectRequest", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approveRequest", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getPatientInfo", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getPatientInfoAll", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "registerPatient", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getDoctorInfo", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getDoctorInfoAll", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "registerDoctor", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getHCProviderInfo", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getHCProviderInfoAll", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "registerHCProvider", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getAllDoctorsForProvider", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "mapDoctorToProvider", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "declineDoctorToProviderRequest", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "raiseDoctorToProviderRequest", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getAllDoctorToProviderRequests", - values: [PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "patients", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "providerToDoctorRequests", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "providerToDoctors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "raiseRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getRequests", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rejectRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "approveRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getPatientInfo", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getPatientInfoAll", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "registerPatient", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDoctorInfo", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDoctorInfoAll", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "registerDoctor", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getHCProviderInfo", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getHCProviderInfoAll", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "registerHCProvider", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAllDoctorsForProvider", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mapDoctorToProvider", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "declineDoctorToProviderRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "raiseDoctorToProviderRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAllDoctorToProviderRequests", - data: BytesLike - ): Result; - - events: { - "DoctorRequestRaised(address,string,string)": EventFragment; - "NDoctor(address,string)": EventFragment; - "NHCProvider(address,string)": EventFragment; - "NPatient(address,string)": EventFragment; - "RequestApproved(address,address,uint256)": EventFragment; - "RequestRejected(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "DoctorRequestRaised"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NDoctor"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NHCProvider"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NPatient"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RequestApproved"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RequestRejected"): EventFragment; -} - -export interface DoctorRequestRaisedEventObject { - doctor: string; - doctorName: string; - credentialsHash: string; -} -export type DoctorRequestRaisedEvent = TypedEvent< - [string, string, string], - DoctorRequestRaisedEventObject ->; - -export type DoctorRequestRaisedEventFilter = - TypedEventFilter; - -export interface NDoctorEventObject { - _from: string; - _name: string; -} -export type NDoctorEvent = TypedEvent<[string, string], NDoctorEventObject>; - -export type NDoctorEventFilter = TypedEventFilter; - -export interface NHCProviderEventObject { - _from: string; - _name: string; -} -export type NHCProviderEvent = TypedEvent< - [string, string], - NHCProviderEventObject ->; - -export type NHCProviderEventFilter = TypedEventFilter; - -export interface NPatientEventObject { - _from: string; - _name: string; -} -export type NPatientEvent = TypedEvent<[string, string], NPatientEventObject>; - -export type NPatientEventFilter = TypedEventFilter; - -export interface RequestApprovedEventObject { - doctor: string; - provider: string; - requestId: BigNumber; -} -export type RequestApprovedEvent = TypedEvent< - [string, string, BigNumber], - RequestApprovedEventObject ->; - -export type RequestApprovedEventFilter = TypedEventFilter; - -export interface RequestRejectedEventObject { - doctor: string; - provider: string; - requestId: BigNumber; -} -export type RequestRejectedEvent = TypedEvent< - [string, string, BigNumber], - RequestRejectedEventObject ->; - -export type RequestRejectedEventFilter = TypedEventFilter; - -export interface HealthBlock extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: HealthBlockInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string] & { - name: string; - age: number; - email: string; - id: string; - } - >; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, string, string] & { - doctorName: string; - doctorAddr: string; - status: string; - } - >; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string, string] & { - name: string; - age: number; - email: string; - specialization: string; - id: string; - } - >; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRequests( - overrides?: CallOverrides - ): Promise<[HealthBlock.RequestStructOutput[]]>; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getPatientInfo( - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getDoctorInfo( - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getHCProviderInfo( - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[HealthBlock.DoctorStructOutput[]]>; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[HealthBlock.DoctorToProviderRequestStructOutput[]]>; - }; - - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string] & { - name: string; - age: number; - email: string; - id: string; - } - >; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, string, string] & { - doctorName: string; - doctorAddr: string; - status: string; - } - >; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string, string] & { - name: string; - age: number; - email: string; - specialization: string; - id: string; - } - >; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRequests( - overrides?: CallOverrides - ): Promise; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getPatientInfo(overrides?: CallOverrides): Promise<[string, number, string]>; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getDoctorInfo( - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getHCProviderInfo( - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - callStatic: { - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string] & { - name: string; - age: number; - email: string; - id: string; - } - >; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, string, string] & { - doctorName: string; - doctorAddr: string; - status: string; - } - >; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string, string] & { - name: string; - age: number; - email: string; - specialization: string; - id: string; - } - >; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getRequests( - overrides?: CallOverrides - ): Promise; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getPatientInfo( - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDoctorInfo( - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getHCProviderInfo( - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "DoctorRequestRaised(address,string,string)"( - doctor?: PromiseOrValue | null, - doctorName?: PromiseOrValue | null, - credentialsHash?: null - ): DoctorRequestRaisedEventFilter; - DoctorRequestRaised( - doctor?: PromiseOrValue | null, - doctorName?: PromiseOrValue | null, - credentialsHash?: null - ): DoctorRequestRaisedEventFilter; - - "NDoctor(address,string)"( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NDoctorEventFilter; - NDoctor( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NDoctorEventFilter; - - "NHCProvider(address,string)"( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NHCProviderEventFilter; - NHCProvider( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NHCProviderEventFilter; - - "NPatient(address,string)"( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NPatientEventFilter; - NPatient( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NPatientEventFilter; - - "RequestApproved(address,address,uint256)"( - doctor?: PromiseOrValue | null, - provider?: PromiseOrValue | null, - requestId?: PromiseOrValue | null - ): RequestApprovedEventFilter; - RequestApproved( - doctor?: PromiseOrValue | null, - provider?: PromiseOrValue | null, - requestId?: PromiseOrValue | null - ): RequestApprovedEventFilter; - - "RequestRejected(address,address,uint256)"( - doctor?: PromiseOrValue | null, - provider?: PromiseOrValue | null, - requestId?: PromiseOrValue | null - ): RequestRejectedEventFilter; - RequestRejected( - doctor?: PromiseOrValue | null, - provider?: PromiseOrValue | null, - requestId?: PromiseOrValue | null - ): RequestRejectedEventFilter; - }; - - estimateGas: { - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRequests(overrides?: CallOverrides): Promise; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getPatientInfo(overrides?: CallOverrides): Promise; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getDoctorInfo(overrides?: CallOverrides): Promise; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getHCProviderInfo(overrides?: CallOverrides): Promise; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - populateTransaction: { - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRequests(overrides?: CallOverrides): Promise; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getPatientInfo(overrides?: CallOverrides): Promise; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getDoctorInfo(overrides?: CallOverrides): Promise; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getHCProviderInfo(overrides?: CallOverrides): Promise; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; -} diff --git a/client/src/contracts/common.ts b/client/src/contracts/common.ts deleted file mode 100644 index 4c90b08..0000000 --- a/client/src/contracts/common.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { Listener } from "@ethersproject/providers"; -import type { Event, EventFilter } from "ethers"; - -export interface TypedEvent< - TArgsArray extends Array = any, - TArgsObject = any -> extends Event { - args: TArgsArray & TArgsObject; -} - -export interface TypedEventFilter<_TEvent extends TypedEvent> - extends EventFilter {} - -export interface TypedListener { - (...listenerArg: [...__TypechainArgsArray, TEvent]): void; -} - -type __TypechainArgsArray = T extends TypedEvent ? U : never; - -export interface OnEvent { - ( - eventFilter: TypedEventFilter, - listener: TypedListener - ): TRes; - (eventName: string, listener: Listener): TRes; -} - -export type MinEthersFactory = { - deploy(...a: ARGS[]): Promise; -}; - -export type GetContractTypeFromFactory = F extends MinEthersFactory< - infer C, - any -> - ? C - : never; - -export type GetARGsTypeFromFactory = F extends MinEthersFactory - ? Parameters - : never; - -export type PromiseOrValue = T | Promise; diff --git a/client/src/contracts/factories/HealthBlock__factory.ts b/client/src/contracts/factories/HealthBlock__factory.ts deleted file mode 100644 index 52d2f71..0000000 --- a/client/src/contracts/factories/HealthBlock__factory.ts +++ /dev/null @@ -1,806 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../common"; -import type { HealthBlock, HealthBlockInterface } from "../HealthBlock"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "doctor", - type: "address", - }, - { - indexed: true, - internalType: "string", - name: "doctorName", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "credentialsHash", - type: "string", - }, - ], - name: "DoctorRequestRaised", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", - type: "address", - }, - { - indexed: true, - internalType: "string", - name: "_name", - type: "string", - }, - ], - name: "NDoctor", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", - type: "address", - }, - { - indexed: true, - internalType: "string", - name: "_name", - type: "string", - }, - ], - name: "NHCProvider", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", - type: "address", - }, - { - indexed: true, - internalType: "string", - name: "_name", - type: "string", - }, - ], - name: "NPatient", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "doctor", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "requestId", - type: "uint256", - }, - ], - name: "RequestApproved", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "doctor", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "requestId", - type: "uint256", - }, - ], - name: "RequestRejected", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "patients", - outputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint8", - name: "age", - type: "uint8", - }, - { - internalType: "string", - name: "email", - type: "string", - }, - { - internalType: "address", - name: "id", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "providerToDoctorRequests", - outputs: [ - { - internalType: "string", - name: "doctorName", - type: "string", - }, - { - internalType: "address", - name: "doctorAddr", - type: "address", - }, - { - internalType: "string", - name: "status", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "providerToDoctors", - outputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint8", - name: "age", - type: "uint8", - }, - { - internalType: "string", - name: "email", - type: "string", - }, - { - internalType: "string", - name: "specialization", - type: "string", - }, - { - internalType: "address", - name: "id", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "string", - name: "doctorName", - type: "string", - }, - { - internalType: "string", - name: "credentialsHash", - type: "string", - }, - ], - name: "raiseRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getRequests", - outputs: [ - { - components: [ - { - internalType: "address", - name: "doctor", - type: "address", - }, - { - internalType: "string", - name: "doctorName", - type: "string", - }, - { - internalType: "string", - name: "credentialsHash", - type: "string", - }, - { - internalType: "string", - name: "status", - type: "string", - }, - ], - internalType: "struct HealthBlock.Request[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "uint256", - name: "requestId", - type: "uint256", - }, - ], - name: "rejectRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "requestId", - type: "uint256", - }, - ], - name: "approveRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getPatientInfo", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "uint8", - name: "", - type: "uint8", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "address", - name: "_address", - type: "address", - }, - ], - name: "getPatientInfoAll", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "uint8", - name: "", - type: "uint8", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "string", - name: "_name", - type: "string", - }, - { - internalType: "uint8", - name: "_age", - type: "uint8", - }, - { - internalType: "string", - name: "_email", - type: "string", - }, - ], - name: "registerPatient", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getDoctorInfo", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "uint8", - name: "", - type: "uint8", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "address", - name: "_address", - type: "address", - }, - ], - name: "getDoctorInfoAll", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "uint8", - name: "", - type: "uint8", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "string", - name: "_name", - type: "string", - }, - { - internalType: "uint8", - name: "_age", - type: "uint8", - }, - { - internalType: "string", - name: "_email", - type: "string", - }, - { - internalType: "string", - name: "_specialization", - type: "string", - }, - ], - name: "registerDoctor", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getHCProviderInfo", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "address", - name: "_address", - type: "address", - }, - ], - name: "getHCProviderInfoAll", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "string", - name: "_name", - type: "string", - }, - { - internalType: "string", - name: "_email", - type: "string", - }, - { - internalType: "string", - name: "_address", - type: "string", - }, - { - internalType: "string", - name: "_phone", - type: "string", - }, - ], - name: "registerHCProvider", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "providerAddress", - type: "address", - }, - ], - name: "getAllDoctorsForProvider", - outputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint8", - name: "age", - type: "uint8", - }, - { - internalType: "string", - name: "email", - type: "string", - }, - { - internalType: "string", - name: "specialization", - type: "string", - }, - { - internalType: "address", - name: "id", - type: "address", - }, - ], - internalType: "struct HealthBlock.doctor[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, - { - inputs: [ - { - internalType: "address", - name: "_providerAddress", - type: "address", - }, - { - internalType: "address", - name: "_doctorAddress", - type: "address", - }, - { - internalType: "uint256", - name: "idx", - type: "uint256", - }, - ], - name: "mapDoctorToProvider", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_providerAddress", - type: "address", - }, - { - internalType: "address", - name: "_doctorAddress", - type: "address", - }, - { - internalType: "uint256", - name: "idx", - type: "uint256", - }, - ], - name: "declineDoctorToProviderRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_providerAddress", - type: "address", - }, - { - internalType: "address", - name: "_doctorAddress", - type: "address", - }, - { - internalType: "string", - name: "doctorName", - type: "string", - }, - ], - name: "raiseDoctorToProviderRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_hcaddress", - type: "address", - }, - ], - name: "getAllDoctorToProviderRequests", - outputs: [ - { - components: [ - { - internalType: "string", - name: "doctorName", - type: "string", - }, - { - internalType: "address", - name: "doctorAddr", - type: "address", - }, - { - internalType: "string", - name: "status", - type: "string", - }, - ], - internalType: "struct HealthBlock.DoctorToProviderRequest[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - constant: true, - }, -]; - -const _bytecode = - "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614640806100606000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063939686dc116100b8578063bc4fe4021161007c578063bc4fe4021461035d578063c5b0aab014610379578063cc063706146103ac578063d1d8b266146103de578063d7d1bbdb146103fa578063e1e36ab91461041657610137565b8063939686dc146102b6578063a9b467ee146102d2578063afc3b5c414610304578063b2d258ff14610320578063b380f5c61461033c57610137565b80635df122e1116100ff5780635df122e1146101f75780636d36f7be146102275780637521eca11461025b5780638813ce1214610277578063916922c41461029557610137565b80630869cfbc1461013c57806310b500cc1461016f5780631c2972051461019f5780632d7788db146101bb578063326df664146101d7575b600080fd5b61015660048036038101906101519190613518565b610449565b6040516101669493929190613600565b60405180910390f35b61018960048036038101906101849190613518565b6105b6565b60405161019691906137c5565b60405180910390f35b6101b960048036038101906101b49190613948565b6107ce565b005b6101d560048036038101906101d09190613a09565b610a07565b005b6101df610c03565b6040516101ee93929190613a36565b60405180910390f35b610211600480360381019061020c9190613518565b610e2d565b60405161021e9190613bd0565b60405180910390f35b610241600480360381019061023c9190613bf2565b6110f4565b604051610252959493929190613c32565b60405180910390f35b61027560048036038101906102709190613c9a565b61130c565b005b61027f611709565b60405161028c9190613e20565b60405180910390f35b61029d611a60565b6040516102ad9493929190613e42565b60405180910390f35b6102d060048036038101906102cb9190613ea3565b611d9b565b005b6102ec60048036038101906102e79190613518565b611ee9565b6040516102fb93929190613a36565b60405180910390f35b61031e60048036038101906103199190613f12565b612072565b005b61033a60048036038101906103359190613f8a565b612260565b005b6103446125ae565b6040516103549493929190614045565b60405180910390f35b6103776004803603810190610372919061409f565b61286c565b005b610393600480360381019061038e9190613518565b612b8a565b6040516103a39493929190613e42565b60405180910390f35b6103c660048036038101906103c19190613bf2565b612e23565b6040516103d593929190614176565b60405180910390f35b6103f860048036038101906103f39190613c9a565b612f9a565b005b610414600480360381019061040f9190613a09565b61308e565b005b610430600480360381019061042b9190613518565b61328a565b6040516104409493929190614045565b60405180910390f35b600460205280600052604060002060009150905080600001805461046c906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610498906141ea565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050908060010160009054906101000a900460ff169080600201805461050d906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610539906141ea565b80156105865780601f1061055b57610100808354040283529160200191610586565b820191906000526020600020905b81548152906001019060200180831161056957829003601f168201915b5050505050908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156107c3578382906000526020600020906003020160405180606001604052908160008201805461064a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610676906141ea565b80156106c35780601f10610698576101008083540402835291602001916106c3565b820191906000526020600020905b8154815290600101906020018083116106a657829003601f168201915b505050505081526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610732906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461075e906141ea565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b50505050508152505081526020019060010190610617565b505050509050919050565b6040516020016107dd9061424c565b60405160208183030381529060405280519060200120836040516020016108049190614292565b604051602081830303815290604052805190602001200361082457600080fd5b6040516020016108339061424c565b604051602081830303815290604052805190602001208160405160200161085a9190614292565b604051602081830303815290604052805190602001200361087a57600080fd5b60008260ff16118015610890575060648260ff16105b61089957600080fd5b60405180608001604052808481526020018360ff1681526020018281526020013373ffffffffffffffffffffffffffffffffffffffff16815250600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816109279190614455565b5060208201518160010160006101000a81548160ff021916908360ff160217905550604082015181600201908161095e9190614455565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050826040516109b79190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610b0957610b086145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f72656a6563746564000000000000000000000000000000000000000000000000815250816003019081610b5f9190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4d2b09745b50f68da85b0b25854d46c2b85b43dd6f04ba6f3f503ff878bf4ae560405160405180910390a45050565b606060006060336000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611610caa57600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054610d13906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3f906141ea565b8015610d8c5780601f10610d6157610100808354040283529160200191610d8c565b820191906000526020600020905b815481529060010190602001808311610d6f57829003601f168201915b50505050509250808054610d9f906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcb906141ea565b8015610e185780601f10610ded57610100808354040283529160200191610e18565b820191906000526020600020905b815481529060010190602001808311610dfb57829003601f168201915b50505050509050955095509550505050909192565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156110e957838290600052602060002090600502016040518060a0016040529081600082018054610ec1906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610eed906141ea565b8015610f3a5780601f10610f0f57610100808354040283529160200191610f3a565b820191906000526020600020905b815481529060010190602001808311610f1d57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff168152602001600282018054610f70906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9c906141ea565b8015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b50505050508152602001600382018054611002906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461102e906141ea565b801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190610e8e565b505050509050919050565b6002602052816000526040600020818154811061111057600080fd5b906000526020600020906005020160009150915050806000018054611134906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611160906141ea565b80156111ad5780601f10611182576101008083540402835291602001916111ad565b820191906000526020600020905b81548152906001019060200180831161119057829003601f168201915b5050505050908060010160009054906101000a900460ff16908060020180546111d5906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611201906141ea565b801561124e5780601f106112235761010080835404028352916020019161124e565b820191906000526020600020905b81548152906001019060200180831161123157829003601f168201915b505050505090806003018054611263906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461128f906141ea565b80156112dc5780601f106112b1576101008083540402835291602001916112dc565b820191906000526020600020905b8154815290600101906020018083116112bf57829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106113a2576113a16145b9565b5b906000526020600020906003020190506040518060400160405280600981526020017f636f6e6669726d656400000000000000000000000000000000000000000000008152508160020190816113f89190614455565b50600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405280846000018054611452906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461147e906141ea565b80156114cb5780601f106114a0576101008083540402835291602001916114cb565b820191906000526020600020905b8154815290600101906020018083116114ae57829003601f168201915b505050505081526020018460010160009054906101000a900460ff1660ff1681526020018460020180546114fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461152a906141ea565b80156115775780601f1061154c57610100808354040283529160200191611577565b820191906000526020600020905b81548152906001019060200180831161155a57829003601f168201915b50505050508152602001846003018054611590906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546115bc906141ea565b80156116095780601f106115de57610100808354040283529160200191611609565b820191906000526020600020905b8154815290600101906020018083116115ec57829003601f168201915b505050505081526020018673ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000209060050201600090919091909150600082015181600001908161166b9190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816116a29190614455565b5060608201518160030190816116b89190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179090614599565b60405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611a5757838290600052602060002090600402016040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180546118a2906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546118ce906141ea565b801561191b5780601f106118f05761010080835404028352916020019161191b565b820191906000526020600020905b8154815290600101906020018083116118fe57829003601f168201915b50505050508152602001600282018054611934906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611960906141ea565b80156119ad5780601f10611982576101008083540402835291602001916119ad565b820191906000526020600020905b81548152906001019060200180831161199057829003601f168201915b505050505081526020016003820180546119c6906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546119f2906141ea565b8015611a3f5780601f10611a1457610100808354040283529160200191611a3f565b820191906000526020600020905b815481529060010190602001808311611a2257829003601f168201915b50505050508152505081526020019060010190611819565b50505050905090565b606080606080336000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611611b0757600080fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054611b66906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611b92906141ea565b8015611bdf5780601f10611bb457610100808354040283529160200191611bdf565b820191906000526020600020905b815481529060010190602001808311611bc257829003601f168201915b50505050509350828054611bf2906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e906141ea565b8015611c6b5780601f10611c4057610100808354040283529160200191611c6b565b820191906000526020600020905b815481529060010190602001808311611c4e57829003601f168201915b50505050509250818054611c7e906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611caa906141ea565b8015611cf75780601f10611ccc57610100808354040283529160200191611cf7565b820191906000526020600020905b815481529060010190602001808311611cda57829003601f168201915b50505050509150808054611d0a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611d36906141ea565b8015611d835780601f10611d5857610100808354040283529160200191611d83565b820191906000526020600020905b815481529060010190602001808311611d6657829003601f168201915b50505050509050965096509650965050505090919293565b600060405180606001604052808381526020018473ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000019081611e839190614455565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019081611ee09190614455565b50505050505050565b6060600060606000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054611f58906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611f84906141ea565b8015611fd15780601f10611fa657610100808354040283529160200191611fd1565b820191906000526020600020905b815481529060010190602001808311611fb457829003601f168201915b50505050509250808054611fe4906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612010906141ea565b801561205d5780601f106120325761010080835404028352916020019161205d565b820191906000526020600020905b81548152906001019060200180831161204057829003601f168201915b50505050509050935093509350509193909250565b600060405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816121c89190614455565b5060408201518160020190816121de9190614455565b5060608201518160030190816121f49190614455565b505050826040516122059190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167f13bea7f2b146e27ade33081397e247a39c6fa801e1c40c9d03fd9d808e3bdfcd8460405161225391906145e8565b60405180910390a3505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016122b29061424c565b60405160208183030381529060405280519060200120856040516020016122d99190614292565b60405160208183030381529060405280519060200120036122f957600080fd5b6040516020016123089061424c565b604051602081830303815290604052805190602001208360405160200161232f9190614292565b604051602081830303815290604052805190602001200361234f57600080fd5b60405160200161235e9061424c565b60405160208183030381529060405280519060200120826040516020016123859190614292565b60405160208183030381529060405280519060200120036123a557600080fd5b60008460ff161180156123bb575060648460ff16105b6123c457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16111561242257600080fd5b6040518060a001604052808681526020018560ff1681526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816124b69190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816124ed9190614455565b5060608201518160030190816125039190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508460405161255c9190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a35050505050565b60606000606080336000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161161265657600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546126c3906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546126ef906141ea565b801561273c5780601f106127115761010080835404028352916020019161273c565b820191906000526020600020905b81548152906001019060200180831161271f57829003601f168201915b5050505050935081805461274f906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461277b906141ea565b80156127c85780601f1061279d576101008083540402835291602001916127c8565b820191906000526020600020905b8154815290600101906020018083116127ab57829003601f168201915b505050505091508080546127db906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612807906141ea565b80156128545780601f1061282957610100808354040283529160200191612854565b820191906000526020600020905b81548152906001019060200180831161283757829003601f168201915b50505050509050965096509650965050505090919293565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016128be9061424c565b60405160208183030381529060405280519060200120856040516020016128e59190614292565b604051602081830303815290604052805190602001200361290557600080fd5b6040516020016129149061424c565b604051602081830303815290604052805190602001208460405160200161293b9190614292565b604051602081830303815290604052805190602001200361295b57600080fd5b60405160200161296a9061424c565b60405160208183030381529060405280519060200120836040516020016129919190614292565b60405160208183030381529060405280519060200120036129b157600080fd5b6040516020016129c09061424c565b60405160208183030381529060405280519060200120826040516020016129e79190614292565b6040516020818303038152906040528051906020012003612a0757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115612a6557600080fd5b6040518060a001604052808681526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000019081612af69190614455565b506020820151816001019081612b0c9190614455565b506040820151816002019081612b229190614455565b506060820151816003019081612b389190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050505050505050565b6060806060806000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054612bef906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612c1b906141ea565b8015612c685780601f10612c3d57610100808354040283529160200191612c68565b820191906000526020600020905b815481529060010190602001808311612c4b57829003601f168201915b50505050509350828054612c7b906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612ca7906141ea565b8015612cf45780601f10612cc957610100808354040283529160200191612cf4565b820191906000526020600020905b815481529060010190602001808311612cd757829003601f168201915b50505050509250818054612d07906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612d33906141ea565b8015612d805780601f10612d5557610100808354040283529160200191612d80565b820191906000526020600020905b815481529060010190602001808311612d6357829003601f168201915b50505050509150808054612d93906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612dbf906141ea565b8015612e0c5780601f10612de157610100808354040283529160200191612e0c565b820191906000526020600020905b815481529060010190602001808311612def57829003601f168201915b505050505090509450945094509450509193509193565b60036020528160005260406000208181548110612e3f57600080fd5b906000526020600020906003020160009150915050806000018054612e63906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8f906141ea565b8015612edc5780601f10612eb157610100808354040283529160200191612edc565b820191906000526020600020905b815481529060010190602001808311612ebf57829003601f168201915b5050505050908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054612f17906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612f43906141ea565b8015612f905780601f10612f6557610100808354040283529160200191612f90565b820191906000526020600020905b815481529060010190602001808311612f7357829003601f168201915b5050505050905083565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106130305761302f6145b9565b5b906000526020600020906003020190506040518060400160405280600881526020017f72656a65637465640000000000000000000000000000000000000000000000008152508160020190816130869190614455565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461311c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311390614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106131905761318f6145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f617070726f7665640000000000000000000000000000000000000000000000008152508160030190816131e69190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd9a9c1b40a747e79bd4c1aeabd897bfd5b3679e58fcdcd20dd7af4a8274196bc60405160405180910390a45050565b606060006060806000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546132fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461332a906141ea565b80156133775780601f1061334c57610100808354040283529160200191613377565b820191906000526020600020905b81548152906001019060200180831161335a57829003601f168201915b5050505050935081805461338a906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546133b6906141ea565b80156134035780601f106133d857610100808354040283529160200191613403565b820191906000526020600020905b8154815290600101906020018083116133e657829003601f168201915b50505050509150808054613416906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054613442906141ea565b801561348f5780601f106134645761010080835404028352916020019161348f565b820191906000526020600020905b81548152906001019060200180831161347257829003601f168201915b505050505090509450945094509450509193509193565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134e5826134ba565b9050919050565b6134f5816134da565b811461350057600080fd5b50565b600081359050613512816134ec565b92915050565b60006020828403121561352e5761352d6134b0565b5b600061353c84828501613503565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561357f578082015181840152602081019050613564565b60008484015250505050565b6000601f19601f8301169050919050565b60006135a782613545565b6135b18185613550565b93506135c1818560208601613561565b6135ca8161358b565b840191505092915050565b600060ff82169050919050565b6135eb816135d5565b82525050565b6135fa816134da565b82525050565b6000608082019050818103600083015261361a818761359c565b905061362960208301866135e2565b818103604083015261363b818561359c565b905061364a60608301846135f1565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061369b82613545565b6136a5818561367f565b93506136b5818560208601613561565b6136be8161358b565b840191505092915050565b6136d2816134da565b82525050565b600060608301600083015184820360008601526136f58282613690565b915050602083015161370a60208601826136c9565b50604083015184820360408601526137228282613690565b9150508091505092915050565b600061373b83836136d8565b905092915050565b6000602082019050919050565b600061375b82613653565b613765818561365e565b9350836020820285016137778561366f565b8060005b858110156137b35784840389528151613794858261372f565b945061379f83613743565b925060208a0199505060018101905061377b565b50829750879550505050505092915050565b600060208201905081810360008301526137df8184613750565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138298261358b565b810181811067ffffffffffffffff82111715613848576138476137f1565b5b80604052505050565b600061385b6134a6565b90506138678282613820565b919050565b600067ffffffffffffffff821115613887576138866137f1565b5b6138908261358b565b9050602081019050919050565b82818337600083830152505050565b60006138bf6138ba8461386c565b613851565b9050828152602081018484840111156138db576138da6137ec565b5b6138e684828561389d565b509392505050565b600082601f830112613903576139026137e7565b5b81356139138482602086016138ac565b91505092915050565b613925816135d5565b811461393057600080fd5b50565b6000813590506139428161391c565b92915050565b600080600060608486031215613961576139606134b0565b5b600084013567ffffffffffffffff81111561397f5761397e6134b5565b5b61398b868287016138ee565b935050602061399c86828701613933565b925050604084013567ffffffffffffffff8111156139bd576139bc6134b5565b5b6139c9868287016138ee565b9150509250925092565b6000819050919050565b6139e6816139d3565b81146139f157600080fd5b50565b600081359050613a03816139dd565b92915050565b600060208284031215613a1f57613a1e6134b0565b5b6000613a2d848285016139f4565b91505092915050565b60006060820190508181036000830152613a50818661359c565b9050613a5f60208301856135e2565b8181036040830152613a71818461359c565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ab0816135d5565b82525050565b600060a0830160008301518482036000860152613ad38282613690565b9150506020830151613ae86020860182613aa7565b5060408301518482036040860152613b008282613690565b91505060608301518482036060860152613b1a8282613690565b9150506080830151613b2f60808601826136c9565b508091505092915050565b6000613b468383613ab6565b905092915050565b6000602082019050919050565b6000613b6682613a7b565b613b708185613a86565b935083602082028501613b8285613a97565b8060005b85811015613bbe5784840389528151613b9f8582613b3a565b9450613baa83613b4e565b925060208a01995050600181019050613b86565b50829750879550505050505092915050565b60006020820190508181036000830152613bea8184613b5b565b905092915050565b60008060408385031215613c0957613c086134b0565b5b6000613c1785828601613503565b9250506020613c28858286016139f4565b9150509250929050565b600060a0820190508181036000830152613c4c818861359c565b9050613c5b60208301876135e2565b8181036040830152613c6d818661359c565b90508181036060830152613c81818561359c565b9050613c9060808301846135f1565b9695505050505050565b600080600060608486031215613cb357613cb26134b0565b5b6000613cc186828701613503565b9350506020613cd286828701613503565b9250506040613ce3868287016139f4565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000608083016000830151613d3160008601826136c9565b5060208301518482036020860152613d498282613690565b91505060408301518482036040860152613d638282613690565b91505060608301518482036060860152613d7d8282613690565b9150508091505092915050565b6000613d968383613d19565b905092915050565b6000602082019050919050565b6000613db682613ced565b613dc08185613cf8565b935083602082028501613dd285613d09565b8060005b85811015613e0e5784840389528151613def8582613d8a565b9450613dfa83613d9e565b925060208a01995050600181019050613dd6565b50829750879550505050505092915050565b60006020820190508181036000830152613e3a8184613dab565b905092915050565b60006080820190508181036000830152613e5c818761359c565b90508181036020830152613e70818661359c565b90508181036040830152613e84818561359c565b90508181036060830152613e98818461359c565b905095945050505050565b600080600060608486031215613ebc57613ebb6134b0565b5b6000613eca86828701613503565b9350506020613edb86828701613503565b925050604084013567ffffffffffffffff811115613efc57613efb6134b5565b5b613f08868287016138ee565b9150509250925092565b60008060408385031215613f2957613f286134b0565b5b600083013567ffffffffffffffff811115613f4757613f466134b5565b5b613f53858286016138ee565b925050602083013567ffffffffffffffff811115613f7457613f736134b5565b5b613f80858286016138ee565b9150509250929050565b60008060008060808587031215613fa457613fa36134b0565b5b600085013567ffffffffffffffff811115613fc257613fc16134b5565b5b613fce878288016138ee565b9450506020613fdf87828801613933565b935050604085013567ffffffffffffffff81111561400057613fff6134b5565b5b61400c878288016138ee565b925050606085013567ffffffffffffffff81111561402d5761402c6134b5565b5b614039878288016138ee565b91505092959194509250565b6000608082019050818103600083015261405f818761359c565b905061406e60208301866135e2565b8181036040830152614080818561359c565b90508181036060830152614094818461359c565b905095945050505050565b600080600080608085870312156140b9576140b86134b0565b5b600085013567ffffffffffffffff8111156140d7576140d66134b5565b5b6140e3878288016138ee565b945050602085013567ffffffffffffffff811115614104576141036134b5565b5b614110878288016138ee565b935050604085013567ffffffffffffffff811115614131576141306134b5565b5b61413d878288016138ee565b925050606085013567ffffffffffffffff81111561415e5761415d6134b5565b5b61416a878288016138ee565b91505092959194509250565b60006060820190508181036000830152614190818661359c565b905061419f60208301856135f1565b81810360408301526141b1818461359c565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061420257607f821691505b602082108103614215576142146141bb565b5b50919050565b600081905092915050565b50565b600061423660008361421b565b915061424182614226565b600082019050919050565b600061425782614229565b9150819050919050565b600061426c82613545565b614276818561421b565b9350614286818560208601613561565b80840191505092915050565b600061429e8284614261565b915081905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261430b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826142ce565b61431586836142ce565b95508019841693508086168417925050509392505050565b6000819050919050565b600061435261434d614348846139d3565b61432d565b6139d3565b9050919050565b6000819050919050565b61436c83614337565b61438061437882614359565b8484546142db565b825550505050565b600090565b614395614388565b6143a0818484614363565b505050565b5b818110156143c4576143b960008261438d565b6001810190506143a6565b5050565b601f821115614409576143da816142a9565b6143e3846142be565b810160208510156143f2578190505b6144066143fe856142be565b8301826143a5565b50505b505050565b600082821c905092915050565b600061442c6000198460080261440e565b1980831691505092915050565b6000614445838361441b565b9150826002028217905092915050565b61445e82613545565b67ffffffffffffffff811115614477576144766137f1565b5b61448182546141ea565b61448c8282856143c8565b600060209050601f8311600181146144bf57600084156144ad578287015190505b6144b78582614439565b86555061451f565b601f1984166144cd866142a9565b60005b828110156144f5578489015182556001820191506020850194506020810190506144d0565b86831015614512578489015161450e601f89168261441b565b8355505b6001600288020188555050505b505050505050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000614583602183613550565b915061458e82614527565b604082019050919050565b600060208201905081810360008301526145b281614576565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020820190508181036000830152614602818461359c565b90509291505056fea2646970667358221220c1b2ae848c7babf4c77ed1faeecb417b032136e191fa5cca6754b17c1620030064736f6c63430008110033"; - -type HealthBlockConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: HealthBlockConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class HealthBlock__factory extends ContractFactory { - constructor(...args: HealthBlockConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): HealthBlock { - return super.attach(address) as HealthBlock; - } - override connect(signer: Signer): HealthBlock__factory { - return super.connect(signer) as HealthBlock__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): HealthBlockInterface { - return new utils.Interface(_abi) as HealthBlockInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): HealthBlock { - return new Contract(address, _abi, signerOrProvider) as HealthBlock; - } -} diff --git a/client/src/contracts/factories/index.ts b/client/src/contracts/factories/index.ts deleted file mode 100644 index 085d713..0000000 --- a/client/src/contracts/factories/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { HealthBlock__factory } from "./HealthBlock__factory"; diff --git a/client/src/contracts/index.ts b/client/src/contracts/index.ts deleted file mode 100644 index 28a0273..0000000 --- a/client/src/contracts/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { HealthBlock } from "./HealthBlock"; -export * as factories from "./factories"; -export { HealthBlock__factory } from "./factories/HealthBlock__factory"; From 6405d621adc55c87665ed4a89fec8da0dda7ee6f Mon Sep 17 00:00:00 2001 From: Shruthi23 Date: Sun, 7 May 2023 18:12:56 -0700 Subject: [PATCH 3/6] Regenrated contract files --- client/src/contracts/HealthBlock.ts | 1128 +++++++++++++++++ client/src/contracts/common.ts | 46 + .../factories/HealthBlock__factory.ts | 794 ++++++++++++ client/src/contracts/factories/index.ts | 4 + client/src/contracts/index.ts | 6 + 5 files changed, 1978 insertions(+) create mode 100644 client/src/contracts/HealthBlock.ts create mode 100644 client/src/contracts/common.ts create mode 100644 client/src/contracts/factories/HealthBlock__factory.ts create mode 100644 client/src/contracts/factories/index.ts create mode 100644 client/src/contracts/index.ts diff --git a/client/src/contracts/HealthBlock.ts b/client/src/contracts/HealthBlock.ts new file mode 100644 index 0000000..131203a --- /dev/null +++ b/client/src/contracts/HealthBlock.ts @@ -0,0 +1,1128 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import type { + FunctionFragment, + Result, + EventFragment, +} from "@ethersproject/abi"; +import type { Listener, Provider } from "@ethersproject/providers"; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, + PromiseOrValue, +} from "./common"; + +export declare namespace HealthBlock { + export type RequestStruct = { + doctor: PromiseOrValue; + doctorName: PromiseOrValue; + credentialsHash: PromiseOrValue; + status: PromiseOrValue; + }; + + export type RequestStructOutput = [string, string, string, string] & { + doctor: string; + doctorName: string; + credentialsHash: string; + status: string; + }; + + export type DoctorStruct = { + name: PromiseOrValue; + age: PromiseOrValue; + email: PromiseOrValue; + specialization: PromiseOrValue; + id: PromiseOrValue; + }; + + export type DoctorStructOutput = [string, number, string, string, string] & { + name: string; + age: number; + email: string; + specialization: string; + id: string; + }; + + export type DoctorToProviderRequestStruct = { + doctorName: PromiseOrValue; + doctorAddr: PromiseOrValue; + status: PromiseOrValue; + }; + + export type DoctorToProviderRequestStructOutput = [string, string, string] & { + doctorName: string; + doctorAddr: string; + status: string; + }; +} + +export interface HealthBlockInterface extends utils.Interface { + functions: { + "patients(address)": FunctionFragment; + "providerToDoctorRequests(address,uint256)": FunctionFragment; + "providerToDoctors(address,uint256)": FunctionFragment; + "raiseRequest(string,string)": FunctionFragment; + "getRequests()": FunctionFragment; + "rejectRequest(uint256)": FunctionFragment; + "approveRequest(uint256)": FunctionFragment; + "getPatientInfo()": FunctionFragment; + "getPatientInfoAll(address)": FunctionFragment; + "registerPatient(string,uint8,string)": FunctionFragment; + "getDoctorInfo()": FunctionFragment; + "getDoctorInfoAll(address)": FunctionFragment; + "registerDoctor(string,uint8,string,string)": FunctionFragment; + "getHCProviderInfo()": FunctionFragment; + "getHCProviderInfoAll(address)": FunctionFragment; + "registerHCProvider(string,string,string,string)": FunctionFragment; + "getAllDoctorsForProvider(address)": FunctionFragment; + "mapDoctorToProvider(address,address,uint256)": FunctionFragment; + "declineDoctorToProviderRequest(address,address,uint256)": FunctionFragment; + "raiseDoctorToProviderRequest(address,address,string)": FunctionFragment; + "getAllDoctorToProviderRequests(address)": FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | "patients" + | "providerToDoctorRequests" + | "providerToDoctors" + | "raiseRequest" + | "getRequests" + | "rejectRequest" + | "approveRequest" + | "getPatientInfo" + | "getPatientInfoAll" + | "registerPatient" + | "getDoctorInfo" + | "getDoctorInfoAll" + | "registerDoctor" + | "getHCProviderInfo" + | "getHCProviderInfoAll" + | "registerHCProvider" + | "getAllDoctorsForProvider" + | "mapDoctorToProvider" + | "declineDoctorToProviderRequest" + | "raiseDoctorToProviderRequest" + | "getAllDoctorToProviderRequests" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "patients", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "providerToDoctorRequests", + values: [PromiseOrValue, PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "providerToDoctors", + values: [PromiseOrValue, PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "raiseRequest", + values: [PromiseOrValue, PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "getRequests", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rejectRequest", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "approveRequest", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "getPatientInfo", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getPatientInfoAll", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "registerPatient", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "getDoctorInfo", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getDoctorInfoAll", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "registerDoctor", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "getHCProviderInfo", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getHCProviderInfoAll", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "registerHCProvider", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "getAllDoctorsForProvider", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "mapDoctorToProvider", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "declineDoctorToProviderRequest", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "raiseDoctorToProviderRequest", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "getAllDoctorToProviderRequests", + values: [PromiseOrValue] + ): string; + + decodeFunctionResult(functionFragment: "patients", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "providerToDoctorRequests", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "providerToDoctors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "raiseRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRequests", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rejectRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "approveRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getPatientInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getPatientInfoAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerPatient", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDoctorInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDoctorInfoAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerDoctor", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getHCProviderInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getHCProviderInfoAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerHCProvider", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllDoctorsForProvider", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mapDoctorToProvider", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "declineDoctorToProviderRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "raiseDoctorToProviderRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllDoctorToProviderRequests", + data: BytesLike + ): Result; + + events: { + "DoctorRequestRaised(address,string,string)": EventFragment; + "NDoctor(address,string)": EventFragment; + "NHCProvider(address,string)": EventFragment; + "NPatient(address,string)": EventFragment; + "RequestApproved(address,address,uint256)": EventFragment; + "RequestRejected(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "DoctorRequestRaised"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NDoctor"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NHCProvider"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NPatient"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RequestApproved"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RequestRejected"): EventFragment; +} + +export interface DoctorRequestRaisedEventObject { + doctor: string; + doctorName: string; + credentialsHash: string; +} +export type DoctorRequestRaisedEvent = TypedEvent< + [string, string, string], + DoctorRequestRaisedEventObject +>; + +export type DoctorRequestRaisedEventFilter = + TypedEventFilter; + +export interface NDoctorEventObject { + _from: string; + _name: string; +} +export type NDoctorEvent = TypedEvent<[string, string], NDoctorEventObject>; + +export type NDoctorEventFilter = TypedEventFilter; + +export interface NHCProviderEventObject { + _from: string; + _name: string; +} +export type NHCProviderEvent = TypedEvent< + [string, string], + NHCProviderEventObject +>; + +export type NHCProviderEventFilter = TypedEventFilter; + +export interface NPatientEventObject { + _from: string; + _name: string; +} +export type NPatientEvent = TypedEvent<[string, string], NPatientEventObject>; + +export type NPatientEventFilter = TypedEventFilter; + +export interface RequestApprovedEventObject { + doctor: string; + provider: string; + requestId: BigNumber; +} +export type RequestApprovedEvent = TypedEvent< + [string, string, BigNumber], + RequestApprovedEventObject +>; + +export type RequestApprovedEventFilter = TypedEventFilter; + +export interface RequestRejectedEventObject { + doctor: string; + provider: string; + requestId: BigNumber; +} +export type RequestRejectedEvent = TypedEvent< + [string, string, BigNumber], + RequestRejectedEventObject +>; + +export type RequestRejectedEventFilter = TypedEventFilter; + +export interface HealthBlock extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: HealthBlockInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string] & { + name: string; + age: number; + email: string; + id: string; + } + >; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, string, string] & { + doctorName: string; + doctorAddr: string; + status: string; + } + >; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string, string] & { + name: string; + age: number; + email: string; + specialization: string; + id: string; + } + >; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getRequests( + overrides?: CallOverrides + ): Promise<[HealthBlock.RequestStructOutput[]]>; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getPatientInfo( + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getDoctorInfo( + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getHCProviderInfo( + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[HealthBlock.DoctorStructOutput[]]>; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[HealthBlock.DoctorToProviderRequestStructOutput[]]>; + }; + + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string] & { + name: string; + age: number; + email: string; + id: string; + } + >; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, string, string] & { + doctorName: string; + doctorAddr: string; + status: string; + } + >; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string, string] & { + name: string; + age: number; + email: string; + specialization: string; + id: string; + } + >; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getRequests( + overrides?: CallOverrides + ): Promise; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getPatientInfo(overrides?: CallOverrides): Promise<[string, number, string]>; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getDoctorInfo( + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getHCProviderInfo( + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + callStatic: { + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string] & { + name: string; + age: number; + email: string; + id: string; + } + >; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, string, string] & { + doctorName: string; + doctorAddr: string; + status: string; + } + >; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string, string] & { + name: string; + age: number; + email: string; + specialization: string; + id: string; + } + >; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getRequests( + overrides?: CallOverrides + ): Promise; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getPatientInfo( + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getDoctorInfo( + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getHCProviderInfo( + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "DoctorRequestRaised(address,string,string)"( + doctor?: PromiseOrValue | null, + doctorName?: PromiseOrValue | null, + credentialsHash?: null + ): DoctorRequestRaisedEventFilter; + DoctorRequestRaised( + doctor?: PromiseOrValue | null, + doctorName?: PromiseOrValue | null, + credentialsHash?: null + ): DoctorRequestRaisedEventFilter; + + "NDoctor(address,string)"( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NDoctorEventFilter; + NDoctor( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NDoctorEventFilter; + + "NHCProvider(address,string)"( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NHCProviderEventFilter; + NHCProvider( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NHCProviderEventFilter; + + "NPatient(address,string)"( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NPatientEventFilter; + NPatient( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NPatientEventFilter; + + "RequestApproved(address,address,uint256)"( + doctor?: PromiseOrValue | null, + provider?: PromiseOrValue | null, + requestId?: PromiseOrValue | null + ): RequestApprovedEventFilter; + RequestApproved( + doctor?: PromiseOrValue | null, + provider?: PromiseOrValue | null, + requestId?: PromiseOrValue | null + ): RequestApprovedEventFilter; + + "RequestRejected(address,address,uint256)"( + doctor?: PromiseOrValue | null, + provider?: PromiseOrValue | null, + requestId?: PromiseOrValue | null + ): RequestRejectedEventFilter; + RequestRejected( + doctor?: PromiseOrValue | null, + provider?: PromiseOrValue | null, + requestId?: PromiseOrValue | null + ): RequestRejectedEventFilter; + }; + + estimateGas: { + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getRequests(overrides?: CallOverrides): Promise; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getPatientInfo(overrides?: CallOverrides): Promise; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getDoctorInfo(overrides?: CallOverrides): Promise; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getHCProviderInfo(overrides?: CallOverrides): Promise; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getRequests(overrides?: CallOverrides): Promise; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getPatientInfo(overrides?: CallOverrides): Promise; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getDoctorInfo(overrides?: CallOverrides): Promise; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getHCProviderInfo(overrides?: CallOverrides): Promise; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/client/src/contracts/common.ts b/client/src/contracts/common.ts new file mode 100644 index 0000000..4c90b08 --- /dev/null +++ b/client/src/contracts/common.ts @@ -0,0 +1,46 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { Listener } from "@ethersproject/providers"; +import type { Event, EventFilter } from "ethers"; + +export interface TypedEvent< + TArgsArray extends Array = any, + TArgsObject = any +> extends Event { + args: TArgsArray & TArgsObject; +} + +export interface TypedEventFilter<_TEvent extends TypedEvent> + extends EventFilter {} + +export interface TypedListener { + (...listenerArg: [...__TypechainArgsArray, TEvent]): void; +} + +type __TypechainArgsArray = T extends TypedEvent ? U : never; + +export interface OnEvent { + ( + eventFilter: TypedEventFilter, + listener: TypedListener + ): TRes; + (eventName: string, listener: Listener): TRes; +} + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; + +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; + +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; + +export type PromiseOrValue = T | Promise; diff --git a/client/src/contracts/factories/HealthBlock__factory.ts b/client/src/contracts/factories/HealthBlock__factory.ts new file mode 100644 index 0000000..955c3b7 --- /dev/null +++ b/client/src/contracts/factories/HealthBlock__factory.ts @@ -0,0 +1,794 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import type { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { PromiseOrValue } from "../common"; +import type { HealthBlock, HealthBlockInterface } from "../HealthBlock"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "doctor", + type: "address", + }, + { + indexed: true, + internalType: "string", + name: "doctorName", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "credentialsHash", + type: "string", + }, + ], + name: "DoctorRequestRaised", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_from", + type: "address", + }, + { + indexed: true, + internalType: "string", + name: "_name", + type: "string", + }, + ], + name: "NDoctor", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_from", + type: "address", + }, + { + indexed: true, + internalType: "string", + name: "_name", + type: "string", + }, + ], + name: "NHCProvider", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_from", + type: "address", + }, + { + indexed: true, + internalType: "string", + name: "_name", + type: "string", + }, + ], + name: "NPatient", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "doctor", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "provider", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "requestId", + type: "uint256", + }, + ], + name: "RequestApproved", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "doctor", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "provider", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "requestId", + type: "uint256", + }, + ], + name: "RequestRejected", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "patients", + outputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint8", + name: "age", + type: "uint8", + }, + { + internalType: "string", + name: "email", + type: "string", + }, + { + internalType: "address", + name: "id", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "providerToDoctorRequests", + outputs: [ + { + internalType: "string", + name: "doctorName", + type: "string", + }, + { + internalType: "address", + name: "doctorAddr", + type: "address", + }, + { + internalType: "string", + name: "status", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "providerToDoctors", + outputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint8", + name: "age", + type: "uint8", + }, + { + internalType: "string", + name: "email", + type: "string", + }, + { + internalType: "string", + name: "specialization", + type: "string", + }, + { + internalType: "address", + name: "id", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "doctorName", + type: "string", + }, + { + internalType: "string", + name: "credentialsHash", + type: "string", + }, + ], + name: "raiseRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getRequests", + outputs: [ + { + components: [ + { + internalType: "address", + name: "doctor", + type: "address", + }, + { + internalType: "string", + name: "doctorName", + type: "string", + }, + { + internalType: "string", + name: "credentialsHash", + type: "string", + }, + { + internalType: "string", + name: "status", + type: "string", + }, + ], + internalType: "struct HealthBlock.Request[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "requestId", + type: "uint256", + }, + ], + name: "rejectRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "requestId", + type: "uint256", + }, + ], + name: "approveRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getPatientInfo", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_address", + type: "address", + }, + ], + name: "getPatientInfoAll", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "uint8", + name: "_age", + type: "uint8", + }, + { + internalType: "string", + name: "_email", + type: "string", + }, + ], + name: "registerPatient", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getDoctorInfo", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_address", + type: "address", + }, + ], + name: "getDoctorInfoAll", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "uint8", + name: "_age", + type: "uint8", + }, + { + internalType: "string", + name: "_email", + type: "string", + }, + { + internalType: "string", + name: "_specialization", + type: "string", + }, + ], + name: "registerDoctor", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getHCProviderInfo", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_address", + type: "address", + }, + ], + name: "getHCProviderInfoAll", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_email", + type: "string", + }, + { + internalType: "string", + name: "_address", + type: "string", + }, + { + internalType: "string", + name: "_phone", + type: "string", + }, + ], + name: "registerHCProvider", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "providerAddress", + type: "address", + }, + ], + name: "getAllDoctorsForProvider", + outputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint8", + name: "age", + type: "uint8", + }, + { + internalType: "string", + name: "email", + type: "string", + }, + { + internalType: "string", + name: "specialization", + type: "string", + }, + { + internalType: "address", + name: "id", + type: "address", + }, + ], + internalType: "struct HealthBlock.doctor[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_providerAddress", + type: "address", + }, + { + internalType: "address", + name: "_doctorAddress", + type: "address", + }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, + ], + name: "mapDoctorToProvider", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_providerAddress", + type: "address", + }, + { + internalType: "address", + name: "_doctorAddress", + type: "address", + }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, + ], + name: "declineDoctorToProviderRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_providerAddress", + type: "address", + }, + { + internalType: "address", + name: "_doctorAddress", + type: "address", + }, + { + internalType: "string", + name: "doctorName", + type: "string", + }, + ], + name: "raiseDoctorToProviderRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_hcaddress", + type: "address", + }, + ], + name: "getAllDoctorToProviderRequests", + outputs: [ + { + components: [ + { + internalType: "string", + name: "doctorName", + type: "string", + }, + { + internalType: "address", + name: "doctorAddr", + type: "address", + }, + { + internalType: "string", + name: "status", + type: "string", + }, + ], + internalType: "struct HealthBlock.DoctorToProviderRequest[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614640806100606000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063939686dc116100b8578063bc4fe4021161007c578063bc4fe4021461035d578063c5b0aab014610379578063cc063706146103ac578063d1d8b266146103de578063d7d1bbdb146103fa578063e1e36ab91461041657610137565b8063939686dc146102b6578063a9b467ee146102d2578063afc3b5c414610304578063b2d258ff14610320578063b380f5c61461033c57610137565b80635df122e1116100ff5780635df122e1146101f75780636d36f7be146102275780637521eca11461025b5780638813ce1214610277578063916922c41461029557610137565b80630869cfbc1461013c57806310b500cc1461016f5780631c2972051461019f5780632d7788db146101bb578063326df664146101d7575b600080fd5b61015660048036038101906101519190613518565b610449565b6040516101669493929190613600565b60405180910390f35b61018960048036038101906101849190613518565b6105b6565b60405161019691906137c5565b60405180910390f35b6101b960048036038101906101b49190613948565b6107ce565b005b6101d560048036038101906101d09190613a09565b610a07565b005b6101df610c03565b6040516101ee93929190613a36565b60405180910390f35b610211600480360381019061020c9190613518565b610e2d565b60405161021e9190613bd0565b60405180910390f35b610241600480360381019061023c9190613bf2565b6110f4565b604051610252959493929190613c32565b60405180910390f35b61027560048036038101906102709190613c9a565b61130c565b005b61027f611709565b60405161028c9190613e20565b60405180910390f35b61029d611a60565b6040516102ad9493929190613e42565b60405180910390f35b6102d060048036038101906102cb9190613ea3565b611d9b565b005b6102ec60048036038101906102e79190613518565b611ee9565b6040516102fb93929190613a36565b60405180910390f35b61031e60048036038101906103199190613f12565b612072565b005b61033a60048036038101906103359190613f8a565b612260565b005b6103446125ae565b6040516103549493929190614045565b60405180910390f35b6103776004803603810190610372919061409f565b61286c565b005b610393600480360381019061038e9190613518565b612b8a565b6040516103a39493929190613e42565b60405180910390f35b6103c660048036038101906103c19190613bf2565b612e23565b6040516103d593929190614176565b60405180910390f35b6103f860048036038101906103f39190613c9a565b612f9a565b005b610414600480360381019061040f9190613a09565b61308e565b005b610430600480360381019061042b9190613518565b61328a565b6040516104409493929190614045565b60405180910390f35b600460205280600052604060002060009150905080600001805461046c906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610498906141ea565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050908060010160009054906101000a900460ff169080600201805461050d906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610539906141ea565b80156105865780601f1061055b57610100808354040283529160200191610586565b820191906000526020600020905b81548152906001019060200180831161056957829003601f168201915b5050505050908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156107c3578382906000526020600020906003020160405180606001604052908160008201805461064a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610676906141ea565b80156106c35780601f10610698576101008083540402835291602001916106c3565b820191906000526020600020905b8154815290600101906020018083116106a657829003601f168201915b505050505081526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610732906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461075e906141ea565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b50505050508152505081526020019060010190610617565b505050509050919050565b6040516020016107dd9061424c565b60405160208183030381529060405280519060200120836040516020016108049190614292565b604051602081830303815290604052805190602001200361082457600080fd5b6040516020016108339061424c565b604051602081830303815290604052805190602001208160405160200161085a9190614292565b604051602081830303815290604052805190602001200361087a57600080fd5b60008260ff16118015610890575060648260ff16105b61089957600080fd5b60405180608001604052808481526020018360ff1681526020018281526020013373ffffffffffffffffffffffffffffffffffffffff16815250600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816109279190614455565b5060208201518160010160006101000a81548160ff021916908360ff160217905550604082015181600201908161095e9190614455565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050826040516109b79190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610b0957610b086145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f72656a6563746564000000000000000000000000000000000000000000000000815250816003019081610b5f9190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4d2b09745b50f68da85b0b25854d46c2b85b43dd6f04ba6f3f503ff878bf4ae560405160405180910390a45050565b606060006060336000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611610caa57600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054610d13906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3f906141ea565b8015610d8c5780601f10610d6157610100808354040283529160200191610d8c565b820191906000526020600020905b815481529060010190602001808311610d6f57829003601f168201915b50505050509250808054610d9f906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcb906141ea565b8015610e185780601f10610ded57610100808354040283529160200191610e18565b820191906000526020600020905b815481529060010190602001808311610dfb57829003601f168201915b50505050509050955095509550505050909192565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156110e957838290600052602060002090600502016040518060a0016040529081600082018054610ec1906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610eed906141ea565b8015610f3a5780601f10610f0f57610100808354040283529160200191610f3a565b820191906000526020600020905b815481529060010190602001808311610f1d57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff168152602001600282018054610f70906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9c906141ea565b8015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b50505050508152602001600382018054611002906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461102e906141ea565b801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190610e8e565b505050509050919050565b6002602052816000526040600020818154811061111057600080fd5b906000526020600020906005020160009150915050806000018054611134906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611160906141ea565b80156111ad5780601f10611182576101008083540402835291602001916111ad565b820191906000526020600020905b81548152906001019060200180831161119057829003601f168201915b5050505050908060010160009054906101000a900460ff16908060020180546111d5906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611201906141ea565b801561124e5780601f106112235761010080835404028352916020019161124e565b820191906000526020600020905b81548152906001019060200180831161123157829003601f168201915b505050505090806003018054611263906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461128f906141ea565b80156112dc5780601f106112b1576101008083540402835291602001916112dc565b820191906000526020600020905b8154815290600101906020018083116112bf57829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106113a2576113a16145b9565b5b906000526020600020906003020190506040518060400160405280600981526020017f636f6e6669726d656400000000000000000000000000000000000000000000008152508160020190816113f89190614455565b50600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405280846000018054611452906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461147e906141ea565b80156114cb5780601f106114a0576101008083540402835291602001916114cb565b820191906000526020600020905b8154815290600101906020018083116114ae57829003601f168201915b505050505081526020018460010160009054906101000a900460ff1660ff1681526020018460020180546114fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461152a906141ea565b80156115775780601f1061154c57610100808354040283529160200191611577565b820191906000526020600020905b81548152906001019060200180831161155a57829003601f168201915b50505050508152602001846003018054611590906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546115bc906141ea565b80156116095780601f106115de57610100808354040283529160200191611609565b820191906000526020600020905b8154815290600101906020018083116115ec57829003601f168201915b505050505081526020018673ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000209060050201600090919091909150600082015181600001908161166b9190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816116a29190614455565b5060608201518160030190816116b89190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179090614599565b60405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611a5757838290600052602060002090600402016040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180546118a2906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546118ce906141ea565b801561191b5780601f106118f05761010080835404028352916020019161191b565b820191906000526020600020905b8154815290600101906020018083116118fe57829003601f168201915b50505050508152602001600282018054611934906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611960906141ea565b80156119ad5780601f10611982576101008083540402835291602001916119ad565b820191906000526020600020905b81548152906001019060200180831161199057829003601f168201915b505050505081526020016003820180546119c6906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546119f2906141ea565b8015611a3f5780601f10611a1457610100808354040283529160200191611a3f565b820191906000526020600020905b815481529060010190602001808311611a2257829003601f168201915b50505050508152505081526020019060010190611819565b50505050905090565b606080606080336000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611611b0757600080fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054611b66906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611b92906141ea565b8015611bdf5780601f10611bb457610100808354040283529160200191611bdf565b820191906000526020600020905b815481529060010190602001808311611bc257829003601f168201915b50505050509350828054611bf2906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e906141ea565b8015611c6b5780601f10611c4057610100808354040283529160200191611c6b565b820191906000526020600020905b815481529060010190602001808311611c4e57829003601f168201915b50505050509250818054611c7e906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611caa906141ea565b8015611cf75780601f10611ccc57610100808354040283529160200191611cf7565b820191906000526020600020905b815481529060010190602001808311611cda57829003601f168201915b50505050509150808054611d0a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611d36906141ea565b8015611d835780601f10611d5857610100808354040283529160200191611d83565b820191906000526020600020905b815481529060010190602001808311611d6657829003601f168201915b50505050509050965096509650965050505090919293565b600060405180606001604052808381526020018473ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000019081611e839190614455565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019081611ee09190614455565b50505050505050565b6060600060606000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054611f58906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611f84906141ea565b8015611fd15780601f10611fa657610100808354040283529160200191611fd1565b820191906000526020600020905b815481529060010190602001808311611fb457829003601f168201915b50505050509250808054611fe4906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612010906141ea565b801561205d5780601f106120325761010080835404028352916020019161205d565b820191906000526020600020905b81548152906001019060200180831161204057829003601f168201915b50505050509050935093509350509193909250565b600060405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816121c89190614455565b5060408201518160020190816121de9190614455565b5060608201518160030190816121f49190614455565b505050826040516122059190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167f13bea7f2b146e27ade33081397e247a39c6fa801e1c40c9d03fd9d808e3bdfcd8460405161225391906145e8565b60405180910390a3505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016122b29061424c565b60405160208183030381529060405280519060200120856040516020016122d99190614292565b60405160208183030381529060405280519060200120036122f957600080fd5b6040516020016123089061424c565b604051602081830303815290604052805190602001208360405160200161232f9190614292565b604051602081830303815290604052805190602001200361234f57600080fd5b60405160200161235e9061424c565b60405160208183030381529060405280519060200120826040516020016123859190614292565b60405160208183030381529060405280519060200120036123a557600080fd5b60008460ff161180156123bb575060648460ff16105b6123c457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16111561242257600080fd5b6040518060a001604052808681526020018560ff1681526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816124b69190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816124ed9190614455565b5060608201518160030190816125039190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508460405161255c9190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a35050505050565b60606000606080336000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161161265657600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546126c3906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546126ef906141ea565b801561273c5780601f106127115761010080835404028352916020019161273c565b820191906000526020600020905b81548152906001019060200180831161271f57829003601f168201915b5050505050935081805461274f906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461277b906141ea565b80156127c85780601f1061279d576101008083540402835291602001916127c8565b820191906000526020600020905b8154815290600101906020018083116127ab57829003601f168201915b505050505091508080546127db906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612807906141ea565b80156128545780601f1061282957610100808354040283529160200191612854565b820191906000526020600020905b81548152906001019060200180831161283757829003601f168201915b50505050509050965096509650965050505090919293565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016128be9061424c565b60405160208183030381529060405280519060200120856040516020016128e59190614292565b604051602081830303815290604052805190602001200361290557600080fd5b6040516020016129149061424c565b604051602081830303815290604052805190602001208460405160200161293b9190614292565b604051602081830303815290604052805190602001200361295b57600080fd5b60405160200161296a9061424c565b60405160208183030381529060405280519060200120836040516020016129919190614292565b60405160208183030381529060405280519060200120036129b157600080fd5b6040516020016129c09061424c565b60405160208183030381529060405280519060200120826040516020016129e79190614292565b6040516020818303038152906040528051906020012003612a0757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115612a6557600080fd5b6040518060a001604052808681526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000019081612af69190614455565b506020820151816001019081612b0c9190614455565b506040820151816002019081612b229190614455565b506060820151816003019081612b389190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050505050505050565b6060806060806000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054612bef906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612c1b906141ea565b8015612c685780601f10612c3d57610100808354040283529160200191612c68565b820191906000526020600020905b815481529060010190602001808311612c4b57829003601f168201915b50505050509350828054612c7b906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612ca7906141ea565b8015612cf45780601f10612cc957610100808354040283529160200191612cf4565b820191906000526020600020905b815481529060010190602001808311612cd757829003601f168201915b50505050509250818054612d07906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612d33906141ea565b8015612d805780601f10612d5557610100808354040283529160200191612d80565b820191906000526020600020905b815481529060010190602001808311612d6357829003601f168201915b50505050509150808054612d93906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612dbf906141ea565b8015612e0c5780601f10612de157610100808354040283529160200191612e0c565b820191906000526020600020905b815481529060010190602001808311612def57829003601f168201915b505050505090509450945094509450509193509193565b60036020528160005260406000208181548110612e3f57600080fd5b906000526020600020906003020160009150915050806000018054612e63906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8f906141ea565b8015612edc5780601f10612eb157610100808354040283529160200191612edc565b820191906000526020600020905b815481529060010190602001808311612ebf57829003601f168201915b5050505050908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054612f17906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612f43906141ea565b8015612f905780601f10612f6557610100808354040283529160200191612f90565b820191906000526020600020905b815481529060010190602001808311612f7357829003601f168201915b5050505050905083565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106130305761302f6145b9565b5b906000526020600020906003020190506040518060400160405280600881526020017f72656a65637465640000000000000000000000000000000000000000000000008152508160020190816130869190614455565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461311c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311390614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106131905761318f6145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f617070726f7665640000000000000000000000000000000000000000000000008152508160030190816131e69190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd9a9c1b40a747e79bd4c1aeabd897bfd5b3679e58fcdcd20dd7af4a8274196bc60405160405180910390a45050565b606060006060806000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546132fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461332a906141ea565b80156133775780601f1061334c57610100808354040283529160200191613377565b820191906000526020600020905b81548152906001019060200180831161335a57829003601f168201915b5050505050935081805461338a906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546133b6906141ea565b80156134035780601f106133d857610100808354040283529160200191613403565b820191906000526020600020905b8154815290600101906020018083116133e657829003601f168201915b50505050509150808054613416906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054613442906141ea565b801561348f5780601f106134645761010080835404028352916020019161348f565b820191906000526020600020905b81548152906001019060200180831161347257829003601f168201915b505050505090509450945094509450509193509193565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134e5826134ba565b9050919050565b6134f5816134da565b811461350057600080fd5b50565b600081359050613512816134ec565b92915050565b60006020828403121561352e5761352d6134b0565b5b600061353c84828501613503565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561357f578082015181840152602081019050613564565b60008484015250505050565b6000601f19601f8301169050919050565b60006135a782613545565b6135b18185613550565b93506135c1818560208601613561565b6135ca8161358b565b840191505092915050565b600060ff82169050919050565b6135eb816135d5565b82525050565b6135fa816134da565b82525050565b6000608082019050818103600083015261361a818761359c565b905061362960208301866135e2565b818103604083015261363b818561359c565b905061364a60608301846135f1565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061369b82613545565b6136a5818561367f565b93506136b5818560208601613561565b6136be8161358b565b840191505092915050565b6136d2816134da565b82525050565b600060608301600083015184820360008601526136f58282613690565b915050602083015161370a60208601826136c9565b50604083015184820360408601526137228282613690565b9150508091505092915050565b600061373b83836136d8565b905092915050565b6000602082019050919050565b600061375b82613653565b613765818561365e565b9350836020820285016137778561366f565b8060005b858110156137b35784840389528151613794858261372f565b945061379f83613743565b925060208a0199505060018101905061377b565b50829750879550505050505092915050565b600060208201905081810360008301526137df8184613750565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138298261358b565b810181811067ffffffffffffffff82111715613848576138476137f1565b5b80604052505050565b600061385b6134a6565b90506138678282613820565b919050565b600067ffffffffffffffff821115613887576138866137f1565b5b6138908261358b565b9050602081019050919050565b82818337600083830152505050565b60006138bf6138ba8461386c565b613851565b9050828152602081018484840111156138db576138da6137ec565b5b6138e684828561389d565b509392505050565b600082601f830112613903576139026137e7565b5b81356139138482602086016138ac565b91505092915050565b613925816135d5565b811461393057600080fd5b50565b6000813590506139428161391c565b92915050565b600080600060608486031215613961576139606134b0565b5b600084013567ffffffffffffffff81111561397f5761397e6134b5565b5b61398b868287016138ee565b935050602061399c86828701613933565b925050604084013567ffffffffffffffff8111156139bd576139bc6134b5565b5b6139c9868287016138ee565b9150509250925092565b6000819050919050565b6139e6816139d3565b81146139f157600080fd5b50565b600081359050613a03816139dd565b92915050565b600060208284031215613a1f57613a1e6134b0565b5b6000613a2d848285016139f4565b91505092915050565b60006060820190508181036000830152613a50818661359c565b9050613a5f60208301856135e2565b8181036040830152613a71818461359c565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ab0816135d5565b82525050565b600060a0830160008301518482036000860152613ad38282613690565b9150506020830151613ae86020860182613aa7565b5060408301518482036040860152613b008282613690565b91505060608301518482036060860152613b1a8282613690565b9150506080830151613b2f60808601826136c9565b508091505092915050565b6000613b468383613ab6565b905092915050565b6000602082019050919050565b6000613b6682613a7b565b613b708185613a86565b935083602082028501613b8285613a97565b8060005b85811015613bbe5784840389528151613b9f8582613b3a565b9450613baa83613b4e565b925060208a01995050600181019050613b86565b50829750879550505050505092915050565b60006020820190508181036000830152613bea8184613b5b565b905092915050565b60008060408385031215613c0957613c086134b0565b5b6000613c1785828601613503565b9250506020613c28858286016139f4565b9150509250929050565b600060a0820190508181036000830152613c4c818861359c565b9050613c5b60208301876135e2565b8181036040830152613c6d818661359c565b90508181036060830152613c81818561359c565b9050613c9060808301846135f1565b9695505050505050565b600080600060608486031215613cb357613cb26134b0565b5b6000613cc186828701613503565b9350506020613cd286828701613503565b9250506040613ce3868287016139f4565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000608083016000830151613d3160008601826136c9565b5060208301518482036020860152613d498282613690565b91505060408301518482036040860152613d638282613690565b91505060608301518482036060860152613d7d8282613690565b9150508091505092915050565b6000613d968383613d19565b905092915050565b6000602082019050919050565b6000613db682613ced565b613dc08185613cf8565b935083602082028501613dd285613d09565b8060005b85811015613e0e5784840389528151613def8582613d8a565b9450613dfa83613d9e565b925060208a01995050600181019050613dd6565b50829750879550505050505092915050565b60006020820190508181036000830152613e3a8184613dab565b905092915050565b60006080820190508181036000830152613e5c818761359c565b90508181036020830152613e70818661359c565b90508181036040830152613e84818561359c565b90508181036060830152613e98818461359c565b905095945050505050565b600080600060608486031215613ebc57613ebb6134b0565b5b6000613eca86828701613503565b9350506020613edb86828701613503565b925050604084013567ffffffffffffffff811115613efc57613efb6134b5565b5b613f08868287016138ee565b9150509250925092565b60008060408385031215613f2957613f286134b0565b5b600083013567ffffffffffffffff811115613f4757613f466134b5565b5b613f53858286016138ee565b925050602083013567ffffffffffffffff811115613f7457613f736134b5565b5b613f80858286016138ee565b9150509250929050565b60008060008060808587031215613fa457613fa36134b0565b5b600085013567ffffffffffffffff811115613fc257613fc16134b5565b5b613fce878288016138ee565b9450506020613fdf87828801613933565b935050604085013567ffffffffffffffff81111561400057613fff6134b5565b5b61400c878288016138ee565b925050606085013567ffffffffffffffff81111561402d5761402c6134b5565b5b614039878288016138ee565b91505092959194509250565b6000608082019050818103600083015261405f818761359c565b905061406e60208301866135e2565b8181036040830152614080818561359c565b90508181036060830152614094818461359c565b905095945050505050565b600080600080608085870312156140b9576140b86134b0565b5b600085013567ffffffffffffffff8111156140d7576140d66134b5565b5b6140e3878288016138ee565b945050602085013567ffffffffffffffff811115614104576141036134b5565b5b614110878288016138ee565b935050604085013567ffffffffffffffff811115614131576141306134b5565b5b61413d878288016138ee565b925050606085013567ffffffffffffffff81111561415e5761415d6134b5565b5b61416a878288016138ee565b91505092959194509250565b60006060820190508181036000830152614190818661359c565b905061419f60208301856135f1565b81810360408301526141b1818461359c565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061420257607f821691505b602082108103614215576142146141bb565b5b50919050565b600081905092915050565b50565b600061423660008361421b565b915061424182614226565b600082019050919050565b600061425782614229565b9150819050919050565b600061426c82613545565b614276818561421b565b9350614286818560208601613561565b80840191505092915050565b600061429e8284614261565b915081905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261430b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826142ce565b61431586836142ce565b95508019841693508086168417925050509392505050565b6000819050919050565b600061435261434d614348846139d3565b61432d565b6139d3565b9050919050565b6000819050919050565b61436c83614337565b61438061437882614359565b8484546142db565b825550505050565b600090565b614395614388565b6143a0818484614363565b505050565b5b818110156143c4576143b960008261438d565b6001810190506143a6565b5050565b601f821115614409576143da816142a9565b6143e3846142be565b810160208510156143f2578190505b6144066143fe856142be565b8301826143a5565b50505b505050565b600082821c905092915050565b600061442c6000198460080261440e565b1980831691505092915050565b6000614445838361441b565b9150826002028217905092915050565b61445e82613545565b67ffffffffffffffff811115614477576144766137f1565b5b61448182546141ea565b61448c8282856143c8565b600060209050601f8311600181146144bf57600084156144ad578287015190505b6144b78582614439565b86555061451f565b601f1984166144cd866142a9565b60005b828110156144f5578489015182556001820191506020850194506020810190506144d0565b86831015614512578489015161450e601f89168261441b565b8355505b6001600288020188555050505b505050505050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000614583602183613550565b915061458e82614527565b604082019050919050565b600060208201905081810360008301526145b281614576565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020820190508181036000830152614602818461359c565b90509291505056fea2646970667358221220c1b2ae848c7babf4c77ed1faeecb417b032136e191fa5cca6754b17c1620030064736f6c63430008110033"; + +type HealthBlockConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: HealthBlockConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class HealthBlock__factory extends ContractFactory { + constructor(...args: HealthBlockConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override deploy( + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + override getDeployTransaction( + overrides?: Overrides & { from?: PromiseOrValue } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + override attach(address: string): HealthBlock { + return super.attach(address) as HealthBlock; + } + override connect(signer: Signer): HealthBlock__factory { + return super.connect(signer) as HealthBlock__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): HealthBlockInterface { + return new utils.Interface(_abi) as HealthBlockInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): HealthBlock { + return new Contract(address, _abi, signerOrProvider) as HealthBlock; + } +} diff --git a/client/src/contracts/factories/index.ts b/client/src/contracts/factories/index.ts new file mode 100644 index 0000000..085d713 --- /dev/null +++ b/client/src/contracts/factories/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { HealthBlock__factory } from "./HealthBlock__factory"; diff --git a/client/src/contracts/index.ts b/client/src/contracts/index.ts new file mode 100644 index 0000000..28a0273 --- /dev/null +++ b/client/src/contracts/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { HealthBlock } from "./HealthBlock"; +export * as factories from "./factories"; +export { HealthBlock__factory } from "./factories/HealthBlock__factory"; From 1b0126c0e038d52de3b25e40105a530e91773b80 Mon Sep 17 00:00:00 2001 From: Shruthi23 Date: Mon, 8 May 2023 12:54:38 -0700 Subject: [PATCH 4/6] errors resolved --- client/src/providers/HealthProvider.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/src/providers/HealthProvider.tsx b/client/src/providers/HealthProvider.tsx index 12023c1..c273df7 100644 --- a/client/src/providers/HealthProvider.tsx +++ b/client/src/providers/HealthProvider.tsx @@ -295,7 +295,7 @@ export const HealthProvider: React.FC = ({ children, ...props }) => { setDoctorList(docArr); } catch (error) { - throw new Error(error); + throw error; // setError('Error Loading Health Contract'); } }; @@ -320,7 +320,7 @@ export const HealthProvider: React.FC = ({ children, ...props }) => { update.wait(); } catch (err: any) { - throw new Error(err); + throw err; //setError(`Error Loading Health Contract ${err}`); } }; @@ -348,7 +348,7 @@ export const HealthProvider: React.FC = ({ children, ...props }) => { setDocToProviderList(docArr); } catch (err: any) { - throw new Error(err); + throw err; //setError(`Error Loading Health Contract ${err}`); } }; @@ -367,7 +367,7 @@ export const HealthProvider: React.FC = ({ children, ...props }) => { const update = await contract.raiseDoctorToProviderRequest(hcAddress, docAddress, doctorName); } catch (err: any) { //setError(`Error Loading Health Contract ${err}`); - throw new Error(err); + throw err; } }; From a46f39ce49587273686297865852860e4227f9a6 Mon Sep 17 00:00:00 2001 From: Shruthi23 Date: Mon, 8 May 2023 12:55:15 -0700 Subject: [PATCH 5/6] Deleted ts files --- client/src/contracts/HealthBlock.ts | 1128 ----------------- client/src/contracts/common.ts | 46 - .../factories/HealthBlock__factory.ts | 794 ------------ client/src/contracts/factories/index.ts | 4 - client/src/contracts/index.ts | 6 - 5 files changed, 1978 deletions(-) delete mode 100644 client/src/contracts/HealthBlock.ts delete mode 100644 client/src/contracts/common.ts delete mode 100644 client/src/contracts/factories/HealthBlock__factory.ts delete mode 100644 client/src/contracts/factories/index.ts delete mode 100644 client/src/contracts/index.ts diff --git a/client/src/contracts/HealthBlock.ts b/client/src/contracts/HealthBlock.ts deleted file mode 100644 index 131203a..0000000 --- a/client/src/contracts/HealthBlock.ts +++ /dev/null @@ -1,1128 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "./common"; - -export declare namespace HealthBlock { - export type RequestStruct = { - doctor: PromiseOrValue; - doctorName: PromiseOrValue; - credentialsHash: PromiseOrValue; - status: PromiseOrValue; - }; - - export type RequestStructOutput = [string, string, string, string] & { - doctor: string; - doctorName: string; - credentialsHash: string; - status: string; - }; - - export type DoctorStruct = { - name: PromiseOrValue; - age: PromiseOrValue; - email: PromiseOrValue; - specialization: PromiseOrValue; - id: PromiseOrValue; - }; - - export type DoctorStructOutput = [string, number, string, string, string] & { - name: string; - age: number; - email: string; - specialization: string; - id: string; - }; - - export type DoctorToProviderRequestStruct = { - doctorName: PromiseOrValue; - doctorAddr: PromiseOrValue; - status: PromiseOrValue; - }; - - export type DoctorToProviderRequestStructOutput = [string, string, string] & { - doctorName: string; - doctorAddr: string; - status: string; - }; -} - -export interface HealthBlockInterface extends utils.Interface { - functions: { - "patients(address)": FunctionFragment; - "providerToDoctorRequests(address,uint256)": FunctionFragment; - "providerToDoctors(address,uint256)": FunctionFragment; - "raiseRequest(string,string)": FunctionFragment; - "getRequests()": FunctionFragment; - "rejectRequest(uint256)": FunctionFragment; - "approveRequest(uint256)": FunctionFragment; - "getPatientInfo()": FunctionFragment; - "getPatientInfoAll(address)": FunctionFragment; - "registerPatient(string,uint8,string)": FunctionFragment; - "getDoctorInfo()": FunctionFragment; - "getDoctorInfoAll(address)": FunctionFragment; - "registerDoctor(string,uint8,string,string)": FunctionFragment; - "getHCProviderInfo()": FunctionFragment; - "getHCProviderInfoAll(address)": FunctionFragment; - "registerHCProvider(string,string,string,string)": FunctionFragment; - "getAllDoctorsForProvider(address)": FunctionFragment; - "mapDoctorToProvider(address,address,uint256)": FunctionFragment; - "declineDoctorToProviderRequest(address,address,uint256)": FunctionFragment; - "raiseDoctorToProviderRequest(address,address,string)": FunctionFragment; - "getAllDoctorToProviderRequests(address)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "patients" - | "providerToDoctorRequests" - | "providerToDoctors" - | "raiseRequest" - | "getRequests" - | "rejectRequest" - | "approveRequest" - | "getPatientInfo" - | "getPatientInfoAll" - | "registerPatient" - | "getDoctorInfo" - | "getDoctorInfoAll" - | "registerDoctor" - | "getHCProviderInfo" - | "getHCProviderInfoAll" - | "registerHCProvider" - | "getAllDoctorsForProvider" - | "mapDoctorToProvider" - | "declineDoctorToProviderRequest" - | "raiseDoctorToProviderRequest" - | "getAllDoctorToProviderRequests" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "patients", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "providerToDoctorRequests", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "providerToDoctors", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "raiseRequest", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getRequests", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "rejectRequest", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approveRequest", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getPatientInfo", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getPatientInfoAll", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "registerPatient", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getDoctorInfo", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getDoctorInfoAll", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "registerDoctor", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getHCProviderInfo", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getHCProviderInfoAll", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "registerHCProvider", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getAllDoctorsForProvider", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "mapDoctorToProvider", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "declineDoctorToProviderRequest", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "raiseDoctorToProviderRequest", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getAllDoctorToProviderRequests", - values: [PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "patients", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "providerToDoctorRequests", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "providerToDoctors", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "raiseRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getRequests", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "rejectRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "approveRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getPatientInfo", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getPatientInfoAll", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "registerPatient", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDoctorInfo", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getDoctorInfoAll", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "registerDoctor", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getHCProviderInfo", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getHCProviderInfoAll", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "registerHCProvider", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAllDoctorsForProvider", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "mapDoctorToProvider", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "declineDoctorToProviderRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "raiseDoctorToProviderRequest", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getAllDoctorToProviderRequests", - data: BytesLike - ): Result; - - events: { - "DoctorRequestRaised(address,string,string)": EventFragment; - "NDoctor(address,string)": EventFragment; - "NHCProvider(address,string)": EventFragment; - "NPatient(address,string)": EventFragment; - "RequestApproved(address,address,uint256)": EventFragment; - "RequestRejected(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "DoctorRequestRaised"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NDoctor"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NHCProvider"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NPatient"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RequestApproved"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RequestRejected"): EventFragment; -} - -export interface DoctorRequestRaisedEventObject { - doctor: string; - doctorName: string; - credentialsHash: string; -} -export type DoctorRequestRaisedEvent = TypedEvent< - [string, string, string], - DoctorRequestRaisedEventObject ->; - -export type DoctorRequestRaisedEventFilter = - TypedEventFilter; - -export interface NDoctorEventObject { - _from: string; - _name: string; -} -export type NDoctorEvent = TypedEvent<[string, string], NDoctorEventObject>; - -export type NDoctorEventFilter = TypedEventFilter; - -export interface NHCProviderEventObject { - _from: string; - _name: string; -} -export type NHCProviderEvent = TypedEvent< - [string, string], - NHCProviderEventObject ->; - -export type NHCProviderEventFilter = TypedEventFilter; - -export interface NPatientEventObject { - _from: string; - _name: string; -} -export type NPatientEvent = TypedEvent<[string, string], NPatientEventObject>; - -export type NPatientEventFilter = TypedEventFilter; - -export interface RequestApprovedEventObject { - doctor: string; - provider: string; - requestId: BigNumber; -} -export type RequestApprovedEvent = TypedEvent< - [string, string, BigNumber], - RequestApprovedEventObject ->; - -export type RequestApprovedEventFilter = TypedEventFilter; - -export interface RequestRejectedEventObject { - doctor: string; - provider: string; - requestId: BigNumber; -} -export type RequestRejectedEvent = TypedEvent< - [string, string, BigNumber], - RequestRejectedEventObject ->; - -export type RequestRejectedEventFilter = TypedEventFilter; - -export interface HealthBlock extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: HealthBlockInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string] & { - name: string; - age: number; - email: string; - id: string; - } - >; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, string, string] & { - doctorName: string; - doctorAddr: string; - status: string; - } - >; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string, string] & { - name: string; - age: number; - email: string; - specialization: string; - id: string; - } - >; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRequests( - overrides?: CallOverrides - ): Promise<[HealthBlock.RequestStructOutput[]]>; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getPatientInfo( - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getDoctorInfo( - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getHCProviderInfo( - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[HealthBlock.DoctorStructOutput[]]>; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[HealthBlock.DoctorToProviderRequestStructOutput[]]>; - }; - - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string] & { - name: string; - age: number; - email: string; - id: string; - } - >; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, string, string] & { - doctorName: string; - doctorAddr: string; - status: string; - } - >; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string, string] & { - name: string; - age: number; - email: string; - specialization: string; - id: string; - } - >; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRequests( - overrides?: CallOverrides - ): Promise; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getPatientInfo(overrides?: CallOverrides): Promise<[string, number, string]>; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getDoctorInfo( - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getHCProviderInfo( - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - callStatic: { - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string] & { - name: string; - age: number; - email: string; - id: string; - } - >; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, string, string] & { - doctorName: string; - doctorAddr: string; - status: string; - } - >; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string, number, string, string, string] & { - name: string; - age: number; - email: string; - specialization: string; - id: string; - } - >; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getRequests( - overrides?: CallOverrides - ): Promise; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getPatientInfo( - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string]>; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDoctorInfo( - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, number, string, string]>; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getHCProviderInfo( - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string, string, string]>; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "DoctorRequestRaised(address,string,string)"( - doctor?: PromiseOrValue | null, - doctorName?: PromiseOrValue | null, - credentialsHash?: null - ): DoctorRequestRaisedEventFilter; - DoctorRequestRaised( - doctor?: PromiseOrValue | null, - doctorName?: PromiseOrValue | null, - credentialsHash?: null - ): DoctorRequestRaisedEventFilter; - - "NDoctor(address,string)"( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NDoctorEventFilter; - NDoctor( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NDoctorEventFilter; - - "NHCProvider(address,string)"( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NHCProviderEventFilter; - NHCProvider( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NHCProviderEventFilter; - - "NPatient(address,string)"( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NPatientEventFilter; - NPatient( - _from?: PromiseOrValue | null, - _name?: PromiseOrValue | null - ): NPatientEventFilter; - - "RequestApproved(address,address,uint256)"( - doctor?: PromiseOrValue | null, - provider?: PromiseOrValue | null, - requestId?: PromiseOrValue | null - ): RequestApprovedEventFilter; - RequestApproved( - doctor?: PromiseOrValue | null, - provider?: PromiseOrValue | null, - requestId?: PromiseOrValue | null - ): RequestApprovedEventFilter; - - "RequestRejected(address,address,uint256)"( - doctor?: PromiseOrValue | null, - provider?: PromiseOrValue | null, - requestId?: PromiseOrValue | null - ): RequestRejectedEventFilter; - RequestRejected( - doctor?: PromiseOrValue | null, - provider?: PromiseOrValue | null, - requestId?: PromiseOrValue | null - ): RequestRejectedEventFilter; - }; - - estimateGas: { - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRequests(overrides?: CallOverrides): Promise; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getPatientInfo(overrides?: CallOverrides): Promise; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getDoctorInfo(overrides?: CallOverrides): Promise; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getHCProviderInfo(overrides?: CallOverrides): Promise; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - populateTransaction: { - patients( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - providerToDoctorRequests( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - providerToDoctors( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - raiseRequest( - doctorName: PromiseOrValue, - credentialsHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRequests(overrides?: CallOverrides): Promise; - - rejectRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - approveRequest( - requestId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getPatientInfo(overrides?: CallOverrides): Promise; - - getPatientInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerPatient( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getDoctorInfo(overrides?: CallOverrides): Promise; - - getDoctorInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerDoctor( - _name: PromiseOrValue, - _age: PromiseOrValue, - _email: PromiseOrValue, - _specialization: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getHCProviderInfo(overrides?: CallOverrides): Promise; - - getHCProviderInfoAll( - _address: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - registerHCProvider( - _name: PromiseOrValue, - _email: PromiseOrValue, - _address: PromiseOrValue, - _phone: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorsForProvider( - providerAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mapDoctorToProvider( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - declineDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - raiseDoctorToProviderRequest( - _providerAddress: PromiseOrValue, - _doctorAddress: PromiseOrValue, - doctorName: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getAllDoctorToProviderRequests( - _hcaddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; -} diff --git a/client/src/contracts/common.ts b/client/src/contracts/common.ts deleted file mode 100644 index 4c90b08..0000000 --- a/client/src/contracts/common.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { Listener } from "@ethersproject/providers"; -import type { Event, EventFilter } from "ethers"; - -export interface TypedEvent< - TArgsArray extends Array = any, - TArgsObject = any -> extends Event { - args: TArgsArray & TArgsObject; -} - -export interface TypedEventFilter<_TEvent extends TypedEvent> - extends EventFilter {} - -export interface TypedListener { - (...listenerArg: [...__TypechainArgsArray, TEvent]): void; -} - -type __TypechainArgsArray = T extends TypedEvent ? U : never; - -export interface OnEvent { - ( - eventFilter: TypedEventFilter, - listener: TypedListener - ): TRes; - (eventName: string, listener: Listener): TRes; -} - -export type MinEthersFactory = { - deploy(...a: ARGS[]): Promise; -}; - -export type GetContractTypeFromFactory = F extends MinEthersFactory< - infer C, - any -> - ? C - : never; - -export type GetARGsTypeFromFactory = F extends MinEthersFactory - ? Parameters - : never; - -export type PromiseOrValue = T | Promise; diff --git a/client/src/contracts/factories/HealthBlock__factory.ts b/client/src/contracts/factories/HealthBlock__factory.ts deleted file mode 100644 index 955c3b7..0000000 --- a/client/src/contracts/factories/HealthBlock__factory.ts +++ /dev/null @@ -1,794 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../common"; -import type { HealthBlock, HealthBlockInterface } from "../HealthBlock"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "doctor", - type: "address", - }, - { - indexed: true, - internalType: "string", - name: "doctorName", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "credentialsHash", - type: "string", - }, - ], - name: "DoctorRequestRaised", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", - type: "address", - }, - { - indexed: true, - internalType: "string", - name: "_name", - type: "string", - }, - ], - name: "NDoctor", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", - type: "address", - }, - { - indexed: true, - internalType: "string", - name: "_name", - type: "string", - }, - ], - name: "NHCProvider", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", - type: "address", - }, - { - indexed: true, - internalType: "string", - name: "_name", - type: "string", - }, - ], - name: "NPatient", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "doctor", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "requestId", - type: "uint256", - }, - ], - name: "RequestApproved", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "doctor", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "provider", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "requestId", - type: "uint256", - }, - ], - name: "RequestRejected", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "patients", - outputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint8", - name: "age", - type: "uint8", - }, - { - internalType: "string", - name: "email", - type: "string", - }, - { - internalType: "address", - name: "id", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "providerToDoctorRequests", - outputs: [ - { - internalType: "string", - name: "doctorName", - type: "string", - }, - { - internalType: "address", - name: "doctorAddr", - type: "address", - }, - { - internalType: "string", - name: "status", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "providerToDoctors", - outputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint8", - name: "age", - type: "uint8", - }, - { - internalType: "string", - name: "email", - type: "string", - }, - { - internalType: "string", - name: "specialization", - type: "string", - }, - { - internalType: "address", - name: "id", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "doctorName", - type: "string", - }, - { - internalType: "string", - name: "credentialsHash", - type: "string", - }, - ], - name: "raiseRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getRequests", - outputs: [ - { - components: [ - { - internalType: "address", - name: "doctor", - type: "address", - }, - { - internalType: "string", - name: "doctorName", - type: "string", - }, - { - internalType: "string", - name: "credentialsHash", - type: "string", - }, - { - internalType: "string", - name: "status", - type: "string", - }, - ], - internalType: "struct HealthBlock.Request[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "requestId", - type: "uint256", - }, - ], - name: "rejectRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "requestId", - type: "uint256", - }, - ], - name: "approveRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getPatientInfo", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "uint8", - name: "", - type: "uint8", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_address", - type: "address", - }, - ], - name: "getPatientInfoAll", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "uint8", - name: "", - type: "uint8", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "_name", - type: "string", - }, - { - internalType: "uint8", - name: "_age", - type: "uint8", - }, - { - internalType: "string", - name: "_email", - type: "string", - }, - ], - name: "registerPatient", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getDoctorInfo", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "uint8", - name: "", - type: "uint8", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_address", - type: "address", - }, - ], - name: "getDoctorInfoAll", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "uint8", - name: "", - type: "uint8", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "_name", - type: "string", - }, - { - internalType: "uint8", - name: "_age", - type: "uint8", - }, - { - internalType: "string", - name: "_email", - type: "string", - }, - { - internalType: "string", - name: "_specialization", - type: "string", - }, - ], - name: "registerDoctor", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getHCProviderInfo", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_address", - type: "address", - }, - ], - name: "getHCProviderInfoAll", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "_name", - type: "string", - }, - { - internalType: "string", - name: "_email", - type: "string", - }, - { - internalType: "string", - name: "_address", - type: "string", - }, - { - internalType: "string", - name: "_phone", - type: "string", - }, - ], - name: "registerHCProvider", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "providerAddress", - type: "address", - }, - ], - name: "getAllDoctorsForProvider", - outputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "uint8", - name: "age", - type: "uint8", - }, - { - internalType: "string", - name: "email", - type: "string", - }, - { - internalType: "string", - name: "specialization", - type: "string", - }, - { - internalType: "address", - name: "id", - type: "address", - }, - ], - internalType: "struct HealthBlock.doctor[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_providerAddress", - type: "address", - }, - { - internalType: "address", - name: "_doctorAddress", - type: "address", - }, - { - internalType: "uint256", - name: "idx", - type: "uint256", - }, - ], - name: "mapDoctorToProvider", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_providerAddress", - type: "address", - }, - { - internalType: "address", - name: "_doctorAddress", - type: "address", - }, - { - internalType: "uint256", - name: "idx", - type: "uint256", - }, - ], - name: "declineDoctorToProviderRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_providerAddress", - type: "address", - }, - { - internalType: "address", - name: "_doctorAddress", - type: "address", - }, - { - internalType: "string", - name: "doctorName", - type: "string", - }, - ], - name: "raiseDoctorToProviderRequest", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_hcaddress", - type: "address", - }, - ], - name: "getAllDoctorToProviderRequests", - outputs: [ - { - components: [ - { - internalType: "string", - name: "doctorName", - type: "string", - }, - { - internalType: "address", - name: "doctorAddr", - type: "address", - }, - { - internalType: "string", - name: "status", - type: "string", - }, - ], - internalType: "struct HealthBlock.DoctorToProviderRequest[]", - name: "", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, -]; - -const _bytecode = - "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614640806100606000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063939686dc116100b8578063bc4fe4021161007c578063bc4fe4021461035d578063c5b0aab014610379578063cc063706146103ac578063d1d8b266146103de578063d7d1bbdb146103fa578063e1e36ab91461041657610137565b8063939686dc146102b6578063a9b467ee146102d2578063afc3b5c414610304578063b2d258ff14610320578063b380f5c61461033c57610137565b80635df122e1116100ff5780635df122e1146101f75780636d36f7be146102275780637521eca11461025b5780638813ce1214610277578063916922c41461029557610137565b80630869cfbc1461013c57806310b500cc1461016f5780631c2972051461019f5780632d7788db146101bb578063326df664146101d7575b600080fd5b61015660048036038101906101519190613518565b610449565b6040516101669493929190613600565b60405180910390f35b61018960048036038101906101849190613518565b6105b6565b60405161019691906137c5565b60405180910390f35b6101b960048036038101906101b49190613948565b6107ce565b005b6101d560048036038101906101d09190613a09565b610a07565b005b6101df610c03565b6040516101ee93929190613a36565b60405180910390f35b610211600480360381019061020c9190613518565b610e2d565b60405161021e9190613bd0565b60405180910390f35b610241600480360381019061023c9190613bf2565b6110f4565b604051610252959493929190613c32565b60405180910390f35b61027560048036038101906102709190613c9a565b61130c565b005b61027f611709565b60405161028c9190613e20565b60405180910390f35b61029d611a60565b6040516102ad9493929190613e42565b60405180910390f35b6102d060048036038101906102cb9190613ea3565b611d9b565b005b6102ec60048036038101906102e79190613518565b611ee9565b6040516102fb93929190613a36565b60405180910390f35b61031e60048036038101906103199190613f12565b612072565b005b61033a60048036038101906103359190613f8a565b612260565b005b6103446125ae565b6040516103549493929190614045565b60405180910390f35b6103776004803603810190610372919061409f565b61286c565b005b610393600480360381019061038e9190613518565b612b8a565b6040516103a39493929190613e42565b60405180910390f35b6103c660048036038101906103c19190613bf2565b612e23565b6040516103d593929190614176565b60405180910390f35b6103f860048036038101906103f39190613c9a565b612f9a565b005b610414600480360381019061040f9190613a09565b61308e565b005b610430600480360381019061042b9190613518565b61328a565b6040516104409493929190614045565b60405180910390f35b600460205280600052604060002060009150905080600001805461046c906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610498906141ea565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050908060010160009054906101000a900460ff169080600201805461050d906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610539906141ea565b80156105865780601f1061055b57610100808354040283529160200191610586565b820191906000526020600020905b81548152906001019060200180831161056957829003601f168201915b5050505050908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156107c3578382906000526020600020906003020160405180606001604052908160008201805461064a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610676906141ea565b80156106c35780601f10610698576101008083540402835291602001916106c3565b820191906000526020600020905b8154815290600101906020018083116106a657829003601f168201915b505050505081526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610732906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461075e906141ea565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b50505050508152505081526020019060010190610617565b505050509050919050565b6040516020016107dd9061424c565b60405160208183030381529060405280519060200120836040516020016108049190614292565b604051602081830303815290604052805190602001200361082457600080fd5b6040516020016108339061424c565b604051602081830303815290604052805190602001208160405160200161085a9190614292565b604051602081830303815290604052805190602001200361087a57600080fd5b60008260ff16118015610890575060648260ff16105b61089957600080fd5b60405180608001604052808481526020018360ff1681526020018281526020013373ffffffffffffffffffffffffffffffffffffffff16815250600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816109279190614455565b5060208201518160010160006101000a81548160ff021916908360ff160217905550604082015181600201908161095e9190614455565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050826040516109b79190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610b0957610b086145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f72656a6563746564000000000000000000000000000000000000000000000000815250816003019081610b5f9190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4d2b09745b50f68da85b0b25854d46c2b85b43dd6f04ba6f3f503ff878bf4ae560405160405180910390a45050565b606060006060336000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611610caa57600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054610d13906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3f906141ea565b8015610d8c5780601f10610d6157610100808354040283529160200191610d8c565b820191906000526020600020905b815481529060010190602001808311610d6f57829003601f168201915b50505050509250808054610d9f906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcb906141ea565b8015610e185780601f10610ded57610100808354040283529160200191610e18565b820191906000526020600020905b815481529060010190602001808311610dfb57829003601f168201915b50505050509050955095509550505050909192565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156110e957838290600052602060002090600502016040518060a0016040529081600082018054610ec1906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610eed906141ea565b8015610f3a5780601f10610f0f57610100808354040283529160200191610f3a565b820191906000526020600020905b815481529060010190602001808311610f1d57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff168152602001600282018054610f70906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9c906141ea565b8015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b50505050508152602001600382018054611002906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461102e906141ea565b801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190610e8e565b505050509050919050565b6002602052816000526040600020818154811061111057600080fd5b906000526020600020906005020160009150915050806000018054611134906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611160906141ea565b80156111ad5780601f10611182576101008083540402835291602001916111ad565b820191906000526020600020905b81548152906001019060200180831161119057829003601f168201915b5050505050908060010160009054906101000a900460ff16908060020180546111d5906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611201906141ea565b801561124e5780601f106112235761010080835404028352916020019161124e565b820191906000526020600020905b81548152906001019060200180831161123157829003601f168201915b505050505090806003018054611263906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461128f906141ea565b80156112dc5780601f106112b1576101008083540402835291602001916112dc565b820191906000526020600020905b8154815290600101906020018083116112bf57829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106113a2576113a16145b9565b5b906000526020600020906003020190506040518060400160405280600981526020017f636f6e6669726d656400000000000000000000000000000000000000000000008152508160020190816113f89190614455565b50600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405280846000018054611452906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461147e906141ea565b80156114cb5780601f106114a0576101008083540402835291602001916114cb565b820191906000526020600020905b8154815290600101906020018083116114ae57829003601f168201915b505050505081526020018460010160009054906101000a900460ff1660ff1681526020018460020180546114fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461152a906141ea565b80156115775780601f1061154c57610100808354040283529160200191611577565b820191906000526020600020905b81548152906001019060200180831161155a57829003601f168201915b50505050508152602001846003018054611590906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546115bc906141ea565b80156116095780601f106115de57610100808354040283529160200191611609565b820191906000526020600020905b8154815290600101906020018083116115ec57829003601f168201915b505050505081526020018673ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000209060050201600090919091909150600082015181600001908161166b9190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816116a29190614455565b5060608201518160030190816116b89190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179090614599565b60405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611a5757838290600052602060002090600402016040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180546118a2906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546118ce906141ea565b801561191b5780601f106118f05761010080835404028352916020019161191b565b820191906000526020600020905b8154815290600101906020018083116118fe57829003601f168201915b50505050508152602001600282018054611934906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611960906141ea565b80156119ad5780601f10611982576101008083540402835291602001916119ad565b820191906000526020600020905b81548152906001019060200180831161199057829003601f168201915b505050505081526020016003820180546119c6906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546119f2906141ea565b8015611a3f5780601f10611a1457610100808354040283529160200191611a3f565b820191906000526020600020905b815481529060010190602001808311611a2257829003601f168201915b50505050508152505081526020019060010190611819565b50505050905090565b606080606080336000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611611b0757600080fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054611b66906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611b92906141ea565b8015611bdf5780601f10611bb457610100808354040283529160200191611bdf565b820191906000526020600020905b815481529060010190602001808311611bc257829003601f168201915b50505050509350828054611bf2906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e906141ea565b8015611c6b5780601f10611c4057610100808354040283529160200191611c6b565b820191906000526020600020905b815481529060010190602001808311611c4e57829003601f168201915b50505050509250818054611c7e906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611caa906141ea565b8015611cf75780601f10611ccc57610100808354040283529160200191611cf7565b820191906000526020600020905b815481529060010190602001808311611cda57829003601f168201915b50505050509150808054611d0a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611d36906141ea565b8015611d835780601f10611d5857610100808354040283529160200191611d83565b820191906000526020600020905b815481529060010190602001808311611d6657829003601f168201915b50505050509050965096509650965050505090919293565b600060405180606001604052808381526020018473ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000019081611e839190614455565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019081611ee09190614455565b50505050505050565b6060600060606000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054611f58906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611f84906141ea565b8015611fd15780601f10611fa657610100808354040283529160200191611fd1565b820191906000526020600020905b815481529060010190602001808311611fb457829003601f168201915b50505050509250808054611fe4906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612010906141ea565b801561205d5780601f106120325761010080835404028352916020019161205d565b820191906000526020600020905b81548152906001019060200180831161204057829003601f168201915b50505050509050935093509350509193909250565b600060405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816121c89190614455565b5060408201518160020190816121de9190614455565b5060608201518160030190816121f49190614455565b505050826040516122059190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167f13bea7f2b146e27ade33081397e247a39c6fa801e1c40c9d03fd9d808e3bdfcd8460405161225391906145e8565b60405180910390a3505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016122b29061424c565b60405160208183030381529060405280519060200120856040516020016122d99190614292565b60405160208183030381529060405280519060200120036122f957600080fd5b6040516020016123089061424c565b604051602081830303815290604052805190602001208360405160200161232f9190614292565b604051602081830303815290604052805190602001200361234f57600080fd5b60405160200161235e9061424c565b60405160208183030381529060405280519060200120826040516020016123859190614292565b60405160208183030381529060405280519060200120036123a557600080fd5b60008460ff161180156123bb575060648460ff16105b6123c457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16111561242257600080fd5b6040518060a001604052808681526020018560ff1681526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816124b69190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816124ed9190614455565b5060608201518160030190816125039190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508460405161255c9190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a35050505050565b60606000606080336000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161161265657600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546126c3906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546126ef906141ea565b801561273c5780601f106127115761010080835404028352916020019161273c565b820191906000526020600020905b81548152906001019060200180831161271f57829003601f168201915b5050505050935081805461274f906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461277b906141ea565b80156127c85780601f1061279d576101008083540402835291602001916127c8565b820191906000526020600020905b8154815290600101906020018083116127ab57829003601f168201915b505050505091508080546127db906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612807906141ea565b80156128545780601f1061282957610100808354040283529160200191612854565b820191906000526020600020905b81548152906001019060200180831161283757829003601f168201915b50505050509050965096509650965050505090919293565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016128be9061424c565b60405160208183030381529060405280519060200120856040516020016128e59190614292565b604051602081830303815290604052805190602001200361290557600080fd5b6040516020016129149061424c565b604051602081830303815290604052805190602001208460405160200161293b9190614292565b604051602081830303815290604052805190602001200361295b57600080fd5b60405160200161296a9061424c565b60405160208183030381529060405280519060200120836040516020016129919190614292565b60405160208183030381529060405280519060200120036129b157600080fd5b6040516020016129c09061424c565b60405160208183030381529060405280519060200120826040516020016129e79190614292565b6040516020818303038152906040528051906020012003612a0757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115612a6557600080fd5b6040518060a001604052808681526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000019081612af69190614455565b506020820151816001019081612b0c9190614455565b506040820151816002019081612b229190614455565b506060820151816003019081612b389190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050505050505050565b6060806060806000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054612bef906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612c1b906141ea565b8015612c685780601f10612c3d57610100808354040283529160200191612c68565b820191906000526020600020905b815481529060010190602001808311612c4b57829003601f168201915b50505050509350828054612c7b906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612ca7906141ea565b8015612cf45780601f10612cc957610100808354040283529160200191612cf4565b820191906000526020600020905b815481529060010190602001808311612cd757829003601f168201915b50505050509250818054612d07906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612d33906141ea565b8015612d805780601f10612d5557610100808354040283529160200191612d80565b820191906000526020600020905b815481529060010190602001808311612d6357829003601f168201915b50505050509150808054612d93906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612dbf906141ea565b8015612e0c5780601f10612de157610100808354040283529160200191612e0c565b820191906000526020600020905b815481529060010190602001808311612def57829003601f168201915b505050505090509450945094509450509193509193565b60036020528160005260406000208181548110612e3f57600080fd5b906000526020600020906003020160009150915050806000018054612e63906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8f906141ea565b8015612edc5780601f10612eb157610100808354040283529160200191612edc565b820191906000526020600020905b815481529060010190602001808311612ebf57829003601f168201915b5050505050908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054612f17906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612f43906141ea565b8015612f905780601f10612f6557610100808354040283529160200191612f90565b820191906000526020600020905b815481529060010190602001808311612f7357829003601f168201915b5050505050905083565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106130305761302f6145b9565b5b906000526020600020906003020190506040518060400160405280600881526020017f72656a65637465640000000000000000000000000000000000000000000000008152508160020190816130869190614455565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461311c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311390614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106131905761318f6145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f617070726f7665640000000000000000000000000000000000000000000000008152508160030190816131e69190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd9a9c1b40a747e79bd4c1aeabd897bfd5b3679e58fcdcd20dd7af4a8274196bc60405160405180910390a45050565b606060006060806000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546132fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461332a906141ea565b80156133775780601f1061334c57610100808354040283529160200191613377565b820191906000526020600020905b81548152906001019060200180831161335a57829003601f168201915b5050505050935081805461338a906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546133b6906141ea565b80156134035780601f106133d857610100808354040283529160200191613403565b820191906000526020600020905b8154815290600101906020018083116133e657829003601f168201915b50505050509150808054613416906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054613442906141ea565b801561348f5780601f106134645761010080835404028352916020019161348f565b820191906000526020600020905b81548152906001019060200180831161347257829003601f168201915b505050505090509450945094509450509193509193565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134e5826134ba565b9050919050565b6134f5816134da565b811461350057600080fd5b50565b600081359050613512816134ec565b92915050565b60006020828403121561352e5761352d6134b0565b5b600061353c84828501613503565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561357f578082015181840152602081019050613564565b60008484015250505050565b6000601f19601f8301169050919050565b60006135a782613545565b6135b18185613550565b93506135c1818560208601613561565b6135ca8161358b565b840191505092915050565b600060ff82169050919050565b6135eb816135d5565b82525050565b6135fa816134da565b82525050565b6000608082019050818103600083015261361a818761359c565b905061362960208301866135e2565b818103604083015261363b818561359c565b905061364a60608301846135f1565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061369b82613545565b6136a5818561367f565b93506136b5818560208601613561565b6136be8161358b565b840191505092915050565b6136d2816134da565b82525050565b600060608301600083015184820360008601526136f58282613690565b915050602083015161370a60208601826136c9565b50604083015184820360408601526137228282613690565b9150508091505092915050565b600061373b83836136d8565b905092915050565b6000602082019050919050565b600061375b82613653565b613765818561365e565b9350836020820285016137778561366f565b8060005b858110156137b35784840389528151613794858261372f565b945061379f83613743565b925060208a0199505060018101905061377b565b50829750879550505050505092915050565b600060208201905081810360008301526137df8184613750565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138298261358b565b810181811067ffffffffffffffff82111715613848576138476137f1565b5b80604052505050565b600061385b6134a6565b90506138678282613820565b919050565b600067ffffffffffffffff821115613887576138866137f1565b5b6138908261358b565b9050602081019050919050565b82818337600083830152505050565b60006138bf6138ba8461386c565b613851565b9050828152602081018484840111156138db576138da6137ec565b5b6138e684828561389d565b509392505050565b600082601f830112613903576139026137e7565b5b81356139138482602086016138ac565b91505092915050565b613925816135d5565b811461393057600080fd5b50565b6000813590506139428161391c565b92915050565b600080600060608486031215613961576139606134b0565b5b600084013567ffffffffffffffff81111561397f5761397e6134b5565b5b61398b868287016138ee565b935050602061399c86828701613933565b925050604084013567ffffffffffffffff8111156139bd576139bc6134b5565b5b6139c9868287016138ee565b9150509250925092565b6000819050919050565b6139e6816139d3565b81146139f157600080fd5b50565b600081359050613a03816139dd565b92915050565b600060208284031215613a1f57613a1e6134b0565b5b6000613a2d848285016139f4565b91505092915050565b60006060820190508181036000830152613a50818661359c565b9050613a5f60208301856135e2565b8181036040830152613a71818461359c565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ab0816135d5565b82525050565b600060a0830160008301518482036000860152613ad38282613690565b9150506020830151613ae86020860182613aa7565b5060408301518482036040860152613b008282613690565b91505060608301518482036060860152613b1a8282613690565b9150506080830151613b2f60808601826136c9565b508091505092915050565b6000613b468383613ab6565b905092915050565b6000602082019050919050565b6000613b6682613a7b565b613b708185613a86565b935083602082028501613b8285613a97565b8060005b85811015613bbe5784840389528151613b9f8582613b3a565b9450613baa83613b4e565b925060208a01995050600181019050613b86565b50829750879550505050505092915050565b60006020820190508181036000830152613bea8184613b5b565b905092915050565b60008060408385031215613c0957613c086134b0565b5b6000613c1785828601613503565b9250506020613c28858286016139f4565b9150509250929050565b600060a0820190508181036000830152613c4c818861359c565b9050613c5b60208301876135e2565b8181036040830152613c6d818661359c565b90508181036060830152613c81818561359c565b9050613c9060808301846135f1565b9695505050505050565b600080600060608486031215613cb357613cb26134b0565b5b6000613cc186828701613503565b9350506020613cd286828701613503565b9250506040613ce3868287016139f4565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000608083016000830151613d3160008601826136c9565b5060208301518482036020860152613d498282613690565b91505060408301518482036040860152613d638282613690565b91505060608301518482036060860152613d7d8282613690565b9150508091505092915050565b6000613d968383613d19565b905092915050565b6000602082019050919050565b6000613db682613ced565b613dc08185613cf8565b935083602082028501613dd285613d09565b8060005b85811015613e0e5784840389528151613def8582613d8a565b9450613dfa83613d9e565b925060208a01995050600181019050613dd6565b50829750879550505050505092915050565b60006020820190508181036000830152613e3a8184613dab565b905092915050565b60006080820190508181036000830152613e5c818761359c565b90508181036020830152613e70818661359c565b90508181036040830152613e84818561359c565b90508181036060830152613e98818461359c565b905095945050505050565b600080600060608486031215613ebc57613ebb6134b0565b5b6000613eca86828701613503565b9350506020613edb86828701613503565b925050604084013567ffffffffffffffff811115613efc57613efb6134b5565b5b613f08868287016138ee565b9150509250925092565b60008060408385031215613f2957613f286134b0565b5b600083013567ffffffffffffffff811115613f4757613f466134b5565b5b613f53858286016138ee565b925050602083013567ffffffffffffffff811115613f7457613f736134b5565b5b613f80858286016138ee565b9150509250929050565b60008060008060808587031215613fa457613fa36134b0565b5b600085013567ffffffffffffffff811115613fc257613fc16134b5565b5b613fce878288016138ee565b9450506020613fdf87828801613933565b935050604085013567ffffffffffffffff81111561400057613fff6134b5565b5b61400c878288016138ee565b925050606085013567ffffffffffffffff81111561402d5761402c6134b5565b5b614039878288016138ee565b91505092959194509250565b6000608082019050818103600083015261405f818761359c565b905061406e60208301866135e2565b8181036040830152614080818561359c565b90508181036060830152614094818461359c565b905095945050505050565b600080600080608085870312156140b9576140b86134b0565b5b600085013567ffffffffffffffff8111156140d7576140d66134b5565b5b6140e3878288016138ee565b945050602085013567ffffffffffffffff811115614104576141036134b5565b5b614110878288016138ee565b935050604085013567ffffffffffffffff811115614131576141306134b5565b5b61413d878288016138ee565b925050606085013567ffffffffffffffff81111561415e5761415d6134b5565b5b61416a878288016138ee565b91505092959194509250565b60006060820190508181036000830152614190818661359c565b905061419f60208301856135f1565b81810360408301526141b1818461359c565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061420257607f821691505b602082108103614215576142146141bb565b5b50919050565b600081905092915050565b50565b600061423660008361421b565b915061424182614226565b600082019050919050565b600061425782614229565b9150819050919050565b600061426c82613545565b614276818561421b565b9350614286818560208601613561565b80840191505092915050565b600061429e8284614261565b915081905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261430b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826142ce565b61431586836142ce565b95508019841693508086168417925050509392505050565b6000819050919050565b600061435261434d614348846139d3565b61432d565b6139d3565b9050919050565b6000819050919050565b61436c83614337565b61438061437882614359565b8484546142db565b825550505050565b600090565b614395614388565b6143a0818484614363565b505050565b5b818110156143c4576143b960008261438d565b6001810190506143a6565b5050565b601f821115614409576143da816142a9565b6143e3846142be565b810160208510156143f2578190505b6144066143fe856142be565b8301826143a5565b50505b505050565b600082821c905092915050565b600061442c6000198460080261440e565b1980831691505092915050565b6000614445838361441b565b9150826002028217905092915050565b61445e82613545565b67ffffffffffffffff811115614477576144766137f1565b5b61448182546141ea565b61448c8282856143c8565b600060209050601f8311600181146144bf57600084156144ad578287015190505b6144b78582614439565b86555061451f565b601f1984166144cd866142a9565b60005b828110156144f5578489015182556001820191506020850194506020810190506144d0565b86831015614512578489015161450e601f89168261441b565b8355505b6001600288020188555050505b505050505050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000614583602183613550565b915061458e82614527565b604082019050919050565b600060208201905081810360008301526145b281614576565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020820190508181036000830152614602818461359c565b90509291505056fea2646970667358221220c1b2ae848c7babf4c77ed1faeecb417b032136e191fa5cca6754b17c1620030064736f6c63430008110033"; - -type HealthBlockConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: HealthBlockConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class HealthBlock__factory extends ContractFactory { - constructor(...args: HealthBlockConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): HealthBlock { - return super.attach(address) as HealthBlock; - } - override connect(signer: Signer): HealthBlock__factory { - return super.connect(signer) as HealthBlock__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): HealthBlockInterface { - return new utils.Interface(_abi) as HealthBlockInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): HealthBlock { - return new Contract(address, _abi, signerOrProvider) as HealthBlock; - } -} diff --git a/client/src/contracts/factories/index.ts b/client/src/contracts/factories/index.ts deleted file mode 100644 index 085d713..0000000 --- a/client/src/contracts/factories/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { HealthBlock__factory } from "./HealthBlock__factory"; diff --git a/client/src/contracts/index.ts b/client/src/contracts/index.ts deleted file mode 100644 index 28a0273..0000000 --- a/client/src/contracts/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { HealthBlock } from "./HealthBlock"; -export * as factories from "./factories"; -export { HealthBlock__factory } from "./factories/HealthBlock__factory"; From 1afe4c9abdf8c796284540788a919e2035591684 Mon Sep 17 00:00:00 2001 From: Shruthi23 Date: Mon, 8 May 2023 12:56:30 -0700 Subject: [PATCH 6/6] Regenrated files --- client/src/contracts/HealthBlock.ts | 1128 +++++++++++++++++ client/src/contracts/common.ts | 46 + .../factories/HealthBlock__factory.ts | 794 ++++++++++++ client/src/contracts/factories/index.ts | 4 + client/src/contracts/index.ts | 6 + 5 files changed, 1978 insertions(+) create mode 100644 client/src/contracts/HealthBlock.ts create mode 100644 client/src/contracts/common.ts create mode 100644 client/src/contracts/factories/HealthBlock__factory.ts create mode 100644 client/src/contracts/factories/index.ts create mode 100644 client/src/contracts/index.ts diff --git a/client/src/contracts/HealthBlock.ts b/client/src/contracts/HealthBlock.ts new file mode 100644 index 0000000..131203a --- /dev/null +++ b/client/src/contracts/HealthBlock.ts @@ -0,0 +1,1128 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import type { + FunctionFragment, + Result, + EventFragment, +} from "@ethersproject/abi"; +import type { Listener, Provider } from "@ethersproject/providers"; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, + PromiseOrValue, +} from "./common"; + +export declare namespace HealthBlock { + export type RequestStruct = { + doctor: PromiseOrValue; + doctorName: PromiseOrValue; + credentialsHash: PromiseOrValue; + status: PromiseOrValue; + }; + + export type RequestStructOutput = [string, string, string, string] & { + doctor: string; + doctorName: string; + credentialsHash: string; + status: string; + }; + + export type DoctorStruct = { + name: PromiseOrValue; + age: PromiseOrValue; + email: PromiseOrValue; + specialization: PromiseOrValue; + id: PromiseOrValue; + }; + + export type DoctorStructOutput = [string, number, string, string, string] & { + name: string; + age: number; + email: string; + specialization: string; + id: string; + }; + + export type DoctorToProviderRequestStruct = { + doctorName: PromiseOrValue; + doctorAddr: PromiseOrValue; + status: PromiseOrValue; + }; + + export type DoctorToProviderRequestStructOutput = [string, string, string] & { + doctorName: string; + doctorAddr: string; + status: string; + }; +} + +export interface HealthBlockInterface extends utils.Interface { + functions: { + "patients(address)": FunctionFragment; + "providerToDoctorRequests(address,uint256)": FunctionFragment; + "providerToDoctors(address,uint256)": FunctionFragment; + "raiseRequest(string,string)": FunctionFragment; + "getRequests()": FunctionFragment; + "rejectRequest(uint256)": FunctionFragment; + "approveRequest(uint256)": FunctionFragment; + "getPatientInfo()": FunctionFragment; + "getPatientInfoAll(address)": FunctionFragment; + "registerPatient(string,uint8,string)": FunctionFragment; + "getDoctorInfo()": FunctionFragment; + "getDoctorInfoAll(address)": FunctionFragment; + "registerDoctor(string,uint8,string,string)": FunctionFragment; + "getHCProviderInfo()": FunctionFragment; + "getHCProviderInfoAll(address)": FunctionFragment; + "registerHCProvider(string,string,string,string)": FunctionFragment; + "getAllDoctorsForProvider(address)": FunctionFragment; + "mapDoctorToProvider(address,address,uint256)": FunctionFragment; + "declineDoctorToProviderRequest(address,address,uint256)": FunctionFragment; + "raiseDoctorToProviderRequest(address,address,string)": FunctionFragment; + "getAllDoctorToProviderRequests(address)": FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | "patients" + | "providerToDoctorRequests" + | "providerToDoctors" + | "raiseRequest" + | "getRequests" + | "rejectRequest" + | "approveRequest" + | "getPatientInfo" + | "getPatientInfoAll" + | "registerPatient" + | "getDoctorInfo" + | "getDoctorInfoAll" + | "registerDoctor" + | "getHCProviderInfo" + | "getHCProviderInfoAll" + | "registerHCProvider" + | "getAllDoctorsForProvider" + | "mapDoctorToProvider" + | "declineDoctorToProviderRequest" + | "raiseDoctorToProviderRequest" + | "getAllDoctorToProviderRequests" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "patients", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "providerToDoctorRequests", + values: [PromiseOrValue, PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "providerToDoctors", + values: [PromiseOrValue, PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "raiseRequest", + values: [PromiseOrValue, PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "getRequests", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "rejectRequest", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "approveRequest", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "getPatientInfo", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getPatientInfoAll", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "registerPatient", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "getDoctorInfo", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getDoctorInfoAll", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "registerDoctor", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "getHCProviderInfo", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getHCProviderInfoAll", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "registerHCProvider", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "getAllDoctorsForProvider", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "mapDoctorToProvider", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "declineDoctorToProviderRequest", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "raiseDoctorToProviderRequest", + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue + ] + ): string; + encodeFunctionData( + functionFragment: "getAllDoctorToProviderRequests", + values: [PromiseOrValue] + ): string; + + decodeFunctionResult(functionFragment: "patients", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "providerToDoctorRequests", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "providerToDoctors", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "raiseRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRequests", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "rejectRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "approveRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getPatientInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getPatientInfoAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerPatient", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDoctorInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDoctorInfoAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerDoctor", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getHCProviderInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getHCProviderInfoAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "registerHCProvider", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllDoctorsForProvider", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "mapDoctorToProvider", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "declineDoctorToProviderRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "raiseDoctorToProviderRequest", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAllDoctorToProviderRequests", + data: BytesLike + ): Result; + + events: { + "DoctorRequestRaised(address,string,string)": EventFragment; + "NDoctor(address,string)": EventFragment; + "NHCProvider(address,string)": EventFragment; + "NPatient(address,string)": EventFragment; + "RequestApproved(address,address,uint256)": EventFragment; + "RequestRejected(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "DoctorRequestRaised"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NDoctor"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NHCProvider"): EventFragment; + getEvent(nameOrSignatureOrTopic: "NPatient"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RequestApproved"): EventFragment; + getEvent(nameOrSignatureOrTopic: "RequestRejected"): EventFragment; +} + +export interface DoctorRequestRaisedEventObject { + doctor: string; + doctorName: string; + credentialsHash: string; +} +export type DoctorRequestRaisedEvent = TypedEvent< + [string, string, string], + DoctorRequestRaisedEventObject +>; + +export type DoctorRequestRaisedEventFilter = + TypedEventFilter; + +export interface NDoctorEventObject { + _from: string; + _name: string; +} +export type NDoctorEvent = TypedEvent<[string, string], NDoctorEventObject>; + +export type NDoctorEventFilter = TypedEventFilter; + +export interface NHCProviderEventObject { + _from: string; + _name: string; +} +export type NHCProviderEvent = TypedEvent< + [string, string], + NHCProviderEventObject +>; + +export type NHCProviderEventFilter = TypedEventFilter; + +export interface NPatientEventObject { + _from: string; + _name: string; +} +export type NPatientEvent = TypedEvent<[string, string], NPatientEventObject>; + +export type NPatientEventFilter = TypedEventFilter; + +export interface RequestApprovedEventObject { + doctor: string; + provider: string; + requestId: BigNumber; +} +export type RequestApprovedEvent = TypedEvent< + [string, string, BigNumber], + RequestApprovedEventObject +>; + +export type RequestApprovedEventFilter = TypedEventFilter; + +export interface RequestRejectedEventObject { + doctor: string; + provider: string; + requestId: BigNumber; +} +export type RequestRejectedEvent = TypedEvent< + [string, string, BigNumber], + RequestRejectedEventObject +>; + +export type RequestRejectedEventFilter = TypedEventFilter; + +export interface HealthBlock extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: HealthBlockInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string] & { + name: string; + age: number; + email: string; + id: string; + } + >; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, string, string] & { + doctorName: string; + doctorAddr: string; + status: string; + } + >; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string, string] & { + name: string; + age: number; + email: string; + specialization: string; + id: string; + } + >; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getRequests( + overrides?: CallOverrides + ): Promise<[HealthBlock.RequestStructOutput[]]>; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getPatientInfo( + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getDoctorInfo( + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getHCProviderInfo( + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[HealthBlock.DoctorStructOutput[]]>; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[HealthBlock.DoctorToProviderRequestStructOutput[]]>; + }; + + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string] & { + name: string; + age: number; + email: string; + id: string; + } + >; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, string, string] & { + doctorName: string; + doctorAddr: string; + status: string; + } + >; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string, string] & { + name: string; + age: number; + email: string; + specialization: string; + id: string; + } + >; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getRequests( + overrides?: CallOverrides + ): Promise; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getPatientInfo(overrides?: CallOverrides): Promise<[string, number, string]>; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getDoctorInfo( + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getHCProviderInfo( + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + callStatic: { + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string] & { + name: string; + age: number; + email: string; + id: string; + } + >; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, string, string] & { + doctorName: string; + doctorAddr: string; + status: string; + } + >; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise< + [string, number, string, string, string] & { + name: string; + age: number; + email: string; + specialization: string; + id: string; + } + >; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getRequests( + overrides?: CallOverrides + ): Promise; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getPatientInfo( + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string]>; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getDoctorInfo( + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, number, string, string]>; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getHCProviderInfo( + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[string, string, string, string]>; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "DoctorRequestRaised(address,string,string)"( + doctor?: PromiseOrValue | null, + doctorName?: PromiseOrValue | null, + credentialsHash?: null + ): DoctorRequestRaisedEventFilter; + DoctorRequestRaised( + doctor?: PromiseOrValue | null, + doctorName?: PromiseOrValue | null, + credentialsHash?: null + ): DoctorRequestRaisedEventFilter; + + "NDoctor(address,string)"( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NDoctorEventFilter; + NDoctor( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NDoctorEventFilter; + + "NHCProvider(address,string)"( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NHCProviderEventFilter; + NHCProvider( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NHCProviderEventFilter; + + "NPatient(address,string)"( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NPatientEventFilter; + NPatient( + _from?: PromiseOrValue | null, + _name?: PromiseOrValue | null + ): NPatientEventFilter; + + "RequestApproved(address,address,uint256)"( + doctor?: PromiseOrValue | null, + provider?: PromiseOrValue | null, + requestId?: PromiseOrValue | null + ): RequestApprovedEventFilter; + RequestApproved( + doctor?: PromiseOrValue | null, + provider?: PromiseOrValue | null, + requestId?: PromiseOrValue | null + ): RequestApprovedEventFilter; + + "RequestRejected(address,address,uint256)"( + doctor?: PromiseOrValue | null, + provider?: PromiseOrValue | null, + requestId?: PromiseOrValue | null + ): RequestRejectedEventFilter; + RequestRejected( + doctor?: PromiseOrValue | null, + provider?: PromiseOrValue | null, + requestId?: PromiseOrValue | null + ): RequestRejectedEventFilter; + }; + + estimateGas: { + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getRequests(overrides?: CallOverrides): Promise; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getPatientInfo(overrides?: CallOverrides): Promise; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getDoctorInfo(overrides?: CallOverrides): Promise; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getHCProviderInfo(overrides?: CallOverrides): Promise; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + patients( + arg0: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + providerToDoctorRequests( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + providerToDoctors( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + raiseRequest( + doctorName: PromiseOrValue, + credentialsHash: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getRequests(overrides?: CallOverrides): Promise; + + rejectRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + approveRequest( + requestId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getPatientInfo(overrides?: CallOverrides): Promise; + + getPatientInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerPatient( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getDoctorInfo(overrides?: CallOverrides): Promise; + + getDoctorInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerDoctor( + _name: PromiseOrValue, + _age: PromiseOrValue, + _email: PromiseOrValue, + _specialization: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getHCProviderInfo(overrides?: CallOverrides): Promise; + + getHCProviderInfoAll( + _address: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + registerHCProvider( + _name: PromiseOrValue, + _email: PromiseOrValue, + _address: PromiseOrValue, + _phone: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorsForProvider( + providerAddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + mapDoctorToProvider( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + declineDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + idx: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + raiseDoctorToProviderRequest( + _providerAddress: PromiseOrValue, + _doctorAddress: PromiseOrValue, + doctorName: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + getAllDoctorToProviderRequests( + _hcaddress: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/client/src/contracts/common.ts b/client/src/contracts/common.ts new file mode 100644 index 0000000..4c90b08 --- /dev/null +++ b/client/src/contracts/common.ts @@ -0,0 +1,46 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { Listener } from "@ethersproject/providers"; +import type { Event, EventFilter } from "ethers"; + +export interface TypedEvent< + TArgsArray extends Array = any, + TArgsObject = any +> extends Event { + args: TArgsArray & TArgsObject; +} + +export interface TypedEventFilter<_TEvent extends TypedEvent> + extends EventFilter {} + +export interface TypedListener { + (...listenerArg: [...__TypechainArgsArray, TEvent]): void; +} + +type __TypechainArgsArray = T extends TypedEvent ? U : never; + +export interface OnEvent { + ( + eventFilter: TypedEventFilter, + listener: TypedListener + ): TRes; + (eventName: string, listener: Listener): TRes; +} + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; + +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; + +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; + +export type PromiseOrValue = T | Promise; diff --git a/client/src/contracts/factories/HealthBlock__factory.ts b/client/src/contracts/factories/HealthBlock__factory.ts new file mode 100644 index 0000000..955c3b7 --- /dev/null +++ b/client/src/contracts/factories/HealthBlock__factory.ts @@ -0,0 +1,794 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import type { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { PromiseOrValue } from "../common"; +import type { HealthBlock, HealthBlockInterface } from "../HealthBlock"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "doctor", + type: "address", + }, + { + indexed: true, + internalType: "string", + name: "doctorName", + type: "string", + }, + { + indexed: false, + internalType: "string", + name: "credentialsHash", + type: "string", + }, + ], + name: "DoctorRequestRaised", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_from", + type: "address", + }, + { + indexed: true, + internalType: "string", + name: "_name", + type: "string", + }, + ], + name: "NDoctor", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_from", + type: "address", + }, + { + indexed: true, + internalType: "string", + name: "_name", + type: "string", + }, + ], + name: "NHCProvider", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_from", + type: "address", + }, + { + indexed: true, + internalType: "string", + name: "_name", + type: "string", + }, + ], + name: "NPatient", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "doctor", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "provider", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "requestId", + type: "uint256", + }, + ], + name: "RequestApproved", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "doctor", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "provider", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "requestId", + type: "uint256", + }, + ], + name: "RequestRejected", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "patients", + outputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint8", + name: "age", + type: "uint8", + }, + { + internalType: "string", + name: "email", + type: "string", + }, + { + internalType: "address", + name: "id", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "providerToDoctorRequests", + outputs: [ + { + internalType: "string", + name: "doctorName", + type: "string", + }, + { + internalType: "address", + name: "doctorAddr", + type: "address", + }, + { + internalType: "string", + name: "status", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "providerToDoctors", + outputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint8", + name: "age", + type: "uint8", + }, + { + internalType: "string", + name: "email", + type: "string", + }, + { + internalType: "string", + name: "specialization", + type: "string", + }, + { + internalType: "address", + name: "id", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "doctorName", + type: "string", + }, + { + internalType: "string", + name: "credentialsHash", + type: "string", + }, + ], + name: "raiseRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getRequests", + outputs: [ + { + components: [ + { + internalType: "address", + name: "doctor", + type: "address", + }, + { + internalType: "string", + name: "doctorName", + type: "string", + }, + { + internalType: "string", + name: "credentialsHash", + type: "string", + }, + { + internalType: "string", + name: "status", + type: "string", + }, + ], + internalType: "struct HealthBlock.Request[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "requestId", + type: "uint256", + }, + ], + name: "rejectRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "requestId", + type: "uint256", + }, + ], + name: "approveRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getPatientInfo", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_address", + type: "address", + }, + ], + name: "getPatientInfoAll", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "uint8", + name: "_age", + type: "uint8", + }, + { + internalType: "string", + name: "_email", + type: "string", + }, + ], + name: "registerPatient", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getDoctorInfo", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_address", + type: "address", + }, + ], + name: "getDoctorInfoAll", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "uint8", + name: "", + type: "uint8", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "uint8", + name: "_age", + type: "uint8", + }, + { + internalType: "string", + name: "_email", + type: "string", + }, + { + internalType: "string", + name: "_specialization", + type: "string", + }, + ], + name: "registerDoctor", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getHCProviderInfo", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_address", + type: "address", + }, + ], + name: "getHCProviderInfoAll", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_email", + type: "string", + }, + { + internalType: "string", + name: "_address", + type: "string", + }, + { + internalType: "string", + name: "_phone", + type: "string", + }, + ], + name: "registerHCProvider", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "providerAddress", + type: "address", + }, + ], + name: "getAllDoctorsForProvider", + outputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "uint8", + name: "age", + type: "uint8", + }, + { + internalType: "string", + name: "email", + type: "string", + }, + { + internalType: "string", + name: "specialization", + type: "string", + }, + { + internalType: "address", + name: "id", + type: "address", + }, + ], + internalType: "struct HealthBlock.doctor[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_providerAddress", + type: "address", + }, + { + internalType: "address", + name: "_doctorAddress", + type: "address", + }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, + ], + name: "mapDoctorToProvider", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_providerAddress", + type: "address", + }, + { + internalType: "address", + name: "_doctorAddress", + type: "address", + }, + { + internalType: "uint256", + name: "idx", + type: "uint256", + }, + ], + name: "declineDoctorToProviderRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_providerAddress", + type: "address", + }, + { + internalType: "address", + name: "_doctorAddress", + type: "address", + }, + { + internalType: "string", + name: "doctorName", + type: "string", + }, + ], + name: "raiseDoctorToProviderRequest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_hcaddress", + type: "address", + }, + ], + name: "getAllDoctorToProviderRequests", + outputs: [ + { + components: [ + { + internalType: "string", + name: "doctorName", + type: "string", + }, + { + internalType: "address", + name: "doctorAddr", + type: "address", + }, + { + internalType: "string", + name: "status", + type: "string", + }, + ], + internalType: "struct HealthBlock.DoctorToProviderRequest[]", + name: "", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614640806100606000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063939686dc116100b8578063bc4fe4021161007c578063bc4fe4021461035d578063c5b0aab014610379578063cc063706146103ac578063d1d8b266146103de578063d7d1bbdb146103fa578063e1e36ab91461041657610137565b8063939686dc146102b6578063a9b467ee146102d2578063afc3b5c414610304578063b2d258ff14610320578063b380f5c61461033c57610137565b80635df122e1116100ff5780635df122e1146101f75780636d36f7be146102275780637521eca11461025b5780638813ce1214610277578063916922c41461029557610137565b80630869cfbc1461013c57806310b500cc1461016f5780631c2972051461019f5780632d7788db146101bb578063326df664146101d7575b600080fd5b61015660048036038101906101519190613518565b610449565b6040516101669493929190613600565b60405180910390f35b61018960048036038101906101849190613518565b6105b6565b60405161019691906137c5565b60405180910390f35b6101b960048036038101906101b49190613948565b6107ce565b005b6101d560048036038101906101d09190613a09565b610a07565b005b6101df610c03565b6040516101ee93929190613a36565b60405180910390f35b610211600480360381019061020c9190613518565b610e2d565b60405161021e9190613bd0565b60405180910390f35b610241600480360381019061023c9190613bf2565b6110f4565b604051610252959493929190613c32565b60405180910390f35b61027560048036038101906102709190613c9a565b61130c565b005b61027f611709565b60405161028c9190613e20565b60405180910390f35b61029d611a60565b6040516102ad9493929190613e42565b60405180910390f35b6102d060048036038101906102cb9190613ea3565b611d9b565b005b6102ec60048036038101906102e79190613518565b611ee9565b6040516102fb93929190613a36565b60405180910390f35b61031e60048036038101906103199190613f12565b612072565b005b61033a60048036038101906103359190613f8a565b612260565b005b6103446125ae565b6040516103549493929190614045565b60405180910390f35b6103776004803603810190610372919061409f565b61286c565b005b610393600480360381019061038e9190613518565b612b8a565b6040516103a39493929190613e42565b60405180910390f35b6103c660048036038101906103c19190613bf2565b612e23565b6040516103d593929190614176565b60405180910390f35b6103f860048036038101906103f39190613c9a565b612f9a565b005b610414600480360381019061040f9190613a09565b61308e565b005b610430600480360381019061042b9190613518565b61328a565b6040516104409493929190614045565b60405180910390f35b600460205280600052604060002060009150905080600001805461046c906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610498906141ea565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050908060010160009054906101000a900460ff169080600201805461050d906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610539906141ea565b80156105865780601f1061055b57610100808354040283529160200191610586565b820191906000526020600020905b81548152906001019060200180831161056957829003601f168201915b5050505050908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6060600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156107c3578382906000526020600020906003020160405180606001604052908160008201805461064a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610676906141ea565b80156106c35780601f10610698576101008083540402835291602001916106c3565b820191906000526020600020905b8154815290600101906020018083116106a657829003601f168201915b505050505081526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610732906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461075e906141ea565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b50505050508152505081526020019060010190610617565b505050509050919050565b6040516020016107dd9061424c565b60405160208183030381529060405280519060200120836040516020016108049190614292565b604051602081830303815290604052805190602001200361082457600080fd5b6040516020016108339061424c565b604051602081830303815290604052805190602001208160405160200161085a9190614292565b604051602081830303815290604052805190602001200361087a57600080fd5b60008260ff16118015610890575060648260ff16105b61089957600080fd5b60405180608001604052808481526020018360ff1681526020018281526020013373ffffffffffffffffffffffffffffffffffffffff16815250600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816109279190614455565b5060208201518160010160006101000a81548160ff021916908360ff160217905550604082015181600201908161095e9190614455565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050826040516109b79190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610b0957610b086145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f72656a6563746564000000000000000000000000000000000000000000000000815250816003019081610b5f9190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4d2b09745b50f68da85b0b25854d46c2b85b43dd6f04ba6f3f503ff878bf4ae560405160405180910390a45050565b606060006060336000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611610caa57600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054610d13906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3f906141ea565b8015610d8c5780601f10610d6157610100808354040283529160200191610d8c565b820191906000526020600020905b815481529060010190602001808311610d6f57829003601f168201915b50505050509250808054610d9f906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcb906141ea565b8015610e185780601f10610ded57610100808354040283529160200191610e18565b820191906000526020600020905b815481529060010190602001808311610dfb57829003601f168201915b50505050509050955095509550505050909192565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156110e957838290600052602060002090600502016040518060a0016040529081600082018054610ec1906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610eed906141ea565b8015610f3a5780601f10610f0f57610100808354040283529160200191610f3a565b820191906000526020600020905b815481529060010190602001808311610f1d57829003601f168201915b505050505081526020016001820160009054906101000a900460ff1660ff1660ff168152602001600282018054610f70906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9c906141ea565b8015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b50505050508152602001600382018054611002906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461102e906141ea565b801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b505050505081526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190610e8e565b505050509050919050565b6002602052816000526040600020818154811061111057600080fd5b906000526020600020906005020160009150915050806000018054611134906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611160906141ea565b80156111ad5780601f10611182576101008083540402835291602001916111ad565b820191906000526020600020905b81548152906001019060200180831161119057829003601f168201915b5050505050908060010160009054906101000a900460ff16908060020180546111d5906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611201906141ea565b801561124e5780601f106112235761010080835404028352916020019161124e565b820191906000526020600020905b81548152906001019060200180831161123157829003601f168201915b505050505090806003018054611263906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461128f906141ea565b80156112dc5780601f106112b1576101008083540402835291602001916112dc565b820191906000526020600020905b8154815290600101906020018083116112bf57829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106113a2576113a16145b9565b5b906000526020600020906003020190506040518060400160405280600981526020017f636f6e6669726d656400000000000000000000000000000000000000000000008152508160020190816113f89190614455565b50600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405280846000018054611452906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461147e906141ea565b80156114cb5780601f106114a0576101008083540402835291602001916114cb565b820191906000526020600020905b8154815290600101906020018083116114ae57829003601f168201915b505050505081526020018460010160009054906101000a900460ff1660ff1681526020018460020180546114fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461152a906141ea565b80156115775780601f1061154c57610100808354040283529160200191611577565b820191906000526020600020905b81548152906001019060200180831161155a57829003601f168201915b50505050508152602001846003018054611590906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546115bc906141ea565b80156116095780601f106115de57610100808354040283529160200191611609565b820191906000526020600020905b8154815290600101906020018083116115ec57829003601f168201915b505050505081526020018673ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000209060050201600090919091909150600082015181600001908161166b9190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816116a29190614455565b5060608201518160030190816116b89190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179090614599565b60405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611a5757838290600052602060002090600402016040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180546118a2906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546118ce906141ea565b801561191b5780601f106118f05761010080835404028352916020019161191b565b820191906000526020600020905b8154815290600101906020018083116118fe57829003601f168201915b50505050508152602001600282018054611934906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611960906141ea565b80156119ad5780601f10611982576101008083540402835291602001916119ad565b820191906000526020600020905b81548152906001019060200180831161199057829003601f168201915b505050505081526020016003820180546119c6906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546119f2906141ea565b8015611a3f5780601f10611a1457610100808354040283529160200191611a3f565b820191906000526020600020905b815481529060010190602001808311611a2257829003601f168201915b50505050508152505081526020019060010190611819565b50505050905090565b606080606080336000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1611611b0757600080fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054611b66906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611b92906141ea565b8015611bdf5780601f10611bb457610100808354040283529160200191611bdf565b820191906000526020600020905b815481529060010190602001808311611bc257829003601f168201915b50505050509350828054611bf2906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1e906141ea565b8015611c6b5780601f10611c4057610100808354040283529160200191611c6b565b820191906000526020600020905b815481529060010190602001808311611c4e57829003601f168201915b50505050509250818054611c7e906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611caa906141ea565b8015611cf75780601f10611ccc57610100808354040283529160200191611cf7565b820191906000526020600020905b815481529060010190602001808311611cda57829003601f168201915b50505050509150808054611d0a906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611d36906141ea565b8015611d835780601f10611d5857610100808354040283529160200191611d83565b820191906000526020600020905b815481529060010190602001808311611d6657829003601f168201915b50505050509050965096509650965050505090919293565b600060405180606001604052808381526020018473ffffffffffffffffffffffffffffffffffffffff1681526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000019081611e839190614455565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019081611ee09190614455565b50505050505050565b6060600060606000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201828054611f58906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054611f84906141ea565b8015611fd15780601f10611fa657610100808354040283529160200191611fd1565b820191906000526020600020905b815481529060010190602001808311611fb457829003601f168201915b50505050509250808054611fe4906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612010906141ea565b801561205d5780601f106120325761010080835404028352916020019161205d565b820191906000526020600020905b81548152906001019060200180831161204057829003601f168201915b50505050509050935093509350509193909250565b600060405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020016040518060400160405280600781526020017f70656e64696e67000000000000000000000000000000000000000000000000008152508152509050600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190816121c89190614455565b5060408201518160020190816121de9190614455565b5060608201518160030190816121f49190614455565b505050826040516122059190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167f13bea7f2b146e27ade33081397e247a39c6fa801e1c40c9d03fd9d808e3bdfcd8460405161225391906145e8565b60405180910390a3505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016122b29061424c565b60405160208183030381529060405280519060200120856040516020016122d99190614292565b60405160208183030381529060405280519060200120036122f957600080fd5b6040516020016123089061424c565b604051602081830303815290604052805190602001208360405160200161232f9190614292565b604051602081830303815290604052805190602001200361234f57600080fd5b60405160200161235e9061424c565b60405160208183030381529060405280519060200120826040516020016123859190614292565b60405160208183030381529060405280519060200120036123a557600080fd5b60008460ff161180156123bb575060648460ff16105b6123c457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16111561242257600080fd5b6040518060a001604052808681526020018560ff1681526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816124b69190614455565b5060208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160020190816124ed9190614455565b5060608201518160030190816125039190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508460405161255c9190614292565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167fe3413e34d7cfab2884866aa8dfc64b0c31d51db035044e04a349a1faf6c7d67660405160405180910390a35050505050565b60606000606080336000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161161265657600080fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546126c3906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546126ef906141ea565b801561273c5780601f106127115761010080835404028352916020019161273c565b820191906000526020600020905b81548152906001019060200180831161271f57829003601f168201915b5050505050935081805461274f906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461277b906141ea565b80156127c85780601f1061279d576101008083540402835291602001916127c8565b820191906000526020600020905b8154815290600101906020018083116127ab57829003601f168201915b505050505091508080546127db906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612807906141ea565b80156128545780601f1061282957610100808354040283529160200191612854565b820191906000526020600020905b81548152906001019060200180831161283757829003601f168201915b50505050509050965096509650965050505090919293565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506040516020016128be9061424c565b60405160208183030381529060405280519060200120856040516020016128e59190614292565b604051602081830303815290604052805190602001200361290557600080fd5b6040516020016129149061424c565b604051602081830303815290604052805190602001208460405160200161293b9190614292565b604051602081830303815290604052805190602001200361295b57600080fd5b60405160200161296a9061424c565b60405160208183030381529060405280519060200120836040516020016129919190614292565b60405160208183030381529060405280519060200120036129b157600080fd5b6040516020016129c09061424c565b60405160208183030381529060405280519060200120826040516020016129e79190614292565b6040516020818303038152906040528051906020012003612a0757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115612a6557600080fd5b6040518060a001604052808681526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000019081612af69190614455565b506020820151816001019081612b0c9190614455565b506040820151816002019081612b229190614455565b506060820151816003019081612b389190614455565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050505050505050565b6060806060806000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001816001018260020183600301838054612bef906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612c1b906141ea565b8015612c685780601f10612c3d57610100808354040283529160200191612c68565b820191906000526020600020905b815481529060010190602001808311612c4b57829003601f168201915b50505050509350828054612c7b906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612ca7906141ea565b8015612cf45780601f10612cc957610100808354040283529160200191612cf4565b820191906000526020600020905b815481529060010190602001808311612cd757829003601f168201915b50505050509250818054612d07906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612d33906141ea565b8015612d805780601f10612d5557610100808354040283529160200191612d80565b820191906000526020600020905b815481529060010190602001808311612d6357829003601f168201915b50505050509150808054612d93906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612dbf906141ea565b8015612e0c5780601f10612de157610100808354040283529160200191612e0c565b820191906000526020600020905b815481529060010190602001808311612def57829003601f168201915b505050505090509450945094509450509193509193565b60036020528160005260406000208181548110612e3f57600080fd5b906000526020600020906003020160009150915050806000018054612e63906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8f906141ea565b8015612edc5780601f10612eb157610100808354040283529160200191612edc565b820191906000526020600020905b815481529060010190602001808311612ebf57829003601f168201915b5050505050908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002018054612f17906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054612f43906141ea565b8015612f905780601f10612f6557610100808354040283529160200191612f90565b820191906000526020600020905b815481529060010190602001808311612f7357829003601f168201915b5050505050905083565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106130305761302f6145b9565b5b906000526020600020906003020190506040518060400160405280600881526020017f72656a65637465640000000000000000000000000000000000000000000000008152508160020190816130869190614455565b505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461311c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311390614599565b60405180910390fd5b6000600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106131905761318f6145b9565b5b906000526020600020906004020190506040518060400160405280600881526020017f617070726f7665640000000000000000000000000000000000000000000000008152508160030190816131e69190614455565b508160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd9a9c1b40a747e79bd4c1aeabd897bfd5b3679e58fcdcd20dd7af4a8274196bc60405160405180910390a45050565b606060006060806000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000018160010160009054906101000a900460ff1682600201836003018380546132fe906141ea565b80601f016020809104026020016040519081016040528092919081815260200182805461332a906141ea565b80156133775780601f1061334c57610100808354040283529160200191613377565b820191906000526020600020905b81548152906001019060200180831161335a57829003601f168201915b5050505050935081805461338a906141ea565b80601f01602080910402602001604051908101604052809291908181526020018280546133b6906141ea565b80156134035780601f106133d857610100808354040283529160200191613403565b820191906000526020600020905b8154815290600101906020018083116133e657829003601f168201915b50505050509150808054613416906141ea565b80601f0160208091040260200160405190810160405280929190818152602001828054613442906141ea565b801561348f5780601f106134645761010080835404028352916020019161348f565b820191906000526020600020905b81548152906001019060200180831161347257829003601f168201915b505050505090509450945094509450509193509193565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134e5826134ba565b9050919050565b6134f5816134da565b811461350057600080fd5b50565b600081359050613512816134ec565b92915050565b60006020828403121561352e5761352d6134b0565b5b600061353c84828501613503565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561357f578082015181840152602081019050613564565b60008484015250505050565b6000601f19601f8301169050919050565b60006135a782613545565b6135b18185613550565b93506135c1818560208601613561565b6135ca8161358b565b840191505092915050565b600060ff82169050919050565b6135eb816135d5565b82525050565b6135fa816134da565b82525050565b6000608082019050818103600083015261361a818761359c565b905061362960208301866135e2565b818103604083015261363b818561359c565b905061364a60608301846135f1565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061369b82613545565b6136a5818561367f565b93506136b5818560208601613561565b6136be8161358b565b840191505092915050565b6136d2816134da565b82525050565b600060608301600083015184820360008601526136f58282613690565b915050602083015161370a60208601826136c9565b50604083015184820360408601526137228282613690565b9150508091505092915050565b600061373b83836136d8565b905092915050565b6000602082019050919050565b600061375b82613653565b613765818561365e565b9350836020820285016137778561366f565b8060005b858110156137b35784840389528151613794858261372f565b945061379f83613743565b925060208a0199505060018101905061377b565b50829750879550505050505092915050565b600060208201905081810360008301526137df8184613750565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138298261358b565b810181811067ffffffffffffffff82111715613848576138476137f1565b5b80604052505050565b600061385b6134a6565b90506138678282613820565b919050565b600067ffffffffffffffff821115613887576138866137f1565b5b6138908261358b565b9050602081019050919050565b82818337600083830152505050565b60006138bf6138ba8461386c565b613851565b9050828152602081018484840111156138db576138da6137ec565b5b6138e684828561389d565b509392505050565b600082601f830112613903576139026137e7565b5b81356139138482602086016138ac565b91505092915050565b613925816135d5565b811461393057600080fd5b50565b6000813590506139428161391c565b92915050565b600080600060608486031215613961576139606134b0565b5b600084013567ffffffffffffffff81111561397f5761397e6134b5565b5b61398b868287016138ee565b935050602061399c86828701613933565b925050604084013567ffffffffffffffff8111156139bd576139bc6134b5565b5b6139c9868287016138ee565b9150509250925092565b6000819050919050565b6139e6816139d3565b81146139f157600080fd5b50565b600081359050613a03816139dd565b92915050565b600060208284031215613a1f57613a1e6134b0565b5b6000613a2d848285016139f4565b91505092915050565b60006060820190508181036000830152613a50818661359c565b9050613a5f60208301856135e2565b8181036040830152613a71818461359c565b9050949350505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ab0816135d5565b82525050565b600060a0830160008301518482036000860152613ad38282613690565b9150506020830151613ae86020860182613aa7565b5060408301518482036040860152613b008282613690565b91505060608301518482036060860152613b1a8282613690565b9150506080830151613b2f60808601826136c9565b508091505092915050565b6000613b468383613ab6565b905092915050565b6000602082019050919050565b6000613b6682613a7b565b613b708185613a86565b935083602082028501613b8285613a97565b8060005b85811015613bbe5784840389528151613b9f8582613b3a565b9450613baa83613b4e565b925060208a01995050600181019050613b86565b50829750879550505050505092915050565b60006020820190508181036000830152613bea8184613b5b565b905092915050565b60008060408385031215613c0957613c086134b0565b5b6000613c1785828601613503565b9250506020613c28858286016139f4565b9150509250929050565b600060a0820190508181036000830152613c4c818861359c565b9050613c5b60208301876135e2565b8181036040830152613c6d818661359c565b90508181036060830152613c81818561359c565b9050613c9060808301846135f1565b9695505050505050565b600080600060608486031215613cb357613cb26134b0565b5b6000613cc186828701613503565b9350506020613cd286828701613503565b9250506040613ce3868287016139f4565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000608083016000830151613d3160008601826136c9565b5060208301518482036020860152613d498282613690565b91505060408301518482036040860152613d638282613690565b91505060608301518482036060860152613d7d8282613690565b9150508091505092915050565b6000613d968383613d19565b905092915050565b6000602082019050919050565b6000613db682613ced565b613dc08185613cf8565b935083602082028501613dd285613d09565b8060005b85811015613e0e5784840389528151613def8582613d8a565b9450613dfa83613d9e565b925060208a01995050600181019050613dd6565b50829750879550505050505092915050565b60006020820190508181036000830152613e3a8184613dab565b905092915050565b60006080820190508181036000830152613e5c818761359c565b90508181036020830152613e70818661359c565b90508181036040830152613e84818561359c565b90508181036060830152613e98818461359c565b905095945050505050565b600080600060608486031215613ebc57613ebb6134b0565b5b6000613eca86828701613503565b9350506020613edb86828701613503565b925050604084013567ffffffffffffffff811115613efc57613efb6134b5565b5b613f08868287016138ee565b9150509250925092565b60008060408385031215613f2957613f286134b0565b5b600083013567ffffffffffffffff811115613f4757613f466134b5565b5b613f53858286016138ee565b925050602083013567ffffffffffffffff811115613f7457613f736134b5565b5b613f80858286016138ee565b9150509250929050565b60008060008060808587031215613fa457613fa36134b0565b5b600085013567ffffffffffffffff811115613fc257613fc16134b5565b5b613fce878288016138ee565b9450506020613fdf87828801613933565b935050604085013567ffffffffffffffff81111561400057613fff6134b5565b5b61400c878288016138ee565b925050606085013567ffffffffffffffff81111561402d5761402c6134b5565b5b614039878288016138ee565b91505092959194509250565b6000608082019050818103600083015261405f818761359c565b905061406e60208301866135e2565b8181036040830152614080818561359c565b90508181036060830152614094818461359c565b905095945050505050565b600080600080608085870312156140b9576140b86134b0565b5b600085013567ffffffffffffffff8111156140d7576140d66134b5565b5b6140e3878288016138ee565b945050602085013567ffffffffffffffff811115614104576141036134b5565b5b614110878288016138ee565b935050604085013567ffffffffffffffff811115614131576141306134b5565b5b61413d878288016138ee565b925050606085013567ffffffffffffffff81111561415e5761415d6134b5565b5b61416a878288016138ee565b91505092959194509250565b60006060820190508181036000830152614190818661359c565b905061419f60208301856135f1565b81810360408301526141b1818461359c565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061420257607f821691505b602082108103614215576142146141bb565b5b50919050565b600081905092915050565b50565b600061423660008361421b565b915061424182614226565b600082019050919050565b600061425782614229565b9150819050919050565b600061426c82613545565b614276818561421b565b9350614286818560208601613561565b80840191505092915050565b600061429e8284614261565b915081905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261430b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826142ce565b61431586836142ce565b95508019841693508086168417925050509392505050565b6000819050919050565b600061435261434d614348846139d3565b61432d565b6139d3565b9050919050565b6000819050919050565b61436c83614337565b61438061437882614359565b8484546142db565b825550505050565b600090565b614395614388565b6143a0818484614363565b505050565b5b818110156143c4576143b960008261438d565b6001810190506143a6565b5050565b601f821115614409576143da816142a9565b6143e3846142be565b810160208510156143f2578190505b6144066143fe856142be565b8301826143a5565b50505b505050565b600082821c905092915050565b600061442c6000198460080261440e565b1980831691505092915050565b6000614445838361441b565b9150826002028217905092915050565b61445e82613545565b67ffffffffffffffff811115614477576144766137f1565b5b61448182546141ea565b61448c8282856143c8565b600060209050601f8311600181146144bf57600084156144ad578287015190505b6144b78582614439565b86555061451f565b601f1984166144cd866142a9565b60005b828110156144f5578489015182556001820191506020850194506020810190506144d0565b86831015614512578489015161450e601f89168261441b565b8355505b6001600288020188555050505b505050505050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60008201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000614583602183613550565b915061458e82614527565b604082019050919050565b600060208201905081810360008301526145b281614576565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020820190508181036000830152614602818461359c565b90509291505056fea2646970667358221220c1b2ae848c7babf4c77ed1faeecb417b032136e191fa5cca6754b17c1620030064736f6c63430008110033"; + +type HealthBlockConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: HealthBlockConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class HealthBlock__factory extends ContractFactory { + constructor(...args: HealthBlockConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override deploy( + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + override getDeployTransaction( + overrides?: Overrides & { from?: PromiseOrValue } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + override attach(address: string): HealthBlock { + return super.attach(address) as HealthBlock; + } + override connect(signer: Signer): HealthBlock__factory { + return super.connect(signer) as HealthBlock__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): HealthBlockInterface { + return new utils.Interface(_abi) as HealthBlockInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): HealthBlock { + return new Contract(address, _abi, signerOrProvider) as HealthBlock; + } +} diff --git a/client/src/contracts/factories/index.ts b/client/src/contracts/factories/index.ts new file mode 100644 index 0000000..085d713 --- /dev/null +++ b/client/src/contracts/factories/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { HealthBlock__factory } from "./HealthBlock__factory"; diff --git a/client/src/contracts/index.ts b/client/src/contracts/index.ts new file mode 100644 index 0000000..28a0273 --- /dev/null +++ b/client/src/contracts/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { HealthBlock } from "./HealthBlock"; +export * as factories from "./factories"; +export { HealthBlock__factory } from "./factories/HealthBlock__factory";