Basechain
  • About Basechain
  • Base BigBang Language
    • Introduction
    • 1. Getting started
      • 1.1 Installing BigBangNet
      • 1.2 BigBang basics
    • 2. Type
      • 2.1 Primitives
      • 2.2 Sequences
      • 2.3 Composites
    • 3. Keywords
    • 4. Storing data
      • 4.1 Constants
      • 4.2 Variables
      • 4.3 Maps
    • 5. Functions
      • 5.1 Public functions
      • 5.2 Private functions
      • 5.3 Read-only functions
  • 6. Control flow & error handling
    • 6.1 Asserts
    • 6.2 Try
    • 6.3 Unwrap flavours
    • 6.4 Response checking
  • 7. Using BigBangNet
    • 7.1 Creating a new project
    • 7.2 Writing your first contract
    • 7.3 Interacting with your contract
    • 7.4 Testing your contract
  • 8. Practice projects
    • 8.1 Time-locked wallet
    • 8.2 Smart claimant
    • 8.3 Multi-signature vault
  • 9. Traits
    • 9.1 Defining traits
    • 9.2 Implement traits
    • 9.3 Passing traits as arguments
  • 10. Building a marketplace
    • 10.1 Setup
    • 10.2 Listing & cancelling
    • 10.3 Fulfilling listings
    • 10.4 Uni tests
  • 11. Runtime cost analysis
  • Nodes & Miners
    • Run a Node with Docker
    • Run a Node with DigitalOcean
    • Run a Node with a Hosted Provider
    • Base Node Configuration
    • Mine testnet Base tokens
    • Verify Miner
    • Miner costs and fees
  • Website
  • X(Twitter)
  • Github
Powered by GitBook
On this page
  1. 9. Traits

9.2 Implement traits

Trait conformance means that a smart contract implements the functions defined in the trait.

To implement the trait, ensure that the contract has a 'multiply' function that takes two 'uint' parameters and returns either '(ok uint)' or '(err uint)'. To implement the trait, ensure that the contract has a 'multiply' function that takes two 'uint' parameters and returns either '(ok uint)' or '(err uint)'. The provided contract satisfies these requirements.

The contract has a divide function that is not present in the multiplier trait. However, this is not an issue as any system searching for contracts that implement multiplier does not require knowledge of other functions that those contracts may implement. Relying on the trait ensures that conforming contracts have a compatible multiply function implementation and nothing more.

Therefore, asserting trait implementations. In the opening paragraph of this chapter, we discussed implicit and explicit conformity. It is recommended to always explicitly assert that your contract implements a trait.

For instance, if the multiplier trait is deployed in a contract called multiplier-trait by the same principal, the impl-trait function is used to assert that the example contract implements the trait.

Previous9.1 Defining traitsNext9.3 Passing traits as arguments

Last updated 1 year ago