City Weather on Chainlink Functions

Remix

Go to Remix and create a new Solidity file by 1. going to the “FILE EXPLORER” and 2. clicking the “Create new file” icon:

Create a new Solidity file

Name the new file WeatherFunctions.sol:

Create a new Solidity file

The code is available at GitHub and also below:

As in the previous exercise, in the “DEPLOY & RUN TRANSACTIONS”, make sure your “ENVIRONMENT is on “Injected Provider - Metamask” and you are on Avalanche Fuji Testnet 43113:

Under the “DEPLOY” section, 1. paste in your Subscription ID we set up in the previous exercise and then 2. click the “transact” button to deploy our contract:

Enter your Chainlink Subscription ID and click "transact"

MetaMask will once again pop-up and ask you to confirm the transaction:

Confirm the transaction

Once deployed, we need to add this contract's address as a consumer. Copy the contracts address from here in Remix:

Copy your contract's address

Navigate back to Chainlink Functions and click the "Add consumer" button on the far right:

You can have multiple consumer contracts in a single Chainlink Functions Subscription (up to 100)

Chainlink Functions Service Limits

Time to add a consumer

Now 1. paste in your WeatherFunctions.sol deployed address and then 2. click the “Add consumer” blue button:

Paste in your consumer address and add the consumer

MetaMask will pop-up for you to confirm the transaction:

Confirm the transaction

Once the transaction is confirmed, refresh the page you will now see your new consumer:

Successfully added another consumer to your subscription

Back in Remix with our deployed contract WeatherFunctions.sol, click the drop down arrow next to getTemperature:

Click the down arrow

Fill in the 1. _city argument as London, or maybe your next vacation city, and then 2. click the “transact” button and 3. MetaMask will pop-up asking you to “Confirm” the transaction:

Confirm the transaction

After the transaction is complete, there are several read functions that will return you information. You asked for the weather in London, thus the lastTemperature function is what you are looking for below:

You get London's weather!

You can try any other city again. Sao Paulo is the argument for _city (#1) and thus you would do another transaction and after completion, you now see the weather in Sao Paulo (#2)! Click on the listAllCities function (#3), which returns a tuple of the history of what cities you have called for the current weather and it shows London and Sao Paulo:

Weather in Sao Paulo and our history

Here are more resources to help you with examples and guides to get a solid expert foundation on using Chainlink functions:

Last updated