ArkProjectNFTs / ark-project

ArkProject is a liquidity layer for digital assets, uniting markets, empowering creators, and bridging the gap to mass adoption. Built on top of Starknet, ArkProject is designed to provide a fully decentralized and trustless orderbook on-chain.
https://arkproject.dev
Apache License 2.0
27 stars 26 forks source link

feat: build and export all ABIs #466

Closed gershon closed 1 month ago

gershon commented 1 month ago

We should generate and export all contract ABIs to facilitate their usages and manipulations.

ikemHood commented 1 month ago

Would be happy to take on this by tomorrow 💫

gershon commented 1 month ago

Hi @ikemHood, let's go 🚀

mubarak23 commented 1 month ago

@gershon have you started assigning issues

ikemHood commented 1 month ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

hello, can i take on this?

ETA within 24hrs

How I plan on tackling this issue

write a ts script that get abi for contracts/target folder and save to a specified folder add a custom build:contract to package.json to first build the contract with scarb build the calls the script to extract the abi

Shoetan commented 1 month ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hi, I'm Emmanuel and I'll be working on issue:

I estimate this will take 3 days to finish Basecamp graduate

How I plan on tackling this issue

Here is how I would tackle this issue Understand the scope of work better by asking questions. Build contracts first Get the corresponding ABI or ABIs from contract_class.json file after a successful build. create a constants file for storing the ABI , Like abi-constant.cairo Create a constant for each ABI. Put ABI in constants like: const MY_CONTRACT_ABI: felt* = [ // The ABI data goes here ]; Export the constants for use and manipulations.

aji70 commented 1 month ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

i'm a solidity and cairo smart contract developer with over 2 years experience and belive i have the skill set for the task

ScottyDavies commented 1 month ago

hello @gershon i would love to take up this issue.

ooochoche commented 1 month ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a Blockchain Dev

How I plan on tackling this issue

I would take this steps in solving the issues:

GoSTEAN commented 1 month ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

have a solid background in blockchain development, specializing in writing and testing smart contracts using Solidity. I’ve worked on various decentralized applications (dApps), where I've built and deployed secure and efficient smart contracts on Ethereum. Additionally, I have experience in testing these contracts using frameworks like Hardhat and Truffle, ensuring they function as expected under different scenarios. My expertise in both Solidity development and rigorous testing practices will be valuable for this task.

How I plan on tackling this issue

  1. Modify the Build Configuration:

    • Update the build script (using tools like foundry) to include ABI generation. Ensure that the ABIs are automatically compiled each time contracts are built.
  2. Organize ABI Files:

    • Create a dedicated directory (e.g., /build/abis) to store the generated ABI files for each contract, ensuring they are easily accessible.
  3. Create a Constants File:

    • Create a constants.js (or equivalent) file that imports the generated ABIs from the ABI directory and exports them in a structured format (e.g., as an object with contract names as keys).
  4. Automate Exporting:

    • Implement a script that runs post-build to dynamically gather and export all ABI files into the constants file, making the process seamless and reducing manual updates.
  5. Verify and Test Integration:

    • Test the integration by importing the ABIs in various parts of the application to ensure they are functional and correctly interacting with the smart contracts.
    • Ensure proper error handling is in place to catch any issues related to ABI usage.
abdegenius commented 1 month ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a skilled fullstack developer with a wealth of experience in both frontend and backend JavaScript as well as my knowledge of Rustlang, With a solid foundation in testing,I have mastered frameworks like Mocha, Chai, and Jest to ensure robust, reliable code in every project. In addition to traditional web development, I have a strong background in blockchain technology, with hands-on experience in Solidity for Ethereum-based smart contracts. Moreover, I have delved into the emerging world of StarkNet, working with Cairo, a cutting-edge language tailored for STARKs, making them a versatile developer capable of bridging both traditional and decentralized web applications.

How I plan on tackling this issue

Having a background in blockchain development makes this easy as working with ABIs is an everyday thing, i will handle thecreating of abis on build, with well define exports

ikemHood commented 1 month ago

🚀