Contract Factories2019 Community Moderator ElectionWhat is the BigMap container and why does it...
What does "the touch of the purple" mean?
How strictly should I take "Candidates must be local"?
Can Mathematica be used to create an Artistic 3D extrusion from a 2D image and wrap a line pattern around it?
Can you reject a postdoc offer after the PI has paid a large sum for flights/accommodation for your visit?
Do I really need to have a scientific explanation for my premise?
How many characters using PHB rules does it take to be able to have access to any PHB spell at the start of an adventuring day?
What are actual Tesla M60 models used by AWS?
Difference on montgomery curve equation between EFD and RFC7748
Are there historical instances of the capital of a colonising country being temporarily or permanently shifted to one of its colonies?
Is it "Vierergruppe" or "Viergruppe", or is there a distinction?
Are babies of evil humanoid species inherently evil?
What problems would a superhuman have whose skin is constantly hot?
Doesn't allowing a user mode program to access kernel space memory and execute the IN and OUT instructions defeat the purpose of having CPU modes?
Could you please stop shuffling the deck and play already?
NASA's RS-25 Engines shut down time
Why would one plane in this picture not have gear down yet?
Are all players supposed to be able to see each others' character sheets?
In the quantum hamiltonian, why does kinetic energy turn into an operator while potential doesn't?
How to secure an aircraft at a transient parking space?
Reverse string, can I make it faster?
An alternative proof of an application of Hahn-Banach
Why the color red for the Republican Party
Declaring and defining template, and specialising them
What was the Kree's motivation in Captain Marvel?
Contract Factories
2019 Community Moderator ElectionWhat is the BigMap container and why does it matter?Parameter passed when calling CONTRACT in michelsonA contract calling another contractGet a returned value when calling a Michelson contractHow can I deploy a Michelson smart contract?Is there a way to call a function inside a contract from a function in another contract?
Has there been any research into how a contract factory might be made in Michelson/Liquidity?
To elaborate, in Solidity a contract factory might look like:
pragma solidity ^0.4.8;
contract Bakery {
// index of created contracts
address[] public contracts;
// useful to know the row count in contracts index
function getContractCount()
public
constant
returns(uint contractCount)
{
return contracts.length;
}
// deploy a new contract
function newCookie()
public
returns(address newContract)
{
Cookie c = new Cookie();
contracts.push(c);
return c;
}
}
contract Cookie {
// suppose the deployed contract has a purpose
function getFlavor()
public
constant
returns (string flavor)
{
return "mmm ... chocolate chip";
}
}
(referenced from https://ethereum.stackexchange.com/questions/13415/deploy-contract-from-contract-in-solidity)
This is a powerful feature in DAPP development, as it allows you to build an object oriented structure for your DAPP where requests can create new contracts. It is a well established design pattern, so what would the equivalent be in the Tezos ecosystem?
michelson
add a comment |
Has there been any research into how a contract factory might be made in Michelson/Liquidity?
To elaborate, in Solidity a contract factory might look like:
pragma solidity ^0.4.8;
contract Bakery {
// index of created contracts
address[] public contracts;
// useful to know the row count in contracts index
function getContractCount()
public
constant
returns(uint contractCount)
{
return contracts.length;
}
// deploy a new contract
function newCookie()
public
returns(address newContract)
{
Cookie c = new Cookie();
contracts.push(c);
return c;
}
}
contract Cookie {
// suppose the deployed contract has a purpose
function getFlavor()
public
constant
returns (string flavor)
{
return "mmm ... chocolate chip";
}
}
(referenced from https://ethereum.stackexchange.com/questions/13415/deploy-contract-from-contract-in-solidity)
This is a powerful feature in DAPP development, as it allows you to build an object oriented structure for your DAPP where requests can create new contracts. It is a well established design pattern, so what would the equivalent be in the Tezos ecosystem?
michelson
It appears likeCREATE_CONTRACT { storage 'g ; parameter 'p ; code ... }
would work, but this will bloat the size of a contract a bit, and it feels like there should be a way to handle this gracefully like in Solidity's Java style class instantiation.
– Rob
3 hours ago
If not, a clean example in Michelson would be nice.
– Rob
3 hours ago
ok cool, probably a ways out then.
– Rob
3 hours ago
1
I put a comment that I deleted to convert it into an answer. I missed your comment that was added afterwards. My apologies for this.
– FFF
3 hours ago
add a comment |
Has there been any research into how a contract factory might be made in Michelson/Liquidity?
To elaborate, in Solidity a contract factory might look like:
pragma solidity ^0.4.8;
contract Bakery {
// index of created contracts
address[] public contracts;
// useful to know the row count in contracts index
function getContractCount()
public
constant
returns(uint contractCount)
{
return contracts.length;
}
// deploy a new contract
function newCookie()
public
returns(address newContract)
{
Cookie c = new Cookie();
contracts.push(c);
return c;
}
}
contract Cookie {
// suppose the deployed contract has a purpose
function getFlavor()
public
constant
returns (string flavor)
{
return "mmm ... chocolate chip";
}
}
(referenced from https://ethereum.stackexchange.com/questions/13415/deploy-contract-from-contract-in-solidity)
This is a powerful feature in DAPP development, as it allows you to build an object oriented structure for your DAPP where requests can create new contracts. It is a well established design pattern, so what would the equivalent be in the Tezos ecosystem?
michelson
Has there been any research into how a contract factory might be made in Michelson/Liquidity?
To elaborate, in Solidity a contract factory might look like:
pragma solidity ^0.4.8;
contract Bakery {
// index of created contracts
address[] public contracts;
// useful to know the row count in contracts index
function getContractCount()
public
constant
returns(uint contractCount)
{
return contracts.length;
}
// deploy a new contract
function newCookie()
public
returns(address newContract)
{
Cookie c = new Cookie();
contracts.push(c);
return c;
}
}
contract Cookie {
// suppose the deployed contract has a purpose
function getFlavor()
public
constant
returns (string flavor)
{
return "mmm ... chocolate chip";
}
}
(referenced from https://ethereum.stackexchange.com/questions/13415/deploy-contract-from-contract-in-solidity)
This is a powerful feature in DAPP development, as it allows you to build an object oriented structure for your DAPP where requests can create new contracts. It is a well established design pattern, so what would the equivalent be in the Tezos ecosystem?
michelson
michelson
asked 3 hours ago
RobRob
2885
2885
It appears likeCREATE_CONTRACT { storage 'g ; parameter 'p ; code ... }
would work, but this will bloat the size of a contract a bit, and it feels like there should be a way to handle this gracefully like in Solidity's Java style class instantiation.
– Rob
3 hours ago
If not, a clean example in Michelson would be nice.
– Rob
3 hours ago
ok cool, probably a ways out then.
– Rob
3 hours ago
1
I put a comment that I deleted to convert it into an answer. I missed your comment that was added afterwards. My apologies for this.
– FFF
3 hours ago
add a comment |
It appears likeCREATE_CONTRACT { storage 'g ; parameter 'p ; code ... }
would work, but this will bloat the size of a contract a bit, and it feels like there should be a way to handle this gracefully like in Solidity's Java style class instantiation.
– Rob
3 hours ago
If not, a clean example in Michelson would be nice.
– Rob
3 hours ago
ok cool, probably a ways out then.
– Rob
3 hours ago
1
I put a comment that I deleted to convert it into an answer. I missed your comment that was added afterwards. My apologies for this.
– FFF
3 hours ago
It appears like
CREATE_CONTRACT { storage 'g ; parameter 'p ; code ... }
would work, but this will bloat the size of a contract a bit, and it feels like there should be a way to handle this gracefully like in Solidity's Java style class instantiation.– Rob
3 hours ago
It appears like
CREATE_CONTRACT { storage 'g ; parameter 'p ; code ... }
would work, but this will bloat the size of a contract a bit, and it feels like there should be a way to handle this gracefully like in Solidity's Java style class instantiation.– Rob
3 hours ago
If not, a clean example in Michelson would be nice.
– Rob
3 hours ago
If not, a clean example in Michelson would be nice.
– Rob
3 hours ago
ok cool, probably a ways out then.
– Rob
3 hours ago
ok cool, probably a ways out then.
– Rob
3 hours ago
1
1
I put a comment that I deleted to convert it into an answer. I missed your comment that was added afterwards. My apologies for this.
– FFF
3 hours ago
I put a comment that I deleted to convert it into an answer. I missed your comment that was added afterwards. My apologies for this.
– FFF
3 hours ago
add a comment |
1 Answer
1
active
oldest
votes
There is a very succinct discussion in the announcement for SmartPy https://medium.com/@SmartPy_io/introducing-smartpy-and-smartpy-io-d4013bee7d4e#15ee.
The idea is to have a contract that holds a big_map and each element of the big_map represents a contract.
This is absolutely not restricted to SmartPy and it is directly doable in Michelson, Liquidity or Fi.
This subject also appeared here:
What is the BigMap container and why does it matter?
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "698"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftezos.stackexchange.com%2fquestions%2f745%2fcontract-factories%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
There is a very succinct discussion in the announcement for SmartPy https://medium.com/@SmartPy_io/introducing-smartpy-and-smartpy-io-d4013bee7d4e#15ee.
The idea is to have a contract that holds a big_map and each element of the big_map represents a contract.
This is absolutely not restricted to SmartPy and it is directly doable in Michelson, Liquidity or Fi.
This subject also appeared here:
What is the BigMap container and why does it matter?
add a comment |
There is a very succinct discussion in the announcement for SmartPy https://medium.com/@SmartPy_io/introducing-smartpy-and-smartpy-io-d4013bee7d4e#15ee.
The idea is to have a contract that holds a big_map and each element of the big_map represents a contract.
This is absolutely not restricted to SmartPy and it is directly doable in Michelson, Liquidity or Fi.
This subject also appeared here:
What is the BigMap container and why does it matter?
add a comment |
There is a very succinct discussion in the announcement for SmartPy https://medium.com/@SmartPy_io/introducing-smartpy-and-smartpy-io-d4013bee7d4e#15ee.
The idea is to have a contract that holds a big_map and each element of the big_map represents a contract.
This is absolutely not restricted to SmartPy and it is directly doable in Michelson, Liquidity or Fi.
This subject also appeared here:
What is the BigMap container and why does it matter?
There is a very succinct discussion in the announcement for SmartPy https://medium.com/@SmartPy_io/introducing-smartpy-and-smartpy-io-d4013bee7d4e#15ee.
The idea is to have a contract that holds a big_map and each element of the big_map represents a contract.
This is absolutely not restricted to SmartPy and it is directly doable in Michelson, Liquidity or Fi.
This subject also appeared here:
What is the BigMap container and why does it matter?
edited 3 hours ago
answered 3 hours ago
FFFFFF
636212
636212
add a comment |
add a comment |
Thanks for contributing an answer to Tezos Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftezos.stackexchange.com%2fquestions%2f745%2fcontract-factories%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
It appears like
CREATE_CONTRACT { storage 'g ; parameter 'p ; code ... }
would work, but this will bloat the size of a contract a bit, and it feels like there should be a way to handle this gracefully like in Solidity's Java style class instantiation.– Rob
3 hours ago
If not, a clean example in Michelson would be nice.
– Rob
3 hours ago
ok cool, probably a ways out then.
– Rob
3 hours ago
1
I put a comment that I deleted to convert it into an answer. I missed your comment that was added afterwards. My apologies for this.
– FFF
3 hours ago