// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
import "./simpleStorage.sol";
contract StorageFactory is SimpleStorage {
SimpleStorage[] public simpleStorageArray;
function createSimpleStorageContract() public {
SimpleStorage simpleStorage = new SimpleStorage();
simpleStorageArray.push(simpleStorage);
}
// interacting with the deployed contract methods
function sfStore (uint256 _simpleStorageIndex, uint256 _simpleStorageNumber) public {
// you'll need
// Address -> contract address
// ABI -> application binary interface
SimpleStorage simpleStorage = SimpleStorage(address(simpleStorageArray[_simpleStorageIndex]));
simpleStorage.store(_simpleStorageNumber);
}
function sfGet (uint256 _simpleStorageIndex) public view returns (uint256) {
SimpleStorage simpleStorage = SimpleStorage(address(simpleStorageArray[_simpleStorageIndex]));
return simpleStorage.retrieve();
// or
// return SimpleStorage(address(simpleStorageArray[_simpleStorageIndex])).retrieve()
}
}