NES.TECH Documentation
  • 👋Welcome to NES.TECH
  • Overview
    • 💡What we do
  • SDKs Guide
    • 📪Kickstart with our SDKs
    • ⛓️Blockchain SDKs
      • 📌Solana SDK
        • ⛏️generateAccount
        • ⛏️getAccountFromSecretKey
        • ⛏️getBalance
        • ⛏️sendSOL
        • ⛏️mintNFT
        • ⛏️estimateTransferToken
        • ⛏️estimateMint
        • ⛏️estimateSOLTransfer
        • ⛏️estimateMintToken
        • ⛏️createToken
        • ⛏️transferToken
      • 📌EVM Chains SDK
        • ⛏️BulkNFT
          • 🔗deployContract
          • 🔗bulkMint
        • ⛏️NFT
          • 🔗deployContract
          • 🔗mint
          • 🔗convertToVLRY
          • 🔗VLRYToUSD
          • 🔗VLRYToCRYPTO
          • 🔗transferOwnership
          • 🔗transfer
          • 🔗estimateFee
            • 📌ERC20
              • ⛏️deploy
              • ⛏️mint
              • ⛏️transfer
            • 📌ERC721
              • ⛏️deploy
              • ⛏️mint
              • ⛏️transfer
            • 📌ERC1155
              • ⛏️deploy
              • ⛏️mint
              • ⛏️transfer
            • 📌Soulbound
              • ⛏️deploy
              • ⛏️mint
        • ⛏️Contracts
          • 🔗ERC20
            • 📌deployContract
            • 📌transfer
            • 📌mint
          • 🔗ERC721
            • 📌deployContract
            • 📌transfer
            • 📌mint
            • 📌approve
          • 🔗ERC1155
            • 📌deployContract
            • 📌transfer
            • 📌mint
            • 📌balanceOf
          • 🔗Soulbound
            • 📌deployContract
        • ⛏️Wallet
          • 🔗getBalance
          • 🔗sendEther
          • 🔗depositEther
          • 🔗checkIfAddress
        • ⛏️NFTMarketPlace
          • 🔗listNFT
          • 🔗buyNFT
          • 🔗getNFT
          • 🔗placeBid
          • 🔗transferNFT
        • ⛏️BlockchainInfo
          • 🔗availableBlockchains
          • 🔗availableContracts
      • 📌Tokenomics SDK
        • ⛏️createStake
        • ⛏️removeStake
        • ⛏️approveVolary
        • ⛏️transferVolary
        • ⛏️getBalance
        • ⛏️claimRewards
        • ⛏️addRewards
        • ⛏️swapVlry
        • ⛏️getSwapAmountVolary
      • 📌Storage SDK
        • ⛏️uploadToIPFS
        • ⛏️fetchMetadata
      • 📌Casper SDK
        • ⛏️generateWallet
        • ⛏️fetchWalletFromPrivateKey
        • ⛏️fetchAccountHash
        • ⛏️getBalance
        • ⛏️transferTokens
        • ⛏️deployNFTContract
        • ⛏️mintNFT
        • ⛏️mintFreeNFT
        • ⛏️checkNFT
        • ⛏️approveSale
        • ⛏️transferNFT
        • ⛏️getNftOwner
        • ⛏️bid
        • ⛏️startBidding
        • ⛏️closeBidding
        • ⛏️cancelAuction
        • ⛏️getUserData
        • ⛏️getNftInfo
        • ⛏️getContractDetails
        • ⛏️getWalletDetails
        • ⛏️checkPublicKey
        • ⛏️getAllAuctionNft
        • ⛏️transferWithRoyalty
        • ⛏️getPaymentAmounts
        • ⛏️transferPlaceBidAmount
      • 📌XY-Finance SDK
        • ⛏️getRecommendedTokens
        • ⛏️getQuote
        • ⛏️approveSwap
        • ⛏️executeSwap
      • 📌Wallet SDK
        • ⛏️createWallet
        • ⛏️getKeys
          • 🔗btc
          • 🔗evm
          • 🔗sol
          • 🔗near
        • ⛏️transfer
          • 🔗evm
          • 🔗sol
          • 🔗btc
          • 🔗near
        • ⛏️estimateFee
          • 🔗evm
          • 🔗sol
        • ⛏️txStatus
          • 🔗evm
          • 🔗sol
          • 🔗near
        • ⛏️getBalanceByMnemonic
          • 🔗evm
          • 🔗sol
          • 🔗btc
          • 🔗near
        • ⛏️chainBalances
          • 🔗evm
          • 🔗sol
        • ⛏️testChainBalances
        • ⛏️getTotalBalanceInUSDByAddresArray
          • 🔗evm
          • 🔗sol
        • ⛏️isAddress
          • 🔗evm
          • 🔗sol
        • ⛏️isPrivateKey
          • 🔗evm
          • 🔗sol
        • ⛏️isMnemonic
          • 🔗evm
      • 📌Explorer SDK
        • ⛏️getLatestTxsOfAddress
        • ⛏️getLatestTxs
        • ⛏️getTransferFromAddress
    • 🤖AI Guide
      • 📌Overview
      • 📌Face Recognition
        • ⛏️faceRecoRegisterUser
        • ⛏️faceRecoCompareFaceWithId
        • ⛏️faceRecoCompareFaceWithFace
      • 📌Check Toxicity
        • ⛏️checkToxicityImage
        • ⛏️checToxicityTest
      • 📌Caption and Tag Generator
        • ⛏️generateCaptionAndTagsFromImage
      • 📌Stable Diffusion
        • ⛏️stableDiffusionGenerateImage
      • 📌Image Similarity
        • ⛏️imageSimilarityTrain
        • ⛏️imageSimilarityTest
  • Template Library
    • 🛠️Get Started
    • 🕵️Technical Overview
    • 👷Smart Contracts
      • 📌ERC721
      • 📌ERC721A
      • 📌ERC1155
      • 📌Soulbound
      • 📌ERC6551
        • 📌Account
        • 📌Registry
      • 📌Fractional
      • 📌BiDirectionalPaymentChannel
      • 📌Swap
      • 📌ERC2981
      • 📌Flashloans
      • 📌Vault
      • 📌ERC884
      • 📌Play To Earn Contract
      • 📌Escrow
      • 📌UpgradableNFTContract
    • ⚖️Templates Library
      • 🥇Music Tracks/Album
      • 🥇Loyalty Point System
      • 🥇Real Estate Ownership
      • 🥇Artwork Authentication
      • 🥇Crowdfunding Platform
      • 🥇Social Tokens
      • 🥇Food and Recipe
      • 🥇Scientific Research
      • 🥇Educational Certification
      • 🥇Trading Cards
      • 🥇Digital Fashion
      • 🥇Bulk Digital Fashion
      • 🥇Governance Token
      • 🥇Content Licenses
      • 🥇Membership Cards
      • 🥇Bulk Membership Cards
      • 🥇Artifacts
      • 🥇Debt Instruments
      • 🥇Bulk Debt Instruments
      • 🥇Profit Sharing
      • 🥇Digital Souvenirs
      • 🥇Fractional Ownership of Intellectual Property
      • 🥇Digital Autographs and Signature
      • 🥇Bulk Digital Autographs and Signature
      • 🥇Film and Media Rights
      • 🥇Bulk Film and Media Rights
      • 🥇Sports Achievements
      • 🥇Bulk Sports Achievements
      • 🥇Digital Comics and Graphic Novels
      • 🥇Bulk Digital Comics and Graphic Novels
      • 🥇Proposals and Voting
      • 🥇Music Royalties
      • 🥇Gaming Royalties
      • 🥇Art Token Aggregation
      • 🥇Medical Token Aggregation
      • 🥇Charity Token Aggregation
      • 🥇Travel Token Aggregation
      • 🥇Time-Limited Access Tokens
      • 🥇Virtual Art Exhibition
  • KRYPTOKASE
    • 🛠️KryptoKase: Overview
    • 🕵️Technical Overview
    • 👷Functionalities
      • 📌Create Token
      • 📌Mint Token
      • 📌Transfer Tokens
      • 📌Airdrop Token
      • 📌Schedule Vesting
      • 📌Token Analytics
  • AERIE
    • 🏆Introduction
      • 📌Overview
      • 📌Use Cases
    • 📖User Guide
      • 📌Dashboard
      • 📌Managing Assets
        • 🔗Creating Assets
      • 📌Wallet Management
        • 🔗Overview
      • 📌Client Management
        • 🔗Adding Client
        • 🔗Managing Members
      • 📌Invoice Management
        • 🔗Managing Tickets
    • 📌Features
      • 🔗AI Image Generation
      • 🔗Portfolio Management
      • 🔗CDN Analytics
  • ROMULUS
    • Contracts
      • Dynamic NFT
      • Rental NFT
      • ERC 998
      • Fractional NFT
  • Layer 1
    • 🗡️DAG-EVM Hybrid Layer 1
    • ⛓️Setting up an RPC/RO Node
    • 👾Node Functions
      • 📍ftm.call()
      • 📍ftm.chainId()
      • 📍ftm.contract()
      • 📍ftm.currentEpoch()
      • 📍ftm.estimateGas()
      • 📍ftm.feeHistory()
      • 📍ftm.fillTransaction()
      • 📍ftm.filter()
      • 📍ftm.getAccounts()
      • 📍ftm.getBalance()
      • 📍ftm.getBlock()
      • 📍ftm.getBlockByHash()
      • 📍ftm.getBlockByNumber()
      • 📍ftm.getBlockNumber()
      • 📍ftm.getBlockTransactionCount()
      • 📍ftm.getBlockUncleCount()
      • 📍ftm.getCode()
      • 📍ftm.getCoinbase()
      • 📍ftm.getCompilers()
      • 📍ftm.getEvent()
      • 📍ftm.getGasPrice()
      • 📍ftm.getHashrate()
      • 📍ftm.getHeaderByHash()
      • 📍ftm.getHeaderByNumber()
      • 📍ftm.getHeads()
      • 📍ftm.getMaxPriorityFeePerGas()
      • 📍ftm.getPendingTransactions()
      • 📍ftm.getProof()
      • 📍ftm.getProtocolVersion()
      • 📍ftm.getStorageAt()
      • 📍ftm.getTransaction()
      • 📍ftm.getTransactionCount()
      • 📍ftm.getTransactionReceipt()
      • 📍ftm.icapNamereg()
      • 📍ftm.isSyncing()
      • 📍ftm.namereg()
      • 📍ftm.sendRawTransaction()
      • 📍ftm.signTransaction()
    • 🎫Admin Node Functions
      • 📍admin.addPeer()
      • 📍admin.addTrustedPeer()
      • 📍admin.exportChain()
      • 📍admin.getNodeInfo()
      • 📍admin.getPeers()
      • 📍admin.importChain()
      • 📍admin.removePeer()
      • 📍admin.removeTrustedPeer()
      • 📍admin.startHTTP()
      • 📍admin.startWS()
      • 📍admin.stopHTTP()
      • 📍admin.stopWS()
    • 📄Oracle Contracts
      • 📌Traffic Feed Contract
      • 📌Air Quality Feed Contract
      • 📌Football Player Feed Contract
      • 📌Stock Price Feed Contract
      • 📌Weather Feed Contract
      • 📌Crypto Price Feed Contract
      • 📌Random Number Contract
Powered by GitBook
On this page
  • Introduction
  • Technical Description
  • 🔗 Usage
  • 📜 Contract Code
  • ⚡ Contract Functions
  1. Layer 1
  2. Oracle Contracts

Traffic Feed Contract

Introduction

The Smart Contract Traffic Feed Oracle is a decentralized solution designed to fetch real-time traffic data and provide it to smart contracts. Acting as a bridge between blockchain-based contracts and external data sources, this oracle enables smart contracts to seamlessly access and utilize live traffic information.


Technical Description

The Smart Contract Traffic Feed Oracle is implemented as a blockchain smart contract (e.g., on Ethereum). It listens for traffic data events, stores the data in a decentralized manner, and makes it accessible across the network.

How It Works

The contract accepts coordinates (longitude & latitude) as input. It sends a request to an external traffic API and retrieves the latest data. The contract updates its storage with real-time traffic metrics:

  • Free Flow Speed

  • Current Travel Time

  • Free Flow Travel Time

An event is triggered that other smart contracts can monitor.

Users interact with the contract by calling its functions and providing the necessary inputs. The stored traffic data is secure, transparent, and tamper-proof, ensuring a reliable data source for decentralized applications.


🔗 Usage

To utilize the Smart Contract Traffic Feed Oracle, follow these steps:

1️⃣ Deploy the Contract

Deploy the contract to the blockchain using the Oracle Contract address:

0x7D9C78e1B944669f78E9571Ca1783BC479Aa47e7

2️⃣ Request Traffic Data

Call the function:

requestTrafficData(first, second, address)
  • This function accepts longitude and latitude as input.

  • It is a payable function, requiring a small amount of ETH for access.

  • Upon completion, it returns an ID for tracking the data request.

3️⃣ Retrieve Traffic Data

Call the function:

retrieveData(_id)
  • Pass the ID obtained from the previous step to fetch the latest traffic data.


📜 Contract Code

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;

interface TrafficDataOracle {
    function add(string memory first, string memory second, address payable sender) payable external returns (string memory, string memory, address, int);
    function getTrafficData(uint _id) view external returns (uint, uint, uint);
}

contract Contract2 {
    address TrafficoracleAddress;

    constructor(address _c1) {
        TrafficoracleAddress = _c1;
    }

    int public _id;

    function requestTrafficData(string memory _first, string memory _second, address payable _sender_address) public payable returns (string memory, string memory, address, int) {
        (string memory first, string memory sec, address sender, int id) = TrafficDataOracle(TrafficoracleAddress).add{value: msg.value}(_first, _second, _sender_address);
        return (first, sec, sender, id);
    }

    function retrieveData(uint id) public view returns (uint, uint, uint) {
        return TrafficDataOracle(TrafficoracleAddress).getTrafficData(id);
    }
}

⚡ Contract Functions

🔹 constructor(address _c1)

  • Accepts the TrafficDataOracle contract address.

  • Sets up the reference to the external Oracle contract.

🔹 requestTrafficData

function requestTrafficData(string memory _first, string memory _second, address payable _sender_address) public payable returns (string memory, string memory, address, int);
  • Accepts starting location and destination as string inputs.

  • Requires a payment in Ethereum for data access.

  • Returns:

    • Starting location

    • Destination

    • Sender address

    • Request ID

🔹 retrieveData

function retrieveData(uint id) public view returns (uint, uint, uint);
  • Fetches traffic data based on a given request ID.

  • Returns:

    • Travel time

    • Distance

    • Timestamp

Last updated 3 months ago

📄
📌