You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is my solidity code:
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;
contract CompanyData {
address public admin;
struct Data {
uint256 amount;
string amount_type;
string cid;
}
mapping(address => Data) public dataStore;
constructor() public {
admin = msg.sender;
}
modifier onlyAdmin() {
require(msg.sender == admin, "Only admin can call this function.");
_;
}
function storeData(uint256 _amount, string memory _amount_type, string memory _cid) public onlyAdmin {
Data storage data = dataStore[msg.sender];
data.amount = _amount;
data.amount_type = _amount_type;
data.cid = _cid;
}
function getData() public view returns (uint256, string memory, string memory) {
Data storage data = dataStore[msg.sender];
return (data.amount, data.amount_type, data.cid);
}
}
//I will be calling the storeData() function in my Laravel Project
function storeData(Request $req)
{
$response = $this->addStatement($req);
$contractAddress = '0x998A16edcb330DA3bf9B00065dc9091870B20dc3';
$cid = $response->getData()->cid;
$amount = intval($req->input('amount'));
$amount_type = $req->input('amount_type');
$callback = function ($err, $result) {
if ($err !== null) {
print('failed to interact with the smart contract function: ' . $err);
return;
}
};
}
function addStatement(Request $request)
{
$data = $request->all(); // Retrieve all input data
$description = $request->input('description');
$key = env('ENCRYPTION_KEY');
// **Encryption Step:**
if ($description && $key) {
$encryptedDescription = $this->encryptDataWithOpenSSL($description, $key);
} else {
// Handle missing data or encryption key
return response()->json(['error' => 'Description or encryption key missing'], 400);
}
// Check if encryption was successful
if (!isset($encryptedDescription)) {
// Handle encryption failure
return response()->json(['error' => 'Encryption failed'], 500);
}
try {
$ipfs = new IPFS();
//print("Connected to IPFS\n");
// Attempt to add content to IPFS
$result = $ipfs->add($encryptedDescription);
if (!empty($result)) {
$cid = $result;
//print("Stored encrypted data on IPFS with CID: " . $cid . "\n");
// dd($encryptedDescription, $description, $data['amount'], $data['amount_type'], $cid);
// Return the CID as a response
return response()->json(['cid' => $cid], 200);
} else {
// Print or log the error message
print("Error storing data on IPFS: Unable to retrieve CID\n");
print_r($result); // Print the result for further debugging
// Handle failure to retrieve CID
return response()->json(['error' => 'Unable to retrieve CID from IPFS'], 500);
}
} catch (Exception $e) {
// Print or log the error message
print("Error connecting to IPFS: " . $e->getMessage() . "\n");
// Handle connection error
return response()->json(['error' => 'Error connecting to IPFS'], 500);
}
}
I wanted to store some data such as the amount, amount_type and CID onto the Ganache network by interacting with the smart contract which i have deployed onto the Ganache Blockchain, however, it kept prompting me "Wrong type of eth_sendTransaction method argument 0." but i think the way i call the contract->send() looks just find, Github Copilot suggest me to write my param like this "[$amount, $amount_type, $cid]", but if i do that, i will get this error stating "Please make sure you have put all function params and callback."
The text was updated successfully, but these errors were encountered:
This is my solidity code:
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;
contract CompanyData {
address public admin;
struct Data {
uint256 amount;
string amount_type;
string cid;
}
}
//I will be calling the storeData() function in my Laravel Project
function storeData(Request $req)
{
$response = $this->addStatement($req);
$contractAddress = '0x998A16edcb330DA3bf9B00065dc9091870B20dc3';
$cid = $response->getData()->cid;
$amount = intval($req->input('amount'));
$amount_type = $req->input('amount_type');
$callback = function ($err, $result) {
if ($err !== null) {
print('failed to interact with the smart contract function: ' . $err);
return;
}
};
}
function addStatement(Request $request)
{
$data = $request->all(); // Retrieve all input data
$description = $request->input('description');
$key = env('ENCRYPTION_KEY');
}
I wanted to store some data such as the amount, amount_type and CID onto the Ganache network by interacting with the smart contract which i have deployed onto the Ganache Blockchain, however, it kept prompting me "Wrong type of eth_sendTransaction method argument 0." but i think the way i call the contract->send() looks just find, Github Copilot suggest me to write my param like this "[$amount, $amount_type, $cid]", but if i do that, i will get this error stating "Please make sure you have put all function params and callback."
The text was updated successfully, but these errors were encountered: