From aff67fc7a75eef557eabe6616fcf7fa1d5bb3c89 Mon Sep 17 00:00:00 2001 From: Mutahhir Khan Date: Wed, 23 Mar 2022 02:50:38 +0500 Subject: [PATCH] app up and running. Phunkkkkkkkkkkkkkkkk YESSSSSSSSSSS --- src/Layout/Layout.js | 8 +- src/components/NavigationBar/NavigationBar.js | 2 +- src/containers/Campaigns/Campaigns.js | 2 +- src/contract/CampaignFactory.json | 3766 ++++++++--------- src/services/ethereum/ethService.js | 2 + src/services/firebase/config.js | 19 +- src/services/firebase/databaseService.js | 8 +- 7 files changed, 1864 insertions(+), 1943 deletions(-) diff --git a/src/Layout/Layout.js b/src/Layout/Layout.js index 3760efc..897c8da 100644 --- a/src/Layout/Layout.js +++ b/src/Layout/Layout.js @@ -46,7 +46,6 @@ export const Layout = () => { dispatch(signOut()); } }); - //enable metamask const isEnabled = await enable(dispatch); if (isEnabled) { @@ -66,18 +65,13 @@ export const Layout = () => { setupApp(dispatch); listenNetworkChange(dispatch); }, []); - useEffect(() => { - console.log("appState.isAppLoaded"); - console.log(appState.isAppLoaded); - },[appState.isAppLoaded]) + useEffect(() => { //listen account changed event listenAccountChange(user.address, dispatch); dispatch(setIsUserAccountSelected(appState.currentAccount === user.address)); - console.log("user") - console.log(user) }, [user]); diff --git a/src/components/NavigationBar/NavigationBar.js b/src/components/NavigationBar/NavigationBar.js index 59ccc61..eeb5053 100644 --- a/src/components/NavigationBar/NavigationBar.js +++ b/src/components/NavigationBar/NavigationBar.js @@ -41,7 +41,7 @@ export const NavigationBar = () => { } id="basic-nav-dropdown"> Profile - Sign Out + Sign Out ; if (auth.loading) { diff --git a/src/containers/Campaigns/Campaigns.js b/src/containers/Campaigns/Campaigns.js index 2f2e0dc..3efd590 100644 --- a/src/containers/Campaigns/Campaigns.js +++ b/src/containers/Campaigns/Campaigns.js @@ -7,7 +7,7 @@ import * as ethService from '../../services/ethereum/ethService'; export const Campaigns = () => { const [campaigns, setCampaigns] = useState([]); const [count, setCount] = useState(0); - const [isLoading, setIsLoading] = useState(false) + // const [isLoading, setIsLoading] = useState(false) const loadCampaigns = useCallback(async () => { //get campaign count diff --git a/src/contract/CampaignFactory.json b/src/contract/CampaignFactory.json index 2404eda..a7e0cfb 100644 --- a/src/contract/CampaignFactory.json +++ b/src/contract/CampaignFactory.json @@ -1,1971 +1,1891 @@ { - "contractName": "CampaignFactory", - "abi": [ - { - "constant": true, - "inputs": [ + "contractName": "CampaignFactory", + "abi": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "deployedCampaigns", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_manager", - "type": "address" - }, - { - "internalType": "string", - "name": "_title", - "type": "string" + "constant": false, + "inputs": [ + { "internalType": "address", "name": "_manager", "type": "address" }, + { "internalType": "string", "name": "_title", "type": "string" }, + { "internalType": "string", "name": "_description", "type": "string" }, + { "internalType": "uint256", "name": "_initialAmountGoal", "type": "uint256" }, + { "internalType": "uint256", "name": "_createdAt", "type": "uint256" }, + { "internalType": "uint256", "name": "_closedAt", "type": "uint256" } + ], + "name": "createCampaign", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { - "internalType": "string", - "name": "_description", - "type": "string" + "constant": true, + "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "name": "deployedCampaigns", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "payable": false, + "stateMutability": "view", + "type": "function" }, { - "internalType": "uint256", - "name": "_initialAmountGoal", - "type": "uint256" + "constant": true, + "inputs": [], + "name": "getCampaignsCount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "payable": false, + "stateMutability": "view", + "type": "function" }, { - "internalType": "uint256", - "name": "_createdAt", - "type": "uint256" + "constant": true, + "inputs": [], + "name": "getDeployedCampaigns", + "outputs": [{ "internalType": "address[]", "name": "", "type": "address[]" }], + "payable": false, + "stateMutability": "view", + "type": "function" }, { - "internalType": "uint256", - "name": "_closedAt", - "type": "uint256" - } - ], - "name": "createCampaign", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCampaignsCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getDeployedCampaigns", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLastDeployedContract", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" + "constant": true, + "inputs": [], + "name": "getLastDeployedContract", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "payable": false, + "stateMutability": "view", + "type": "function" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_description\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialAmountGoal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_closedAt\",\"type\":\"uint256\"}],\"name\":\"createCampaign\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deployedCampaigns\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCampaignsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getDeployedCampaigns\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getLastDeployedContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/F/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol\":\"CampaignFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/F/Software Development/React Projects/de-care/ethereum/contracts/Campaign.sol\":{\"keccak256\":\"0x0f36051132469a844a56435cf1945f3961dcde490901be36571b1fec3a0de3f9\",\"urls\":[\"bzz-raw://1bb604d41bf8c31ea746501dbfb547682a7c6c64ad09d6b53bb35d7db7ebb894\",\"dweb:/ipfs/QmesM9XS59xH12y2jcAoEEnyaMTjF6xPPNZCRhqrHvpZEi\"]},\"/F/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol\":{\"keccak256\":\"0xa6696b0dd859ff283f90434d2a89eb822f729e7ddc7594db5b68e901496273c1\",\"urls\":[\"bzz-raw://3403999126cc745e48bf2b6f76e228594805019d82b5cd73776afe8c45d819a9\",\"dweb:/ipfs/Qmcby5UkjhjQmPUPi2hwSAuyhAEEoUNM8s7zhovdshgNgV\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b5061326c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063339d50a51461005c5780634acb9d4f146100ca5780637e6253da14610129578063a3012d5314610147578063ec8e0ac1146102d7575b600080fd5b6100886004803603602081101561007257600080fd5b8101908080359060200190929190505050610321565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100d261035d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101155780820151818401526020810190506100fa565b505050509050019250505060405180910390f35b6101316103eb565b6040518082815260200191505060405180910390f35b6102d5600480360360c081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561019a57600080fd5b8201836020820111156101ac57600080fd5b803590602001918460018302840111640100000000831117156101ce57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023157600080fd5b82018360208201111561024357600080fd5b8035906020019184600183028401116401000000008311171561026557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803590602001909291905050506103f7565b005b6102df6105bc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000818154811061032e57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008054806020026020016040519081016040528092919081815260200182805480156103e157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610397575b5050505050905090565b60008080549050905090565b600086868686868660405161040b90610602565b808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001858152602001848152602001838103835288818151815260200191508051906020019080838360005b83811015610490578082015181840152602081019050610475565b50505050905090810190601f1680156104bd5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b5098505050505050505050604051809103906000f08015801561054a573d6000803e3d6000fd5b50905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b600080600160008054905003815481106105d257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612c28806106108339019056fe60806040523480156200001157600080fd5b5060405162002c2838038062002c28833981810160405260c08110156200003757600080fd5b8101908080519060200190929190805160405193929190846401000000008211156200006257600080fd5b838201915060208201858111156200007957600080fd5b82518660018202830111640100000000821117156200009757600080fd5b8083526020830192505050908051906020019080838360005b83811015620000cd578082015181840152602081019050620000b0565b50505050905090810190601f168015620000fb5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011f57600080fd5b838201915060208201858111156200013657600080fd5b82518660018202830111640100000000821117156200015457600080fd5b8083526020830192505050908051906020019080838360005b838110156200018a5780820151818401526020810190506200016d565b50505050905090810190601f168015620001b85780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190805190602001909291905050508181116200023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062002bf9602f913960400191505060405180910390fd5b6000831162000295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062002bcb602e913960400191505060405180910390fd5b856000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460019080519060200190620002ed929190620003fb565b50836002908051906020019062000306929190620003fb565b508260038190555081600b8190555080600c819055506203f480600a819055506001600d60006101000a81548160ff02191690831515021790555060076040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505050505050505050620004aa565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200043e57805160ff19168380011785556200046f565b828001600101855582156200046f579182015b828111156200046e57825182559160200191906001019062000451565b5b5090506200047e919062000482565b5090565b620004a791905b80821115620004a357600081600090555060010162000489565b5090565b90565b61271180620004ba6000396000f3fe6080604052600436106101355760003560e01c806360713609116100ab578063a96271361161006f578063a9627136146108c8578063ca0cdea81461094a578063cf09e0d0146109af578063d2765c94146109da578063e81e1ccc14610a15578063ed88c68e14610a4057610135565b8063607136091461078c5780636a3d9a4a146107b75780637284e416146107e2578063777016fb146108725780639ef27b001461089d57610135565b80634051ddac116100fd5780634051ddac14610404578063481c6a751461057d5780634a79d50c146105d45780634dfa84341461066457806351b42b001461074a5780635c8d71521461076157610135565b80631b0f5fc21461013a57806321464bfe1461017557806322f3e2d4146101b0578063332f7acf146101df578063372bfd9c1461020a575b600080fd5b34801561014657600080fd5b506101736004803603602081101561015d57600080fd5b8101908080359060200190929190505050610a4a565b005b34801561018157600080fd5b506101ae6004803603602081101561019857600080fd5b8101908080359060200190929190505050610cc9565b005b3480156101bc57600080fd5b506101c5610fbb565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610fce565b6040518082815260200191505060405180910390f35b34801561021657600080fd5b506104026004803603608081101561022d57600080fd5b810190808035906020019064010000000081111561024a57600080fd5b82018360208201111561025c57600080fd5b8035906020019184600183028401116401000000008311171561027e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001906401000000008111156102eb57600080fd5b8201836020820111156102fd57600080fd5b8035906020019184602083028401116401000000008311171561031f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460208302840111640100000000831117156103b357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610fd4565b005b34801561041057600080fd5b50610419611583565b604051808e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018415151515815260200183810383528f818151815260200191508051906020019080838360005b838110156104cf5780820151818401526020810190506104b4565b50505050905090810190601f1680156104fc5780820380516001836020036101000a031916815260200191505b5083810382528e818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b34801561058957600080fd5b5061059261174f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e057600080fd5b506105e9611774565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062957808201518184015260208101905061060e565b50505050905090810190601f1680156106565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561067057600080fd5b5061069d6004803603602081101561068757600080fd5b8101908080359060200190929190505050611812565b60405180806020018881526020018781526020018681526020018581526020018415151515815260200183151515158152602001828103825289818151815260200191508051906020019080838360005b838110156107095780820151818401526020810190506106ee565b50505050905090810190601f1680156107365780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561075657600080fd5b5061075f6119e8565b005b34801561076d57600080fd5b50610776611b06565b6040518082815260200191505060405180910390f35b34801561079857600080fd5b506107a1611b0c565b6040518082815260200191505060405180910390f35b3480156107c357600080fd5b506107cc611b12565b6040518082815260200191505060405180910390f35b3480156107ee57600080fd5b506107f7611b18565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083757808201518184015260208101905061081c565b50505050905090810190601f1680156108645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561087e57600080fd5b50610887611bb6565b6040518082815260200191505060405180910390f35b3480156108a957600080fd5b506108b2611bbc565b6040518082815260200191505060405180910390f35b3480156108d457600080fd5b50610901600480360360208110156108eb57600080fd5b8101908080359060200190929190505050611bc2565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561095657600080fd5b506109996004803603602081101561096d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c13565b6040518082815260200191505060405180910390f35b3480156109bb57600080fd5b506109c4611c2b565b6040518082815260200191505060405180910390f35b3480156109e657600080fd5b50610a13600480360360208110156109fd57600080fd5b8101908080359060200190929190505050611c31565b005b348015610a2157600080fd5b50610a2a611eca565b6040518082815260200191505060405180910390f35b610a486121a0565b005b60011515600d60009054906101000a900460ff16151514610ad3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b600060098281548110610b8757fe5b9060005260206000209060080201905042600a54826006015401118015610bb657506007805490508160050154105b8015610bd157508060070160009054906101000a900460ff16155b15610cc55760018160070160006101000a81548160ff0219169083151502179055508060010154600560008282540392505081905550806001015460066000828254019250508190555060008090505b8160030154811015610cc357600082600201600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82600101549081150290604051600060405180830381858888f19350505050158015610cb4573d6000803e3d6000fd5b50508080600101915050610c21565b505b5050565b60011515600d60009054906101000a900460ff16151514610d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610dea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125c86022913960400191505060405180910390fd5b60008111610e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126236021913960400191505060405180910390fd5b6009805490508110610ebd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f46756e64205265717565737420646f6e27742065786973742e0000000000000081525060200191505060405180910390fd5b600060098281548110610ecc57fe5b906000526020600020906008020160040190508060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fb75760008160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098281548110610f9457fe5b906000526020600020906008020160050160008154809291906001900391905055505b5050565b600d60009054906101000a900460ff1681565b60045481565b60011515600d60009054906101000a900460ff1615151461105d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b42600c54118015611117575060035460045410155b61116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806124e96023913960400191505060405180910390fd5b600083116111e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f416d6f756e742063616e6e6f74206265207a65726f2e0000000000000000000081525060200191505060405180910390fd5b600082511180156111f4575060008151115b611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612549602a913960400191505060405180910390fd5b80518251146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061250c603d913960400191505060405180910390fd5b8260055460065460045403031015611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806125736032913960400191505060405180910390fd5b600080905060005b825181101561133c5782818151811061132357fe5b602002602001015182019150808060010191505061130e565b50838114611395576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260558152602001806126446055913960600191505060405180910390fd5b60096040518060c00160405280878152602001868152602001600081526020016000815260200142815260200160001515815250908060018154018082558091505090600182039060005260206000209060080201600090919290919091506000820151816000019080519060200190611410929190612443565b506020820151816001015560408201518160030155606082015181600501556080820151816006015560a08201518160070160006101000a81548160ff021916908315150217905550505050600060096001600980549050038154811061147357fe5b90600052602060002090600802019050600081600201905060008090505b85518110156115725760405180604001604052808783815181106114b157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018683815181106114e057fe5b602002602001015181525082600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015590505082600301600081548092919060010191905055508080600101915050611491565b508560058190555050505050505050565b60006060806000806000806000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016002600354600454600554600654600a54600b54600c54600780549050600980549050600d60009054906101000a900460ff168b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116835780601f1061165857610100808354040283529160200191611683565b820191906000526020600020905b81548152906001019060200180831161166657829003601f168201915b50505050509b508a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561171f5780601f106116f45761010080835404028352916020019161171f565b820191906000526020600020905b81548152906001019060200180831161170257829003601f168201915b50505050509a509c509c509c509c509c509c509c509c509c509c509c509c509c50909192939495969798999a9b9c565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561180a5780601f106117df5761010080835404028352916020019161180a565b820191906000526020600020905b8154815290600101906020018083116117ed57829003601f168201915b505050505081565b6060600080600080600080876001600980549050011161189a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e646578206973206f7574206f662072616e67652e0000000000000000000081525060200191505060405180910390fd5b6000600989815481106118a957fe5b906000526020600020906008020190508060000181600101548260030154836005015484600601548560070160009054906101000a900460ff168660040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16868054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119c75780601f1061199c576101008083540402835291602001916119c7565b820191906000526020600020905b8154815290600101906020018083116119aa57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b60065460045414611ae9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260448152602001806126996044913960600191505060405180910390fd5b6000600d60006101000a81548160ff021916908315150217905550565b60065481565b60055481565b60035481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bae5780601f10611b8357610100808354040283529160200191611bae565b820191906000526020600020905b815481529060010190602001808311611b9157829003601f168201915b505050505081565b600a5481565b600c5481565b60078181548110611bcf57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60086020528060005260406000206000915090505481565b600b5481565b60011515600d60009054906101000a900460ff16151514611cba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125c86022913960400191505060405180910390fd5b60008111611dab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126236021913960400191505060405180910390fd5b6009805490508110611e25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f46756e64205265717565737420646f6e27742065786973742e0000000000000081525060200191505060405180910390fd5b600160098281548110611e3457fe5b906000526020600020906008020160040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098181548110611ea657fe5b90600052602060002090600802016005016000815480929190600101919050555050565b600060011515600d60009054906101000a900460ff16151514611f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6003546004541080611f68575042600c54115b611fda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f446f6e6174696f6e2063616e6e6f742062652077697468647261776e0000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111612077576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806125ea6039913960400191505060405180910390fd5b60006007828154811061208657fe5b90600052602060002090600202016001015490506000811115612196576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600782815481106120f557fe5b9060005260206000209060020201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090555050806004600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561218b573d6000803e3d6000fd5b50809250505061219d565b6000925050505b90565b60011515600d60009054906101000a900460ff16151514612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b60003414156122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416d6f756e74206d7573742062652067726561746572207468616e207a65726f81525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156123e6576001905080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760405180604001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001348152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505050612430565b6000600782815481106123f557fe5b90600052602060002090600202016001015490503481016007838154811061241957fe5b906000526020600020906002020160010181905550505b3460046000828254019250508190555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061248457805160ff19168380011785556124b2565b828001600101855582156124b2579182015b828111156124b1578251825591602001919060010190612496565b5b5090506124bf91906124c3565b5090565b6124e591905b808211156124e15760008160009055506001016124c9565b5090565b9056fe43616d706169676e20636f756c646e277420726561636865642069747320676f616c2e54686572652073686f756c6420626520657175616c206e6f2e206f6620726563697069656e74732061646472657373657320616e6420616d6f756e747352657175657374206d75737420636f6e7461696e2061746c65617374206f6e6520726563697069656e7443616d706169676e20646f6e2774206861766520656e6f7567682066756e647320666f7220796f757220726571756573742e4f6e6c79204d616e616765722063616e2063616c6c20746869732066756e6374696f6e4f6e6c7920446f6e6f722063616e2063616c6c20746869732066756e6374696f6e73596f75206861766520746f206265206120646f6e6f7220696e206f7264657220746f20776974686472617720796f757220646f6e6174696f6e496e6465782073686f756c642062652067726561746572207468616e207a65726f546f74616c20616d6f756e742064656c65676174656420746f20726563697069656e7473206d75737420626520657175616c20746f2074686520746f74616c20616d6f756e7420696e20746865207265717565737443616d706169676e2063616e6e6f7420626520636c6f7365642c2062656361757365206974207374696c6c2068617320736f6d6520756e7370656e6465642066756e6473a265627a7a723158203354e64b6629497e4dedf0da004c5f49deee4d3c8eff75143459a26de090479364736f6c63430005100032496e697469616c20616d6f756e7420676f616c20206d7573742062652067726561746572207468616e207a65726f43616d706169676e2073746172742074696d65206d757374206265206c657373207468616e20656e642074696d652ea265627a7a72315820afd89288c02b11cf1b929f07d9e12b7d81a1b1dfdb246eb906f544a2154d004464736f6c63430005100032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063339d50a51461005c5780634acb9d4f146100ca5780637e6253da14610129578063a3012d5314610147578063ec8e0ac1146102d7575b600080fd5b6100886004803603602081101561007257600080fd5b8101908080359060200190929190505050610321565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100d261035d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101155780820151818401526020810190506100fa565b505050509050019250505060405180910390f35b6101316103eb565b6040518082815260200191505060405180910390f35b6102d5600480360360c081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561019a57600080fd5b8201836020820111156101ac57600080fd5b803590602001918460018302840111640100000000831117156101ce57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023157600080fd5b82018360208201111561024357600080fd5b8035906020019184600183028401116401000000008311171561026557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803590602001909291905050506103f7565b005b6102df6105bc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000818154811061032e57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008054806020026020016040519081016040528092919081815260200182805480156103e157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610397575b5050505050905090565b60008080549050905090565b600086868686868660405161040b90610602565b808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001858152602001848152602001838103835288818151815260200191508051906020019080838360005b83811015610490578082015181840152602081019050610475565b50505050905090810190601f1680156104bd5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b5098505050505050505050604051809103906000f08015801561054a573d6000803e3d6000fd5b50905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b600080600160008054905003815481106105d257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612c28806106108339019056fe60806040523480156200001157600080fd5b5060405162002c2838038062002c28833981810160405260c08110156200003757600080fd5b8101908080519060200190929190805160405193929190846401000000008211156200006257600080fd5b838201915060208201858111156200007957600080fd5b82518660018202830111640100000000821117156200009757600080fd5b8083526020830192505050908051906020019080838360005b83811015620000cd578082015181840152602081019050620000b0565b50505050905090810190601f168015620000fb5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011f57600080fd5b838201915060208201858111156200013657600080fd5b82518660018202830111640100000000821117156200015457600080fd5b8083526020830192505050908051906020019080838360005b838110156200018a5780820151818401526020810190506200016d565b50505050905090810190601f168015620001b85780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190805190602001909291905050508181116200023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062002bf9602f913960400191505060405180910390fd5b6000831162000295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062002bcb602e913960400191505060405180910390fd5b856000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460019080519060200190620002ed929190620003fb565b50836002908051906020019062000306929190620003fb565b508260038190555081600b8190555080600c819055506203f480600a819055506001600d60006101000a81548160ff02191690831515021790555060076040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505050505050505050620004aa565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200043e57805160ff19168380011785556200046f565b828001600101855582156200046f579182015b828111156200046e57825182559160200191906001019062000451565b5b5090506200047e919062000482565b5090565b620004a791905b80821115620004a357600081600090555060010162000489565b5090565b90565b61271180620004ba6000396000f3fe6080604052600436106101355760003560e01c806360713609116100ab578063a96271361161006f578063a9627136146108c8578063ca0cdea81461094a578063cf09e0d0146109af578063d2765c94146109da578063e81e1ccc14610a15578063ed88c68e14610a4057610135565b8063607136091461078c5780636a3d9a4a146107b75780637284e416146107e2578063777016fb146108725780639ef27b001461089d57610135565b80634051ddac116100fd5780634051ddac14610404578063481c6a751461057d5780634a79d50c146105d45780634dfa84341461066457806351b42b001461074a5780635c8d71521461076157610135565b80631b0f5fc21461013a57806321464bfe1461017557806322f3e2d4146101b0578063332f7acf146101df578063372bfd9c1461020a575b600080fd5b34801561014657600080fd5b506101736004803603602081101561015d57600080fd5b8101908080359060200190929190505050610a4a565b005b34801561018157600080fd5b506101ae6004803603602081101561019857600080fd5b8101908080359060200190929190505050610cc9565b005b3480156101bc57600080fd5b506101c5610fbb565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610fce565b6040518082815260200191505060405180910390f35b34801561021657600080fd5b506104026004803603608081101561022d57600080fd5b810190808035906020019064010000000081111561024a57600080fd5b82018360208201111561025c57600080fd5b8035906020019184600183028401116401000000008311171561027e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001906401000000008111156102eb57600080fd5b8201836020820111156102fd57600080fd5b8035906020019184602083028401116401000000008311171561031f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460208302840111640100000000831117156103b357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610fd4565b005b34801561041057600080fd5b50610419611583565b604051808e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018415151515815260200183810383528f818151815260200191508051906020019080838360005b838110156104cf5780820151818401526020810190506104b4565b50505050905090810190601f1680156104fc5780820380516001836020036101000a031916815260200191505b5083810382528e818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b34801561058957600080fd5b5061059261174f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e057600080fd5b506105e9611774565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062957808201518184015260208101905061060e565b50505050905090810190601f1680156106565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561067057600080fd5b5061069d6004803603602081101561068757600080fd5b8101908080359060200190929190505050611812565b60405180806020018881526020018781526020018681526020018581526020018415151515815260200183151515158152602001828103825289818151815260200191508051906020019080838360005b838110156107095780820151818401526020810190506106ee565b50505050905090810190601f1680156107365780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561075657600080fd5b5061075f6119e8565b005b34801561076d57600080fd5b50610776611b06565b6040518082815260200191505060405180910390f35b34801561079857600080fd5b506107a1611b0c565b6040518082815260200191505060405180910390f35b3480156107c357600080fd5b506107cc611b12565b6040518082815260200191505060405180910390f35b3480156107ee57600080fd5b506107f7611b18565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083757808201518184015260208101905061081c565b50505050905090810190601f1680156108645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561087e57600080fd5b50610887611bb6565b6040518082815260200191505060405180910390f35b3480156108a957600080fd5b506108b2611bbc565b6040518082815260200191505060405180910390f35b3480156108d457600080fd5b50610901600480360360208110156108eb57600080fd5b8101908080359060200190929190505050611bc2565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561095657600080fd5b506109996004803603602081101561096d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c13565b6040518082815260200191505060405180910390f35b3480156109bb57600080fd5b506109c4611c2b565b6040518082815260200191505060405180910390f35b3480156109e657600080fd5b50610a13600480360360208110156109fd57600080fd5b8101908080359060200190929190505050611c31565b005b348015610a2157600080fd5b50610a2a611eca565b6040518082815260200191505060405180910390f35b610a486121a0565b005b60011515600d60009054906101000a900460ff16151514610ad3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b600060098281548110610b8757fe5b9060005260206000209060080201905042600a54826006015401118015610bb657506007805490508160050154105b8015610bd157508060070160009054906101000a900460ff16155b15610cc55760018160070160006101000a81548160ff0219169083151502179055508060010154600560008282540392505081905550806001015460066000828254019250508190555060008090505b8160030154811015610cc357600082600201600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82600101549081150290604051600060405180830381858888f19350505050158015610cb4573d6000803e3d6000fd5b50508080600101915050610c21565b505b5050565b60011515600d60009054906101000a900460ff16151514610d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610dea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125c86022913960400191505060405180910390fd5b60008111610e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126236021913960400191505060405180910390fd5b6009805490508110610ebd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f46756e64205265717565737420646f6e27742065786973742e0000000000000081525060200191505060405180910390fd5b600060098281548110610ecc57fe5b906000526020600020906008020160040190508060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fb75760008160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098281548110610f9457fe5b906000526020600020906008020160050160008154809291906001900391905055505b5050565b600d60009054906101000a900460ff1681565b60045481565b60011515600d60009054906101000a900460ff1615151461105d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b42600c54118015611117575060035460045410155b61116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806124e96023913960400191505060405180910390fd5b600083116111e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f416d6f756e742063616e6e6f74206265207a65726f2e0000000000000000000081525060200191505060405180910390fd5b600082511180156111f4575060008151115b611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612549602a913960400191505060405180910390fd5b80518251146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061250c603d913960400191505060405180910390fd5b8260055460065460045403031015611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806125736032913960400191505060405180910390fd5b600080905060005b825181101561133c5782818151811061132357fe5b602002602001015182019150808060010191505061130e565b50838114611395576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260558152602001806126446055913960600191505060405180910390fd5b60096040518060c00160405280878152602001868152602001600081526020016000815260200142815260200160001515815250908060018154018082558091505090600182039060005260206000209060080201600090919290919091506000820151816000019080519060200190611410929190612443565b506020820151816001015560408201518160030155606082015181600501556080820151816006015560a08201518160070160006101000a81548160ff021916908315150217905550505050600060096001600980549050038154811061147357fe5b90600052602060002090600802019050600081600201905060008090505b85518110156115725760405180604001604052808783815181106114b157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018683815181106114e057fe5b602002602001015181525082600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015590505082600301600081548092919060010191905055508080600101915050611491565b508560058190555050505050505050565b60006060806000806000806000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016002600354600454600554600654600a54600b54600c54600780549050600980549050600d60009054906101000a900460ff168b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116835780601f1061165857610100808354040283529160200191611683565b820191906000526020600020905b81548152906001019060200180831161166657829003601f168201915b50505050509b508a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561171f5780601f106116f45761010080835404028352916020019161171f565b820191906000526020600020905b81548152906001019060200180831161170257829003601f168201915b50505050509a509c509c509c509c509c509c509c509c509c509c509c509c509c50909192939495969798999a9b9c565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561180a5780601f106117df5761010080835404028352916020019161180a565b820191906000526020600020905b8154815290600101906020018083116117ed57829003601f168201915b505050505081565b6060600080600080600080876001600980549050011161189a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e646578206973206f7574206f662072616e67652e0000000000000000000081525060200191505060405180910390fd5b6000600989815481106118a957fe5b906000526020600020906008020190508060000181600101548260030154836005015484600601548560070160009054906101000a900460ff168660040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16868054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119c75780601f1061199c576101008083540402835291602001916119c7565b820191906000526020600020905b8154815290600101906020018083116119aa57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b60065460045414611ae9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260448152602001806126996044913960600191505060405180910390fd5b6000600d60006101000a81548160ff021916908315150217905550565b60065481565b60055481565b60035481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bae5780601f10611b8357610100808354040283529160200191611bae565b820191906000526020600020905b815481529060010190602001808311611b9157829003601f168201915b505050505081565b600a5481565b600c5481565b60078181548110611bcf57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60086020528060005260406000206000915090505481565b600b5481565b60011515600d60009054906101000a900460ff16151514611cba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125c86022913960400191505060405180910390fd5b60008111611dab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126236021913960400191505060405180910390fd5b6009805490508110611e25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f46756e64205265717565737420646f6e27742065786973742e0000000000000081525060200191505060405180910390fd5b600160098281548110611e3457fe5b906000526020600020906008020160040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098181548110611ea657fe5b90600052602060002090600802016005016000815480929190600101919050555050565b600060011515600d60009054906101000a900460ff16151514611f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6003546004541080611f68575042600c54115b611fda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f446f6e6174696f6e2063616e6e6f742062652077697468647261776e0000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111612077576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806125ea6039913960400191505060405180910390fd5b60006007828154811061208657fe5b90600052602060002090600202016001015490506000811115612196576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600782815481106120f557fe5b9060005260206000209060020201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090555050806004600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561218b573d6000803e3d6000fd5b50809250505061219d565b6000925050505b90565b60011515600d60009054906101000a900460ff16151514612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b60003414156122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416d6f756e74206d7573742062652067726561746572207468616e207a65726f81525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156123e6576001905080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760405180604001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001348152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505050612430565b6000600782815481106123f557fe5b90600052602060002090600202016001015490503481016007838154811061241957fe5b906000526020600020906002020160010181905550505b3460046000828254019250508190555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061248457805160ff19168380011785556124b2565b828001600101855582156124b2579182015b828111156124b1578251825591602001919060010190612496565b5b5090506124bf91906124c3565b5090565b6124e591905b808211156124e15760008160009055506001016124c9565b5090565b9056fe43616d706169676e20636f756c646e277420726561636865642069747320676f616c2e54686572652073686f756c6420626520657175616c206e6f2e206f6620726563697069656e74732061646472657373657320616e6420616d6f756e747352657175657374206d75737420636f6e7461696e2061746c65617374206f6e6520726563697069656e7443616d706169676e20646f6e2774206861766520656e6f7567682066756e647320666f7220796f757220726571756573742e4f6e6c79204d616e616765722063616e2063616c6c20746869732066756e6374696f6e4f6e6c7920446f6e6f722063616e2063616c6c20746869732066756e6374696f6e73596f75206861766520746f206265206120646f6e6f7220696e206f7264657220746f20776974686472617720796f757220646f6e6174696f6e496e6465782073686f756c642062652067726561746572207468616e207a65726f546f74616c20616d6f756e742064656c65676174656420746f20726563697069656e7473206d75737420626520657175616c20746f2074686520746f74616c20616d6f756e7420696e20746865207265717565737443616d706169676e2063616e6e6f7420626520636c6f7365642c2062656361757365206974207374696c6c2068617320736f6d6520756e7370656e6465642066756e6473a265627a7a723158203354e64b6629497e4dedf0da004c5f49deee4d3c8eff75143459a26de090479364736f6c63430005100032496e697469616c20616d6f756e7420676f616c20206d7573742062652067726561746572207468616e207a65726f43616d706169676e2073746172742074696d65206d757374206265206c657373207468616e20656e642074696d652ea265627a7a72315820afd89288c02b11cf1b929f07d9e12b7d81a1b1dfdb246eb906f544a2154d004464736f6c63430005100032", - "sourceMap": "146:948:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;146:948:1;;;;;;;", - "deployedSourceMap": "146:948:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;146:948:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;225:34;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;225:34:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;833:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;833:112:1;;;;;;;;;;;;;;;;;716:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;302:402;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;302:402:1;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;302:402:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;302:402:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;302:402:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;302:402:1;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;302:402:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;302:402:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;302:402:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;302:402:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;957:134;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;225:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;833:112::-;885:16;920:17;913:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;833:112;:::o;716:105::-;765:4;789:17;:24;;;;782:31;;716:105;:::o;302:402::-;529:20;566:8;576:6;585:12;599:18;619:10;631:9;552:89;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;552:89:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;552:89:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;552:89:1;529:112;;652:17;683:11;652:44;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;652:44:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;302:402;;;;;;;:::o;957:134::-;1012:7;1038:17;1081:1;1056:17;:24;;;;:26;1038:45;;;;;;;;;;;;;;;;;;;;;;;;;1031:52;;957:134;:::o;146:948::-;;;;;;;;:::o", - "source": "pragma solidity ^0.5.16;\r\nimport \"./Campaign.sol\";\r\n\r\n\r\n//Campaign factory: This contract is used to deploy and keep track of deployed Campaigns\r\ncontract CampaignFactory{\r\n \r\n //list of all the deployed Campaigns\r\n address[] public deployedCampaigns;\r\n \r\n //deploys a new Campaign\r\n function createCampaign(\r\n address _manager, \r\n string memory _title, \r\n string memory _description, \r\n uint _initialAmountGoal, \r\n uint _createdAt,\r\n uint _closedAt) public {\r\n Campaign newCampaign = new Campaign( _manager, _title, _description, _initialAmountGoal, _createdAt, _closedAt);\r\n deployedCampaigns.push(address(newCampaign));\r\n }\r\n \r\n function getCampaignsCount() public view returns(uint) {\r\n return deployedCampaigns.length;\r\n }\r\n \r\n function getDeployedCampaigns() public view returns(address[] memory){\r\n return deployedCampaigns;\r\n }\r\n \r\n function getLastDeployedContract() public view returns(address){\r\n return deployedCampaigns[deployedCampaigns.length-1];\r\n }\r\n}", - "sourcePath": "F:/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol", - "ast": { - "absolutePath": "/F/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol", - "exportedSymbols": { - "CampaignFactory": [ - 850 - ] - }, - "id": 851, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 778, - "literals": [ - "solidity", - "^", - "0.5", - ".16" - ], - "nodeType": "PragmaDirective", - "src": "0:24:1" - }, - { - "absolutePath": "/F/Software Development/React Projects/de-care/ethereum/contracts/Campaign.sol", - "file": "./Campaign.sol", - "id": 779, - "nodeType": "ImportDirective", - "scope": 851, - "sourceUnit": 777, - "src": "26:24:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 776 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 850, - "linearizedBaseContracts": [ - 850 - ], - "name": "CampaignFactory", - "nodeType": "ContractDefinition", + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_description\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialAmountGoal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_closedAt\",\"type\":\"uint256\"}],\"name\":\"createCampaign\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"deployedCampaigns\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCampaignsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getDeployedCampaigns\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getLastDeployedContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/F/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol\":\"CampaignFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/F/Software Development/React Projects/de-care/ethereum/contracts/Campaign.sol\":{\"keccak256\":\"0x0f36051132469a844a56435cf1945f3961dcde490901be36571b1fec3a0de3f9\",\"urls\":[\"bzz-raw://1bb604d41bf8c31ea746501dbfb547682a7c6c64ad09d6b53bb35d7db7ebb894\",\"dweb:/ipfs/QmesM9XS59xH12y2jcAoEEnyaMTjF6xPPNZCRhqrHvpZEi\"]},\"/F/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol\":{\"keccak256\":\"0xa6696b0dd859ff283f90434d2a89eb822f729e7ddc7594db5b68e901496273c1\",\"urls\":[\"bzz-raw://3403999126cc745e48bf2b6f76e228594805019d82b5cd73776afe8c45d819a9\",\"dweb:/ipfs/Qmcby5UkjhjQmPUPi2hwSAuyhAEEoUNM8s7zhovdshgNgV\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061326c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063339d50a51461005c5780634acb9d4f146100ca5780637e6253da14610129578063a3012d5314610147578063ec8e0ac1146102d7575b600080fd5b6100886004803603602081101561007257600080fd5b8101908080359060200190929190505050610321565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100d261035d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101155780820151818401526020810190506100fa565b505050509050019250505060405180910390f35b6101316103eb565b6040518082815260200191505060405180910390f35b6102d5600480360360c081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561019a57600080fd5b8201836020820111156101ac57600080fd5b803590602001918460018302840111640100000000831117156101ce57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023157600080fd5b82018360208201111561024357600080fd5b8035906020019184600183028401116401000000008311171561026557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803590602001909291905050506103f7565b005b6102df6105bc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000818154811061032e57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008054806020026020016040519081016040528092919081815260200182805480156103e157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610397575b5050505050905090565b60008080549050905090565b600086868686868660405161040b90610602565b808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001858152602001848152602001838103835288818151815260200191508051906020019080838360005b83811015610490578082015181840152602081019050610475565b50505050905090810190601f1680156104bd5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b5098505050505050505050604051809103906000f08015801561054a573d6000803e3d6000fd5b50905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b600080600160008054905003815481106105d257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612c28806106108339019056fe60806040523480156200001157600080fd5b5060405162002c2838038062002c28833981810160405260c08110156200003757600080fd5b8101908080519060200190929190805160405193929190846401000000008211156200006257600080fd5b838201915060208201858111156200007957600080fd5b82518660018202830111640100000000821117156200009757600080fd5b8083526020830192505050908051906020019080838360005b83811015620000cd578082015181840152602081019050620000b0565b50505050905090810190601f168015620000fb5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011f57600080fd5b838201915060208201858111156200013657600080fd5b82518660018202830111640100000000821117156200015457600080fd5b8083526020830192505050908051906020019080838360005b838110156200018a5780820151818401526020810190506200016d565b50505050905090810190601f168015620001b85780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190805190602001909291905050508181116200023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062002bf9602f913960400191505060405180910390fd5b6000831162000295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062002bcb602e913960400191505060405180910390fd5b856000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460019080519060200190620002ed929190620003fb565b50836002908051906020019062000306929190620003fb565b508260038190555081600b8190555080600c819055506203f480600a819055506001600d60006101000a81548160ff02191690831515021790555060076040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505050505050505050620004aa565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200043e57805160ff19168380011785556200046f565b828001600101855582156200046f579182015b828111156200046e57825182559160200191906001019062000451565b5b5090506200047e919062000482565b5090565b620004a791905b80821115620004a357600081600090555060010162000489565b5090565b90565b61271180620004ba6000396000f3fe6080604052600436106101355760003560e01c806360713609116100ab578063a96271361161006f578063a9627136146108c8578063ca0cdea81461094a578063cf09e0d0146109af578063d2765c94146109da578063e81e1ccc14610a15578063ed88c68e14610a4057610135565b8063607136091461078c5780636a3d9a4a146107b75780637284e416146107e2578063777016fb146108725780639ef27b001461089d57610135565b80634051ddac116100fd5780634051ddac14610404578063481c6a751461057d5780634a79d50c146105d45780634dfa84341461066457806351b42b001461074a5780635c8d71521461076157610135565b80631b0f5fc21461013a57806321464bfe1461017557806322f3e2d4146101b0578063332f7acf146101df578063372bfd9c1461020a575b600080fd5b34801561014657600080fd5b506101736004803603602081101561015d57600080fd5b8101908080359060200190929190505050610a4a565b005b34801561018157600080fd5b506101ae6004803603602081101561019857600080fd5b8101908080359060200190929190505050610cc9565b005b3480156101bc57600080fd5b506101c5610fbb565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610fce565b6040518082815260200191505060405180910390f35b34801561021657600080fd5b506104026004803603608081101561022d57600080fd5b810190808035906020019064010000000081111561024a57600080fd5b82018360208201111561025c57600080fd5b8035906020019184600183028401116401000000008311171561027e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001906401000000008111156102eb57600080fd5b8201836020820111156102fd57600080fd5b8035906020019184602083028401116401000000008311171561031f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460208302840111640100000000831117156103b357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610fd4565b005b34801561041057600080fd5b50610419611583565b604051808e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018415151515815260200183810383528f818151815260200191508051906020019080838360005b838110156104cf5780820151818401526020810190506104b4565b50505050905090810190601f1680156104fc5780820380516001836020036101000a031916815260200191505b5083810382528e818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b34801561058957600080fd5b5061059261174f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e057600080fd5b506105e9611774565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062957808201518184015260208101905061060e565b50505050905090810190601f1680156106565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561067057600080fd5b5061069d6004803603602081101561068757600080fd5b8101908080359060200190929190505050611812565b60405180806020018881526020018781526020018681526020018581526020018415151515815260200183151515158152602001828103825289818151815260200191508051906020019080838360005b838110156107095780820151818401526020810190506106ee565b50505050905090810190601f1680156107365780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561075657600080fd5b5061075f6119e8565b005b34801561076d57600080fd5b50610776611b06565b6040518082815260200191505060405180910390f35b34801561079857600080fd5b506107a1611b0c565b6040518082815260200191505060405180910390f35b3480156107c357600080fd5b506107cc611b12565b6040518082815260200191505060405180910390f35b3480156107ee57600080fd5b506107f7611b18565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083757808201518184015260208101905061081c565b50505050905090810190601f1680156108645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561087e57600080fd5b50610887611bb6565b6040518082815260200191505060405180910390f35b3480156108a957600080fd5b506108b2611bbc565b6040518082815260200191505060405180910390f35b3480156108d457600080fd5b50610901600480360360208110156108eb57600080fd5b8101908080359060200190929190505050611bc2565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561095657600080fd5b506109996004803603602081101561096d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c13565b6040518082815260200191505060405180910390f35b3480156109bb57600080fd5b506109c4611c2b565b6040518082815260200191505060405180910390f35b3480156109e657600080fd5b50610a13600480360360208110156109fd57600080fd5b8101908080359060200190929190505050611c31565b005b348015610a2157600080fd5b50610a2a611eca565b6040518082815260200191505060405180910390f35b610a486121a0565b005b60011515600d60009054906101000a900460ff16151514610ad3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b600060098281548110610b8757fe5b9060005260206000209060080201905042600a54826006015401118015610bb657506007805490508160050154105b8015610bd157508060070160009054906101000a900460ff16155b15610cc55760018160070160006101000a81548160ff0219169083151502179055508060010154600560008282540392505081905550806001015460066000828254019250508190555060008090505b8160030154811015610cc357600082600201600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82600101549081150290604051600060405180830381858888f19350505050158015610cb4573d6000803e3d6000fd5b50508080600101915050610c21565b505b5050565b60011515600d60009054906101000a900460ff16151514610d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610dea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125c86022913960400191505060405180910390fd5b60008111610e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126236021913960400191505060405180910390fd5b6009805490508110610ebd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f46756e64205265717565737420646f6e27742065786973742e0000000000000081525060200191505060405180910390fd5b600060098281548110610ecc57fe5b906000526020600020906008020160040190508060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fb75760008160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098281548110610f9457fe5b906000526020600020906008020160050160008154809291906001900391905055505b5050565b600d60009054906101000a900460ff1681565b60045481565b60011515600d60009054906101000a900460ff1615151461105d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b42600c54118015611117575060035460045410155b61116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806124e96023913960400191505060405180910390fd5b600083116111e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f416d6f756e742063616e6e6f74206265207a65726f2e0000000000000000000081525060200191505060405180910390fd5b600082511180156111f4575060008151115b611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612549602a913960400191505060405180910390fd5b80518251146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061250c603d913960400191505060405180910390fd5b8260055460065460045403031015611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806125736032913960400191505060405180910390fd5b600080905060005b825181101561133c5782818151811061132357fe5b602002602001015182019150808060010191505061130e565b50838114611395576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260558152602001806126446055913960600191505060405180910390fd5b60096040518060c00160405280878152602001868152602001600081526020016000815260200142815260200160001515815250908060018154018082558091505090600182039060005260206000209060080201600090919290919091506000820151816000019080519060200190611410929190612443565b506020820151816001015560408201518160030155606082015181600501556080820151816006015560a08201518160070160006101000a81548160ff021916908315150217905550505050600060096001600980549050038154811061147357fe5b90600052602060002090600802019050600081600201905060008090505b85518110156115725760405180604001604052808783815181106114b157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018683815181106114e057fe5b602002602001015181525082600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015590505082600301600081548092919060010191905055508080600101915050611491565b508560058190555050505050505050565b60006060806000806000806000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016002600354600454600554600654600a54600b54600c54600780549050600980549050600d60009054906101000a900460ff168b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116835780601f1061165857610100808354040283529160200191611683565b820191906000526020600020905b81548152906001019060200180831161166657829003601f168201915b50505050509b508a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561171f5780601f106116f45761010080835404028352916020019161171f565b820191906000526020600020905b81548152906001019060200180831161170257829003601f168201915b50505050509a509c509c509c509c509c509c509c509c509c509c509c509c509c50909192939495969798999a9b9c565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561180a5780601f106117df5761010080835404028352916020019161180a565b820191906000526020600020905b8154815290600101906020018083116117ed57829003601f168201915b505050505081565b6060600080600080600080876001600980549050011161189a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e646578206973206f7574206f662072616e67652e0000000000000000000081525060200191505060405180910390fd5b6000600989815481106118a957fe5b906000526020600020906008020190508060000181600101548260030154836005015484600601548560070160009054906101000a900460ff168660040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16868054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119c75780601f1061199c576101008083540402835291602001916119c7565b820191906000526020600020905b8154815290600101906020018083116119aa57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b60065460045414611ae9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260448152602001806126996044913960600191505060405180910390fd5b6000600d60006101000a81548160ff021916908315150217905550565b60065481565b60055481565b60035481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bae5780601f10611b8357610100808354040283529160200191611bae565b820191906000526020600020905b815481529060010190602001808311611b9157829003601f168201915b505050505081565b600a5481565b600c5481565b60078181548110611bcf57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60086020528060005260406000206000915090505481565b600b5481565b60011515600d60009054906101000a900460ff16151514611cba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125c86022913960400191505060405180910390fd5b60008111611dab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126236021913960400191505060405180910390fd5b6009805490508110611e25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f46756e64205265717565737420646f6e27742065786973742e0000000000000081525060200191505060405180910390fd5b600160098281548110611e3457fe5b906000526020600020906008020160040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098181548110611ea657fe5b90600052602060002090600802016005016000815480929190600101919050555050565b600060011515600d60009054906101000a900460ff16151514611f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6003546004541080611f68575042600c54115b611fda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f446f6e6174696f6e2063616e6e6f742062652077697468647261776e0000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111612077576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806125ea6039913960400191505060405180910390fd5b60006007828154811061208657fe5b90600052602060002090600202016001015490506000811115612196576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600782815481106120f557fe5b9060005260206000209060020201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090555050806004600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561218b573d6000803e3d6000fd5b50809250505061219d565b6000925050505b90565b60011515600d60009054906101000a900460ff16151514612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b60003414156122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416d6f756e74206d7573742062652067726561746572207468616e207a65726f81525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156123e6576001905080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760405180604001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001348152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505050612430565b6000600782815481106123f557fe5b90600052602060002090600202016001015490503481016007838154811061241957fe5b906000526020600020906002020160010181905550505b3460046000828254019250508190555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061248457805160ff19168380011785556124b2565b828001600101855582156124b2579182015b828111156124b1578251825591602001919060010190612496565b5b5090506124bf91906124c3565b5090565b6124e591905b808211156124e15760008160009055506001016124c9565b5090565b9056fe43616d706169676e20636f756c646e277420726561636865642069747320676f616c2e54686572652073686f756c6420626520657175616c206e6f2e206f6620726563697069656e74732061646472657373657320616e6420616d6f756e747352657175657374206d75737420636f6e7461696e2061746c65617374206f6e6520726563697069656e7443616d706169676e20646f6e2774206861766520656e6f7567682066756e647320666f7220796f757220726571756573742e4f6e6c79204d616e616765722063616e2063616c6c20746869732066756e6374696f6e4f6e6c7920446f6e6f722063616e2063616c6c20746869732066756e6374696f6e73596f75206861766520746f206265206120646f6e6f7220696e206f7264657220746f20776974686472617720796f757220646f6e6174696f6e496e6465782073686f756c642062652067726561746572207468616e207a65726f546f74616c20616d6f756e742064656c65676174656420746f20726563697069656e7473206d75737420626520657175616c20746f2074686520746f74616c20616d6f756e7420696e20746865207265717565737443616d706169676e2063616e6e6f7420626520636c6f7365642c2062656361757365206974207374696c6c2068617320736f6d6520756e7370656e6465642066756e6473a265627a7a723158203354e64b6629497e4dedf0da004c5f49deee4d3c8eff75143459a26de090479364736f6c63430005100032496e697469616c20616d6f756e7420676f616c20206d7573742062652067726561746572207468616e207a65726f43616d706169676e2073746172742074696d65206d757374206265206c657373207468616e20656e642074696d652ea265627a7a72315820afd89288c02b11cf1b929f07d9e12b7d81a1b1dfdb246eb906f544a2154d004464736f6c63430005100032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063339d50a51461005c5780634acb9d4f146100ca5780637e6253da14610129578063a3012d5314610147578063ec8e0ac1146102d7575b600080fd5b6100886004803603602081101561007257600080fd5b8101908080359060200190929190505050610321565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100d261035d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101155780820151818401526020810190506100fa565b505050509050019250505060405180910390f35b6101316103eb565b6040518082815260200191505060405180910390f35b6102d5600480360360c081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561019a57600080fd5b8201836020820111156101ac57600080fd5b803590602001918460018302840111640100000000831117156101ce57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023157600080fd5b82018360208201111561024357600080fd5b8035906020019184600183028401116401000000008311171561026557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190803590602001909291905050506103f7565b005b6102df6105bc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000818154811061032e57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008054806020026020016040519081016040528092919081815260200182805480156103e157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610397575b5050505050905090565b60008080549050905090565b600086868686868660405161040b90610602565b808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001868152602001858152602001848152602001838103835288818151815260200191508051906020019080838360005b83811015610490578082015181840152602081019050610475565b50505050905090810190601f1680156104bd5780820380516001836020036101000a031916815260200191505b50838103825287818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b5098505050505050505050604051809103906000f08015801561054a573d6000803e3d6000fd5b50905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b600080600160008054905003815481106105d257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612c28806106108339019056fe60806040523480156200001157600080fd5b5060405162002c2838038062002c28833981810160405260c08110156200003757600080fd5b8101908080519060200190929190805160405193929190846401000000008211156200006257600080fd5b838201915060208201858111156200007957600080fd5b82518660018202830111640100000000821117156200009757600080fd5b8083526020830192505050908051906020019080838360005b83811015620000cd578082015181840152602081019050620000b0565b50505050905090810190601f168015620000fb5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011f57600080fd5b838201915060208201858111156200013657600080fd5b82518660018202830111640100000000821117156200015457600080fd5b8083526020830192505050908051906020019080838360005b838110156200018a5780820151818401526020810190506200016d565b50505050905090810190601f168015620001b85780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190805190602001909291905050508181116200023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062002bf9602f913960400191505060405180910390fd5b6000831162000295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018062002bcb602e913960400191505060405180910390fd5b856000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460019080519060200190620002ed929190620003fb565b50836002908051906020019062000306929190620003fb565b508260038190555081600b8190555080600c819055506203f480600a819055506001600d60006101000a81548160ff02191690831515021790555060076040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505050505050505050620004aa565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200043e57805160ff19168380011785556200046f565b828001600101855582156200046f579182015b828111156200046e57825182559160200191906001019062000451565b5b5090506200047e919062000482565b5090565b620004a791905b80821115620004a357600081600090555060010162000489565b5090565b90565b61271180620004ba6000396000f3fe6080604052600436106101355760003560e01c806360713609116100ab578063a96271361161006f578063a9627136146108c8578063ca0cdea81461094a578063cf09e0d0146109af578063d2765c94146109da578063e81e1ccc14610a15578063ed88c68e14610a4057610135565b8063607136091461078c5780636a3d9a4a146107b75780637284e416146107e2578063777016fb146108725780639ef27b001461089d57610135565b80634051ddac116100fd5780634051ddac14610404578063481c6a751461057d5780634a79d50c146105d45780634dfa84341461066457806351b42b001461074a5780635c8d71521461076157610135565b80631b0f5fc21461013a57806321464bfe1461017557806322f3e2d4146101b0578063332f7acf146101df578063372bfd9c1461020a575b600080fd5b34801561014657600080fd5b506101736004803603602081101561015d57600080fd5b8101908080359060200190929190505050610a4a565b005b34801561018157600080fd5b506101ae6004803603602081101561019857600080fd5b8101908080359060200190929190505050610cc9565b005b3480156101bc57600080fd5b506101c5610fbb565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610fce565b6040518082815260200191505060405180910390f35b34801561021657600080fd5b506104026004803603608081101561022d57600080fd5b810190808035906020019064010000000081111561024a57600080fd5b82018360208201111561025c57600080fd5b8035906020019184600183028401116401000000008311171561027e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001906401000000008111156102eb57600080fd5b8201836020820111156102fd57600080fd5b8035906020019184602083028401116401000000008311171561031f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460208302840111640100000000831117156103b357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610fd4565b005b34801561041057600080fd5b50610419611583565b604051808e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018415151515815260200183810383528f818151815260200191508051906020019080838360005b838110156104cf5780820151818401526020810190506104b4565b50505050905090810190601f1680156104fc5780820380516001836020036101000a031916815260200191505b5083810382528e818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b34801561058957600080fd5b5061059261174f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e057600080fd5b506105e9611774565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062957808201518184015260208101905061060e565b50505050905090810190601f1680156106565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561067057600080fd5b5061069d6004803603602081101561068757600080fd5b8101908080359060200190929190505050611812565b60405180806020018881526020018781526020018681526020018581526020018415151515815260200183151515158152602001828103825289818151815260200191508051906020019080838360005b838110156107095780820151818401526020810190506106ee565b50505050905090810190601f1680156107365780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561075657600080fd5b5061075f6119e8565b005b34801561076d57600080fd5b50610776611b06565b6040518082815260200191505060405180910390f35b34801561079857600080fd5b506107a1611b0c565b6040518082815260200191505060405180910390f35b3480156107c357600080fd5b506107cc611b12565b6040518082815260200191505060405180910390f35b3480156107ee57600080fd5b506107f7611b18565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083757808201518184015260208101905061081c565b50505050905090810190601f1680156108645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561087e57600080fd5b50610887611bb6565b6040518082815260200191505060405180910390f35b3480156108a957600080fd5b506108b2611bbc565b6040518082815260200191505060405180910390f35b3480156108d457600080fd5b50610901600480360360208110156108eb57600080fd5b8101908080359060200190929190505050611bc2565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561095657600080fd5b506109996004803603602081101561096d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c13565b6040518082815260200191505060405180910390f35b3480156109bb57600080fd5b506109c4611c2b565b6040518082815260200191505060405180910390f35b3480156109e657600080fd5b50610a13600480360360208110156109fd57600080fd5b8101908080359060200190929190505050611c31565b005b348015610a2157600080fd5b50610a2a611eca565b6040518082815260200191505060405180910390f35b610a486121a0565b005b60011515600d60009054906101000a900460ff16151514610ad3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b600060098281548110610b8757fe5b9060005260206000209060080201905042600a54826006015401118015610bb657506007805490508160050154105b8015610bd157508060070160009054906101000a900460ff16155b15610cc55760018160070160006101000a81548160ff0219169083151502179055508060010154600560008282540392505081905550806001015460066000828254019250508190555060008090505b8160030154811015610cc357600082600201600083815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc82600101549081150290604051600060405180830381858888f19350505050158015610cb4573d6000803e3d6000fd5b50508080600101915050610c21565b505b5050565b60011515600d60009054906101000a900460ff16151514610d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610dea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125c86022913960400191505060405180910390fd5b60008111610e43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126236021913960400191505060405180910390fd5b6009805490508110610ebd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f46756e64205265717565737420646f6e27742065786973742e0000000000000081525060200191505060405180910390fd5b600060098281548110610ecc57fe5b906000526020600020906008020160040190508060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610fb75760008160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098281548110610f9457fe5b906000526020600020906008020160050160008154809291906001900391905055505b5050565b600d60009054906101000a900460ff1681565b60045481565b60011515600d60009054906101000a900460ff1615151461105d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b42600c54118015611117575060035460045410155b61116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806124e96023913960400191505060405180910390fd5b600083116111e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f416d6f756e742063616e6e6f74206265207a65726f2e0000000000000000000081525060200191505060405180910390fd5b600082511180156111f4575060008151115b611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612549602a913960400191505060405180910390fd5b80518251146112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061250c603d913960400191505060405180910390fd5b8260055460065460045403031015611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806125736032913960400191505060405180910390fd5b600080905060005b825181101561133c5782818151811061132357fe5b602002602001015182019150808060010191505061130e565b50838114611395576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260558152602001806126446055913960600191505060405180910390fd5b60096040518060c00160405280878152602001868152602001600081526020016000815260200142815260200160001515815250908060018154018082558091505090600182039060005260206000209060080201600090919290919091506000820151816000019080519060200190611410929190612443565b506020820151816001015560408201518160030155606082015181600501556080820151816006015560a08201518160070160006101000a81548160ff021916908315150217905550505050600060096001600980549050038154811061147357fe5b90600052602060002090600802019050600081600201905060008090505b85518110156115725760405180604001604052808783815181106114b157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018683815181106114e057fe5b602002602001015181525082600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015590505082600301600081548092919060010191905055508080600101915050611491565b508560058190555050505050505050565b60006060806000806000806000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016002600354600454600554600654600a54600b54600c54600780549050600980549050600d60009054906101000a900460ff168b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116835780601f1061165857610100808354040283529160200191611683565b820191906000526020600020905b81548152906001019060200180831161166657829003601f168201915b50505050509b508a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561171f5780601f106116f45761010080835404028352916020019161171f565b820191906000526020600020905b81548152906001019060200180831161170257829003601f168201915b50505050509a509c509c509c509c509c509c509c509c509c509c509c509c509c50909192939495969798999a9b9c565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561180a5780601f106117df5761010080835404028352916020019161180a565b820191906000526020600020905b8154815290600101906020018083116117ed57829003601f168201915b505050505081565b6060600080600080600080876001600980549050011161189a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e646578206973206f7574206f662072616e67652e0000000000000000000081525060200191505060405180910390fd5b6000600989815481106118a957fe5b906000526020600020906008020190508060000181600101548260030154836005015484600601548560070160009054906101000a900460ff168660040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16868054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119c75780601f1061199c576101008083540402835291602001916119c7565b820191906000526020600020905b8154815290600101906020018083116119aa57829003601f168201915b50505050509650975097509750975097509750975050919395979092949650565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125a56023913960400191505060405180910390fd5b60065460045414611ae9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260448152602001806126996044913960600191505060405180910390fd5b6000600d60006101000a81548160ff021916908315150217905550565b60065481565b60055481565b60035481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bae5780601f10611b8357610100808354040283529160200191611bae565b820191906000526020600020905b815481529060010190602001808311611b9157829003601f168201915b505050505081565b600a5481565b600c5481565b60078181548110611bcf57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60086020528060005260406000206000915090505481565b600b5481565b60011515600d60009054906101000a900460ff16151514611cba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611d52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125c86022913960400191505060405180910390fd5b60008111611dab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126236021913960400191505060405180910390fd5b6009805490508110611e25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f46756e64205265717565737420646f6e27742065786973742e0000000000000081525060200191505060405180910390fd5b600160098281548110611e3457fe5b906000526020600020906008020160040160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098181548110611ea657fe5b90600052602060002090600802016005016000815480929190600101919050555050565b600060011515600d60009054906101000a900460ff16151514611f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b6003546004541080611f68575042600c54115b611fda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f446f6e6174696f6e2063616e6e6f742062652077697468647261776e0000000081525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111612077576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806125ea6039913960400191505060405180910390fd5b60006007828154811061208657fe5b90600052602060002090600202016001015490506000811115612196576000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600782815481106120f557fe5b9060005260206000209060020201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090555050806004600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561218b573d6000803e3d6000fd5b50809250505061219d565b6000925050505b90565b60011515600d60009054906101000a900460ff16151514612229576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e747261637420697320636c6f736564000000000000000000000000000081525060200191505060405180910390fd5b60003414156122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416d6f756e74206d7573742062652067726561746572207468616e207a65726f81525060200191505060405180910390fd5b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156123e6576001905080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760405180604001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001348152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505050612430565b6000600782815481106123f557fe5b90600052602060002090600202016001015490503481016007838154811061241957fe5b906000526020600020906002020160010181905550505b3460046000828254019250508190555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061248457805160ff19168380011785556124b2565b828001600101855582156124b2579182015b828111156124b1578251825591602001919060010190612496565b5b5090506124bf91906124c3565b5090565b6124e591905b808211156124e15760008160009055506001016124c9565b5090565b9056fe43616d706169676e20636f756c646e277420726561636865642069747320676f616c2e54686572652073686f756c6420626520657175616c206e6f2e206f6620726563697069656e74732061646472657373657320616e6420616d6f756e747352657175657374206d75737420636f6e7461696e2061746c65617374206f6e6520726563697069656e7443616d706169676e20646f6e2774206861766520656e6f7567682066756e647320666f7220796f757220726571756573742e4f6e6c79204d616e616765722063616e2063616c6c20746869732066756e6374696f6e4f6e6c7920446f6e6f722063616e2063616c6c20746869732066756e6374696f6e73596f75206861766520746f206265206120646f6e6f7220696e206f7264657220746f20776974686472617720796f757220646f6e6174696f6e496e6465782073686f756c642062652067726561746572207468616e207a65726f546f74616c20616d6f756e742064656c65676174656420746f20726563697069656e7473206d75737420626520657175616c20746f2074686520746f74616c20616d6f756e7420696e20746865207265717565737443616d706169676e2063616e6e6f7420626520636c6f7365642c2062656361757365206974207374696c6c2068617320736f6d6520756e7370656e6465642066756e6473a265627a7a723158203354e64b6629497e4dedf0da004c5f49deee4d3c8eff75143459a26de090479364736f6c63430005100032496e697469616c20616d6f756e7420676f616c20206d7573742062652067726561746572207468616e207a65726f43616d706169676e2073746172742074696d65206d757374206265206c657373207468616e20656e642074696d652ea265627a7a72315820afd89288c02b11cf1b929f07d9e12b7d81a1b1dfdb246eb906f544a2154d004464736f6c63430005100032", + "sourceMap": "146:948:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;146:948:1;;;;;;;", + "deployedSourceMap": "146:948:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;146:948:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;225:34;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;225:34:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;833:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;833:112:1;;;;;;;;;;;;;;;;;716:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;302:402;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;302:402:1;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;302:402:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;302:402:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;302:402:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;302:402:1;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;302:402:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;302:402:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;302:402:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;302:402:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;957:134;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;225:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;833:112::-;885:16;920:17;913:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;833:112;:::o;716:105::-;765:4;789:17;:24;;;;782:31;;716:105;:::o;302:402::-;529:20;566:8;576:6;585:12;599:18;619:10;631:9;552:89;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;552:89:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;552:89:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;552:89:1;529:112;;652:17;683:11;652:44;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;652:44:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;302:402;;;;;;;:::o;957:134::-;1012:7;1038:17;1081:1;1056:17;:24;;;;:26;1038:45;;;;;;;;;;;;;;;;;;;;;;;;;1031:52;;957:134;:::o;146:948::-;;;;;;;;:::o", + "source": "pragma solidity ^0.5.16;\r\nimport \"./Campaign.sol\";\r\n\r\n\r\n//Campaign factory: This contract is used to deploy and keep track of deployed Campaigns\r\ncontract CampaignFactory{\r\n \r\n //list of all the deployed Campaigns\r\n address[] public deployedCampaigns;\r\n \r\n //deploys a new Campaign\r\n function createCampaign(\r\n address _manager, \r\n string memory _title, \r\n string memory _description, \r\n uint _initialAmountGoal, \r\n uint _createdAt,\r\n uint _closedAt) public {\r\n Campaign newCampaign = new Campaign( _manager, _title, _description, _initialAmountGoal, _createdAt, _closedAt);\r\n deployedCampaigns.push(address(newCampaign));\r\n }\r\n \r\n function getCampaignsCount() public view returns(uint) {\r\n return deployedCampaigns.length;\r\n }\r\n \r\n function getDeployedCampaigns() public view returns(address[] memory){\r\n return deployedCampaigns;\r\n }\r\n \r\n function getLastDeployedContract() public view returns(address){\r\n return deployedCampaigns[deployedCampaigns.length-1];\r\n }\r\n}", + "sourcePath": "F:/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol", + "ast": { + "absolutePath": "/F/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol", + "exportedSymbols": { + "CampaignFactory": [850] + }, + "id": 851, + "nodeType": "SourceUnit", "nodes": [ - { - "constant": false, - "id": 782, - "name": "deployedCampaigns", - "nodeType": "VariableDeclaration", - "scope": 850, - "src": "225:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" + { + "id": 778, + "literals": ["solidity", "^", "0.5", ".16"], + "nodeType": "PragmaDirective", + "src": "0:24:1" }, - "typeName": { - "baseType": { - "id": 780, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 781, - "length": null, - "nodeType": "ArrayTypeName", - "src": "225:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + { + "absolutePath": "/F/Software Development/React Projects/de-care/ethereum/contracts/Campaign.sol", + "file": "./Campaign.sol", + "id": 779, + "nodeType": "ImportDirective", + "scope": 851, + "sourceUnit": 777, + "src": "26:24:1", + "symbolAliases": [], + "unitAlias": "" }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 817, - "nodeType": "Block", - "src": "518:186:1", - "statements": [ - { - "assignments": [ - 798 - ], - "declarations": [ + { + "baseContracts": [], + "contractDependencies": [776], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 850, + "linearizedBaseContracts": [850], + "name": "CampaignFactory", + "nodeType": "ContractDefinition", + "nodes": [ { - "constant": false, - "id": 798, - "name": "newCampaign", - "nodeType": "VariableDeclaration", - "scope": 817, - "src": "529:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - }, - "typeName": { - "contractScope": null, - "id": 797, - "name": "Campaign", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 776, - "src": "529:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 808, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 801, - "name": "_manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "566:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 802, - "name": "_title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 786, - "src": "576:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 803, - "name": "_description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "585:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 804, - "name": "_initialAmountGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "599:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 805, - "name": "_createdAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "619:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 806, - "name": "_closedAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "631:9:1", + "constant": false, + "id": 782, + "name": "deployedCampaigns", + "nodeType": "VariableDeclaration", + "scope": 850, + "src": "225:34:1", + "stateVariable": true, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeName": { + "baseType": { + "id": 780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "225:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 781, + "length": null, + "nodeType": "ArrayTypeName", + "src": "225:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 817, + "nodeType": "Block", + "src": "518:186:1", + "statements": [ + { + "assignments": [798], + "declarations": [ + { + "constant": false, + "id": 798, + "name": "newCampaign", + "nodeType": "VariableDeclaration", + "scope": 817, + "src": "529:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + }, + "typeName": { + "contractScope": null, + "id": 797, + "name": "Campaign", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 776, + "src": "529:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 808, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 801, + "name": "_manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 784, + "src": "566:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 802, + "name": "_title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "576:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 803, + "name": "_description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "585:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 804, + "name": "_initialAmountGoal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "599:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 805, + "name": "_createdAt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "619:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 806, + "name": "_closedAt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 794, + "src": "631:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "552:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Campaign_$776_$", + "typeString": "function (address,string memory,string memory,uint256,uint256,uint256) returns (contract Campaign)" + }, + "typeName": { + "contractScope": null, + "id": 799, + "name": "Campaign", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 776, + "src": "556:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + } + }, + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "552:89:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "529:112:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 813, + "name": "newCampaign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "683:11:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + ], + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "675:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "675:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 809, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "652:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "652:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "652:44:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 816, + "nodeType": "ExpressionStatement", + "src": "652:44:1" + } + ] }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "documentation": null, + "id": 818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createCampaign", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 784, + "name": "_manager", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "336:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 783, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 786, + "name": "_title", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "364:20:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 785, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "name": "_description", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "396:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 787, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 790, + "name": "_initialAmountGoal", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "434:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 789, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "434:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 792, + "name": "_createdAt", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "469:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 791, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "469:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 794, + "name": "_closedAt", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 793, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "325:185:1" }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "returnParameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [], + "src": "518:0:1" }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "552:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Campaign_$776_$", - "typeString": "function (address,string memory,string memory,uint256,uint256,uint256) returns (contract Campaign)" - }, - "typeName": { - "contractScope": null, - "id": 799, - "name": "Campaign", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 776, - "src": "556:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - } + "scope": 850, + "src": "302:402:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, - "id": 807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "552:89:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "529:112:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 813, - "name": "newCampaign", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "683:11:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - ], - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + { + "body": { + "id": 826, + "nodeType": "Block", + "src": "771:50:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 823, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "789:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "789:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 822, + "id": 825, + "nodeType": "Return", + "src": "782:31:1" + } + ] }, - "id": 814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "675:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 809, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "652:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "652:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "652:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 816, - "nodeType": "ExpressionStatement", - "src": "652:44:1" - } - ] - }, - "documentation": null, - "id": 818, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createCampaign", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 795, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 784, - "name": "_manager", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "336:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 783, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "336:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 786, - "name": "_title", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "364:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 785, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "364:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 788, - "name": "_description", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "396:26:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 787, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "396:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 790, - "name": "_initialAmountGoal", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "434:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 789, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "434:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 792, - "name": "_createdAt", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "469:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 791, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "469:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 794, - "name": "_closedAt", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "495:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 793, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "325:185:1" - }, - "returnParameters": { - "id": 796, - "nodeType": "ParameterList", - "parameters": [], - "src": "518:0:1" - }, - "scope": 850, - "src": "302:402:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 826, - "nodeType": "Block", - "src": "771:50:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 823, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "789:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 824, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "789:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 822, - "id": 825, - "nodeType": "Return", - "src": "782:31:1" - } - ] - }, - "documentation": null, - "id": 827, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCampaignsCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 819, - "nodeType": "ParameterList", - "parameters": [], - "src": "742:2:1" - }, - "returnParameters": { - "id": 822, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 821, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 827, - "src": "765:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 820, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "765:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "764:6:1" - }, - "scope": 850, - "src": "716:105:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 835, - "nodeType": "Block", - "src": "902:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 833, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "920:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 832, - "id": 834, - "nodeType": "Return", - "src": "913:24:1" - } - ] - }, - "documentation": null, - "id": 836, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDeployedCampaigns", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 828, - "nodeType": "ParameterList", - "parameters": [], - "src": "862:2:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 831, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "885:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 829, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "885:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 830, - "length": null, - "nodeType": "ArrayTypeName", - "src": "885:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "884:18:1" - }, - "scope": 850, - "src": "833:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "1020:71:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 841, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "1038:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } + "documentation": null, + "id": 827, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCampaignsCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 819, + "nodeType": "ParameterList", + "parameters": [], + "src": "742:2:1" + }, + "returnParameters": { + "id": 822, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 821, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 827, + "src": "765:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 820, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "765:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "764:6:1" + }, + "scope": 850, + "src": "716:105:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" }, - "id": 846, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 842, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "1056:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } + { + "body": { + "id": 835, + "nodeType": "Block", + "src": "902:43:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 833, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 832, + "id": 834, + "nodeType": "Return", + "src": "913:24:1" + } + ] }, - "id": 843, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1056:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1081:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" + "documentation": null, + "id": 836, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDeployedCampaigns", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 828, + "nodeType": "ParameterList", + "parameters": [], + "src": "862:2:1" + }, + "returnParameters": { + "id": 832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 831, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 836, + "src": "885:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 829, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "885:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 830, + "length": null, + "nodeType": "ArrayTypeName", + "src": "885:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "884:18:1" }, - "value": "1" - }, - "src": "1056:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "scope": 850, + "src": "833:112:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1038:45:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 840, - "id": 847, - "nodeType": "Return", - "src": "1031:52:1" - } - ] - }, - "documentation": null, - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getLastDeployedContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 837, - "nodeType": "ParameterList", - "parameters": [], - "src": "989:2:1" - }, - "returnParameters": { - "id": 840, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 839, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "1012:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 838, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1012:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + { + "body": { + "id": 848, + "nodeType": "Block", + "src": "1020:71:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 841, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "1038:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 846, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 842, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "1056:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 843, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1056:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1081:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1056:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1038:45:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 840, + "id": 847, + "nodeType": "Return", + "src": "1031:52:1" + } + ] + }, + "documentation": null, + "id": 849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLastDeployedContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 837, + "nodeType": "ParameterList", + "parameters": [], + "src": "989:2:1" + }, + "returnParameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 849, + "src": "1012:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1012:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1011:9:1" + }, + "scope": 850, + "src": "957:134:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1011:9:1" - }, - "scope": 850, - "src": "957:134:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } + ], + "scope": 851, + "src": "146:948:1" + } ], - "scope": 851, - "src": "146:948:1" - } - ], - "src": "0:1094:1" - }, - "legacyAST": { - "absolutePath": "/F/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol", - "exportedSymbols": { - "CampaignFactory": [ - 850 - ] + "src": "0:1094:1" }, - "id": 851, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 778, - "literals": [ - "solidity", - "^", - "0.5", - ".16" - ], - "nodeType": "PragmaDirective", - "src": "0:24:1" - }, - { - "absolutePath": "/F/Software Development/React Projects/de-care/ethereum/contracts/Campaign.sol", - "file": "./Campaign.sol", - "id": 779, - "nodeType": "ImportDirective", - "scope": 851, - "sourceUnit": 777, - "src": "26:24:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 776 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 850, - "linearizedBaseContracts": [ - 850 - ], - "name": "CampaignFactory", - "nodeType": "ContractDefinition", + "legacyAST": { + "absolutePath": "/F/Software Development/React Projects/de-care/ethereum/contracts/CampaignFactory.sol", + "exportedSymbols": { + "CampaignFactory": [850] + }, + "id": 851, + "nodeType": "SourceUnit", "nodes": [ - { - "constant": false, - "id": 782, - "name": "deployedCampaigns", - "nodeType": "VariableDeclaration", - "scope": 850, - "src": "225:34:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" + { + "id": 778, + "literals": ["solidity", "^", "0.5", ".16"], + "nodeType": "PragmaDirective", + "src": "0:24:1" }, - "typeName": { - "baseType": { - "id": 780, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 781, - "length": null, - "nodeType": "ArrayTypeName", - "src": "225:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + { + "absolutePath": "/F/Software Development/React Projects/de-care/ethereum/contracts/Campaign.sol", + "file": "./Campaign.sol", + "id": 779, + "nodeType": "ImportDirective", + "scope": 851, + "sourceUnit": 777, + "src": "26:24:1", + "symbolAliases": [], + "unitAlias": "" }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 817, - "nodeType": "Block", - "src": "518:186:1", - "statements": [ - { - "assignments": [ - 798 - ], - "declarations": [ + { + "baseContracts": [], + "contractDependencies": [776], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 850, + "linearizedBaseContracts": [850], + "name": "CampaignFactory", + "nodeType": "ContractDefinition", + "nodes": [ { - "constant": false, - "id": 798, - "name": "newCampaign", - "nodeType": "VariableDeclaration", - "scope": 817, - "src": "529:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - }, - "typeName": { - "contractScope": null, - "id": 797, - "name": "Campaign", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 776, - "src": "529:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 808, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 801, - "name": "_manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "566:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 802, - "name": "_title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 786, - "src": "576:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 803, - "name": "_description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "585:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 804, - "name": "_initialAmountGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "599:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 805, - "name": "_createdAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "619:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 806, - "name": "_closedAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "631:9:1", + "constant": false, + "id": 782, + "name": "deployedCampaigns", + "nodeType": "VariableDeclaration", + "scope": 850, + "src": "225:34:1", + "stateVariable": true, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeName": { + "baseType": { + "id": 780, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "225:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 781, + "length": null, + "nodeType": "ArrayTypeName", + "src": "225:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 817, + "nodeType": "Block", + "src": "518:186:1", + "statements": [ + { + "assignments": [798], + "declarations": [ + { + "constant": false, + "id": 798, + "name": "newCampaign", + "nodeType": "VariableDeclaration", + "scope": 817, + "src": "529:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + }, + "typeName": { + "contractScope": null, + "id": 797, + "name": "Campaign", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 776, + "src": "529:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 808, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 801, + "name": "_manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 784, + "src": "566:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 802, + "name": "_title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "576:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 803, + "name": "_description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "585:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 804, + "name": "_initialAmountGoal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "599:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 805, + "name": "_createdAt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "619:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 806, + "name": "_closedAt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 794, + "src": "631:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "552:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Campaign_$776_$", + "typeString": "function (address,string memory,string memory,uint256,uint256,uint256) returns (contract Campaign)" + }, + "typeName": { + "contractScope": null, + "id": 799, + "name": "Campaign", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 776, + "src": "556:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + } + }, + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "552:89:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "529:112:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 813, + "name": "newCampaign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "683:11:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Campaign_$776", + "typeString": "contract Campaign" + } + ], + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "675:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "675:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 809, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "652:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "652:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "652:44:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 816, + "nodeType": "ExpressionStatement", + "src": "652:44:1" + } + ] }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "documentation": null, + "id": 818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createCampaign", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 784, + "name": "_manager", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "336:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 783, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 786, + "name": "_title", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "364:20:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 785, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "name": "_description", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "396:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 787, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 790, + "name": "_initialAmountGoal", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "434:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 789, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "434:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 792, + "name": "_createdAt", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "469:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 791, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "469:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 794, + "name": "_closedAt", + "nodeType": "VariableDeclaration", + "scope": 818, + "src": "495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 793, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "325:185:1" }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "returnParameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [], + "src": "518:0:1" }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "552:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Campaign_$776_$", - "typeString": "function (address,string memory,string memory,uint256,uint256,uint256) returns (contract Campaign)" - }, - "typeName": { - "contractScope": null, - "id": 799, - "name": "Campaign", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 776, - "src": "556:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - } + "scope": 850, + "src": "302:402:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, - "id": 807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "552:89:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "529:112:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 813, - "name": "newCampaign", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "683:11:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Campaign_$776", - "typeString": "contract Campaign" - } - ], - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + { + "body": { + "id": 826, + "nodeType": "Block", + "src": "771:50:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 823, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "789:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "789:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 822, + "id": 825, + "nodeType": "Return", + "src": "782:31:1" + } + ] }, - "id": 814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "675:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 809, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "652:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "652:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "652:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 816, - "nodeType": "ExpressionStatement", - "src": "652:44:1" - } - ] - }, - "documentation": null, - "id": 818, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createCampaign", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 795, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 784, - "name": "_manager", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "336:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 783, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "336:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 786, - "name": "_title", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "364:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 785, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "364:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 788, - "name": "_description", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "396:26:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 787, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "396:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 790, - "name": "_initialAmountGoal", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "434:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 789, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "434:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 792, - "name": "_createdAt", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "469:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 791, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "469:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 794, - "name": "_closedAt", - "nodeType": "VariableDeclaration", - "scope": 818, - "src": "495:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 793, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "325:185:1" - }, - "returnParameters": { - "id": 796, - "nodeType": "ParameterList", - "parameters": [], - "src": "518:0:1" - }, - "scope": 850, - "src": "302:402:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 826, - "nodeType": "Block", - "src": "771:50:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 823, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "789:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 824, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "789:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 822, - "id": 825, - "nodeType": "Return", - "src": "782:31:1" - } - ] - }, - "documentation": null, - "id": 827, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCampaignsCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 819, - "nodeType": "ParameterList", - "parameters": [], - "src": "742:2:1" - }, - "returnParameters": { - "id": 822, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 821, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 827, - "src": "765:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 820, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "765:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "764:6:1" - }, - "scope": 850, - "src": "716:105:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 835, - "nodeType": "Block", - "src": "902:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 833, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "920:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 832, - "id": 834, - "nodeType": "Return", - "src": "913:24:1" - } - ] - }, - "documentation": null, - "id": 836, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDeployedCampaigns", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 828, - "nodeType": "ParameterList", - "parameters": [], - "src": "862:2:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 831, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "885:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 829, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "885:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 830, - "length": null, - "nodeType": "ArrayTypeName", - "src": "885:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "884:18:1" - }, - "scope": 850, - "src": "833:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "1020:71:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 841, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "1038:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } + "documentation": null, + "id": 827, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCampaignsCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 819, + "nodeType": "ParameterList", + "parameters": [], + "src": "742:2:1" + }, + "returnParameters": { + "id": 822, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 821, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 827, + "src": "765:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 820, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "765:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "764:6:1" + }, + "scope": 850, + "src": "716:105:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" }, - "id": 846, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 842, - "name": "deployedCampaigns", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 782, - "src": "1056:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } + { + "body": { + "id": 835, + "nodeType": "Block", + "src": "902:43:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 833, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 832, + "id": 834, + "nodeType": "Return", + "src": "913:24:1" + } + ] }, - "id": 843, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1056:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1081:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" + "documentation": null, + "id": 836, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDeployedCampaigns", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 828, + "nodeType": "ParameterList", + "parameters": [], + "src": "862:2:1" + }, + "returnParameters": { + "id": 832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 831, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 836, + "src": "885:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 829, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "885:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 830, + "length": null, + "nodeType": "ArrayTypeName", + "src": "885:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "884:18:1" }, - "value": "1" - }, - "src": "1056:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "scope": 850, + "src": "833:112:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1038:45:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 840, - "id": 847, - "nodeType": "Return", - "src": "1031:52:1" - } - ] - }, - "documentation": null, - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getLastDeployedContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 837, - "nodeType": "ParameterList", - "parameters": [], - "src": "989:2:1" - }, - "returnParameters": { - "id": 840, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 839, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "1012:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 838, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1012:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + { + "body": { + "id": 848, + "nodeType": "Block", + "src": "1020:71:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 841, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "1038:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 846, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 842, + "name": "deployedCampaigns", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 782, + "src": "1056:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 843, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1056:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1081:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1056:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1038:45:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 840, + "id": 847, + "nodeType": "Return", + "src": "1031:52:1" + } + ] + }, + "documentation": null, + "id": 849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLastDeployedContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 837, + "nodeType": "ParameterList", + "parameters": [], + "src": "989:2:1" + }, + "returnParameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 849, + "src": "1012:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1012:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1011:9:1" + }, + "scope": 850, + "src": "957:134:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1011:9:1" - }, - "scope": 850, - "src": "957:134:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } + ], + "scope": 851, + "src": "146:948:1" + } ], - "scope": 851, - "src": "146:948:1" - } - ], - "src": "0:1094:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.16+commit.9c3226ce.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.2.2", - "updatedAt": "2020-08-08T17:27:45.274Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file + "src": "0:1094:1" + }, + "compiler": { + "name": "solc", + "version": "0.5.16+commit.9c3226ce.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.2", + "updatedAt": "2020-08-08T17:27:45.274Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} diff --git a/src/services/ethereum/ethService.js b/src/services/ethereum/ethService.js index 68808a8..3b72e94 100644 --- a/src/services/ethereum/ethService.js +++ b/src/services/ethereum/ethService.js @@ -43,6 +43,7 @@ export const listenNetworkChange = (dispatch) => { export const enable = async (dispatch) => { //get campagin factory address from firebase factoryAddress = await getCampaginFactoryAddress(); + factory = new Contract(CAMPAIGN_FACTORY_ABI, factoryAddress); if (web3.givenProvider) { @@ -122,6 +123,7 @@ export const getCampaign = async (campaignAddress, userAddress) => { export const getCampaignsCount = async () => { let count = await factory.methods.getCampaignsCount().call(); + console.log("count",count); return count; } diff --git a/src/services/firebase/config.js b/src/services/firebase/config.js index 838d14f..b0ced96 100644 --- a/src/services/firebase/config.js +++ b/src/services/firebase/config.js @@ -2,22 +2,23 @@ import firebase from 'firebase'; import 'firebase/auth'; import 'firebase/storage'; import 'firebase/database'; +import 'firebase/firestore'; // Set the configuration for your app // TODO: Replace with your app's config object const firebaseConfig = { - apiKey: "AIzaSyC3LNbwxHFGGPl5jKXG3CjBVBrER350fR8", - authDomain: "de-care-11445.firebaseapp.com", - databaseURL: "https://de-care-11445.firebaseio.com", - projectId: "de-care-11445", - storageBucket: "de-care-11445.appspot.com", - messagingSenderId: "1080234101368", - appId: "1:1080234101368:web:83946f7ea4a35d12077b8d", - measurementId: "G-KJ4Z9S3NFC" -}; + apiKey: "AIzaSyB8cMdUj1VTodhe85kwwJ_g3jMJyHa_e6k", + authDomain: "fypdecare.firebaseapp.com", + projectId: "fypdecare", + storageBucket: "fypdecare.appspot.com", + messagingSenderId: "199245709655", + appId: "1:199245709655:web:e1b321a748ede6c535fe12", + measurementId: "G-WP7GCMCDLT" + }; firebase.initializeApp(firebaseConfig); export const database = firebase.database(); +export const firestore = firebase.firestore(); export const storage = firebase.storage(); export const auth = firebase.auth(); \ No newline at end of file diff --git a/src/services/firebase/databaseService.js b/src/services/firebase/databaseService.js index ba70985..6536e45 100644 --- a/src/services/firebase/databaseService.js +++ b/src/services/firebase/databaseService.js @@ -1,4 +1,4 @@ -import { database } from './config'; +import { database, firestore } from './config'; const write = async (node, jsonData) => { await database.ref(node).set(jsonData); @@ -49,7 +49,11 @@ export const getUserDonations = async (userAddress) => { } export const getCampaginFactoryAddress = async () => { - return await read('campaignFactoryAddress'); + const res = await firestore.collection("campaignFactoryAddress").get(); + const address = res.docs.find(doc => { + if(doc.data().value !== "") return doc.data().value; + } ) + return address.data().value; } //donations structure // const donations = {