-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Smart Contract Interactions #12
Comments
Hi @caseywescott can I work this ? |
Hi @ShantelPeters! |
I am applying to this issue via OnlyDust platform. My background and how it can be leveragedI'm Poulav Bhowmick, a software engineer at Invisible Studios with a robust background in TypeScript, Rust, Solidity Cairo, fullstack development and blockchain technology. My experience includes building robust applications, optimizing functionalities and blockchain integration. I have actively participated in events and open source contributions, enhancing my capability to tackle real-world tech challenges. My projects can be viewed on my GitHub Profile and OnlyDust Profile. Plus I´m active member of Starknet community🇷. How I plan on tackling this issue
Deploy on Starknet Testnet: Local Development Environment: Mirror Production Setup:
Minting Functionality: Error Handling: Approval and Transfer:
Successful Transaction: Failed Transaction: Network Issues:
High-Volume Transactions: Large SVG Data: Multiple Wallets:
Transaction Integrity: User Authentication: Reentrancy and Overflow:
Response Time: Gas Optimization:
Document the Testing Process: Feedback Loop: ETA- 3 days |
I am applying to this issue via OnlyDust platform. My background and how it can be leveragedLately, I have been immersing myself deeply in Cairo and Starknet, dedicating significant time to mastering these cutting-edge technologies. My journey includes participation in numerous bootcamps and continuous training sessions, which have provided me with a solid foundation and advanced expertise in this domain. Additionally, I have actively engaged in recent hackathons, where I applied my skills in Cairo to build innovative solutions, further honing my abilities and staying at the forefront of the rapidly evolving blockchain ecosystem. My experience in these competitive environments has equipped me with the agility and problem-solving skills. I am part of the Dojo Coding community. How I plan on tackling this issueI am fully available.
|
I am applying to this issue via OnlyDust platform. My background and how it can be leveragedWe develop smart contracts in Solidity for Ethereum's testnet and mainnet, and we use Next.js and React with TypeScript for the front end. Now, we're starting smart contract development on the Stellar blockchain using Soroban (Rust). I use Wagmi for wallet connections and hooks, and I've found it very effective. After reading the documentation, I have a good idea of how to implement something similar to the useWatchContractEvent hook. My focus is on maintaining clean, scalable code that aligns with the structure and quality of our existing codebase. How I plan on tackling this issueTo approach the problem of ensuring that the p5.js Web Editor correctly interfaces with the deployed Starknet smart contracts, the process can be broken down into several key steps that involve setting up the environment, conducting thorough testing, and validating the interaction between the frontend and the blockchain to ensure security, efficiency, and reliability. First, it is essential to set up a testing environment. This involves deploying the smart contract on the Starknet testnet to create a controlled environment that simulates real-world conditions. Additionally, setting up a local development environment using tools like Starknet Devnet can help simulate blockchain interactions without incurring real transaction costs. It is crucial that the testing environment mirrors the production setup as closely as possible, including contract versions, configurations, and network conditions. Monitoring tools should be set up to observe the interaction between the frontend and the blockchain in real-time. Next, writing test cases for the contract functions is critical. The minting functionality should be tested to ensure that the contract correctly accepts SVG data and mints it as an NFT, with the minted NFT containing the correct metadata and being assigned to the correct owner. Error handling should also be tested, focusing on how the contract handles invalid inputs, such as malformed SVG data or insufficient gas fees, and ensuring that these errors are properly caught and communicated to the frontend. If the contract supports the transfer or approval of NFTs, those functions should also be tested to ensure they work as expected and interact correctly with the user's wallet. Simulating various user scenarios is another important step. This includes simulating a successful minting transaction to ensure that the user receives confirmation and that the NFT is correctly minted on the blockchain. Failed transactions should also be simulated, testing scenarios where transactions fail due to issues like insufficient funds, contract rejections, or network errors. The frontend should handle these failures gracefully, providing clear error messages to the user. Additionally, network issues such as latency or disruptions should be simulated to see how the system handles transaction delays or failures, ensuring that the UI provides appropriate feedback and allows users to retry or cancel the transaction if necessary. |
I am applying to this issue via OnlyDust platform. My background and how it can be leveragedI'm a Software Engineer Backend SR. But I have experience with React and some of Cairo too. How I plan on tackling this issueI would use Starknet sdk to invoke the contract functions. I would collect the parameters probably from redux store, and then to I will request againts the contract and handle errors. |
Increasing Access
Ensure that the p5.js Web Editor correctly interfaces with the deployed Starknet smart contracts.
Feature request details
This involves validating that the contract functions are called correctly, handling different scenarios like successful transactions, failed transactions, and edge cases, and ensuring that the interaction between the frontend and the blockchain is secure, efficient, and reliable. Proper testing helps prevent issues during the minting process and ensures a smooth user experience.
Tasks:
Set Up a Testing Environment:
Deploy the smart contract on a Starknet testnet to create a controlled environment for testing interactions.
If applicable, set up a local development environment using tools like Starknet Devnet to simulate blockchain interactions without incurring real transaction costs.
Ensure that the testing environment mirrors the production setup as closely as possible, including contract versions, configurations, and network conditions.
Write Test Cases for Contract Functions:
Minting Functionality: Test the contract’s minting function, ensuring that it correctly accepts SVG data and mints it as an NFT. Verify that the minted NFT contains the correct metadata and is assigned to the correct owner.
Error Handling: Test how the contract handles invalid inputs or insufficient gas fees. Verify that errors are properly caught and communicated back to the frontend.
Approval and Transfer: If the contract supports transfer or approval of NFTs, test these functions to ensure they work as expected and interact correctly with the wallet.
Simulate Various User Scenarios:
Successful Transaction: Simulate a successful minting transaction, ensuring that the user receives a confirmation and that the NFT is minted on the blockchain.
Failed Transaction: Test scenarios where transactions fail due to issues like insufficient funds, contract rejections, or network errors. Ensure that these failures are handled gracefully by the frontend, with clear error messages provided to the user.
Network Issues: Simulate network latency or disruptions to see how the system handles transaction delays or failures. Verify that the UI provides appropriate feedback and that users can retry or cancel the transaction if necessary.
Test Edge Cases and Limits:
High-Volume Transactions: Test how the smart contract and the frontend handle a high volume of minting requests. Ensure that the system remains stable and responsive under load.
Large SVG Data: Test the minting process with large or complex SVG data to ensure that the contract can handle the data size and that the frontend manages the transaction efficiently.
Multiple Wallets: If applicable, test interactions from multiple wallets, ensuring that the contract correctly handles different users and does not mix up transactions.
Security Testing:
Transaction Integrity: Ensure that the data sent to the contract is secure and has not been tampered with. Test for potential security vulnerabilities, such as replay attacks or data injection.
User Authentication: Verify that only authenticated users can interact with the smart contract and that unauthorized access is prevented.
Reentrancy and Overflow: Test the contract for common smart contract vulnerabilities like reentrancy attacks or integer overflows, ensuring that these are handled correctly.
Performance Testing:
Response Time: Measure the response time of the contract functions, especially under varying network conditions. Ensure that transactions are processed within acceptable timeframes and that the UI remains responsive.
Gas Optimization: Monitor the gas usage for various contract functions, ensuring that they are optimized for efficiency. Identify and address any functions that consume excessive gas.
The text was updated successfully, but these errors were encountered: