У меня есть умный контракт, который будет выглядеть примерно так.
pragma solidity >=0.4.24;
contract Issue {
uint public threshold = 0;
address public partyA;
address public partyB;
bytes public issueHash;
// issue can only be created once and non - mutable, hence this function
function Issuecreate(address _addressB, bytes memory _issueHash) public {
if (threshold != 0){
revert("Issue can only be created once");
}
partyA = msg.sender;
partyB = _addressB;
issueHash = _issueHash;
threshold = 1;
}
// .....more contract here
}
contract issueFactory{
address[] public contracts;
// contract counter
function getContractCount()
public
view
returns(uint contractCount)
{
return contracts.length;
}
// deploy a new contract
function newIssue() //of course parameters would go here
public
returns(address newContract)
{
Issue c = new Issue(); //HERE, I would like to create a new issue contract here but also calling the function issue create from within that contract. Is this possible?
contracts.push(address(c));
return address(c);
}
}
Сейчас практически я хочу создать новый умный контракт, используя эту фабрику контрактов, но чтобы сэкономить на расходах на газ, я хочу, чтобы контракт был развернут и чтобы часть этой информации уже была заполнена при развертывании контракта.
Итак, допустим, я создаю контракт на выдачу, хочу сохранить адрес, выдать хеш и все такое. Этот материал никогда не изменится, так что это практично, это написано при развертывании контракта.
Есть ли какая-нибудь команда, которую я могу использовать для развертывания контракта, одновременно используя функцию.
например, некоторый псевдокод, например IssueFactory.newIssue.issueCreate (x, x);
Я также буду использовать Web3 на своем внешнем интерфейсе, так что, возможно, я смогу сделать это там, если не смогу напрямую написать свой контракт.