Skip to content
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

CLI: Deploy native token contract #81

Closed
jonjove opened this issue Aug 17, 2022 · 12 comments · Fixed by #166
Closed

CLI: Deploy native token contract #81

jonjove opened this issue Aug 17, 2022 · 12 comments · Fixed by #166
Assignees

Comments

@jonjove
Copy link
Contributor

jonjove commented Aug 17, 2022

What problem does your feature solve?

The deployment path for native contracts is different from WASM contracts.

What would you like to see?

A nice interface to deploying the native token contract.

What alternatives are there?

TODO

@leighmcculloch
Copy link
Member

leighmcculloch commented Aug 17, 2022

I think we should replace the term native in user facing things with "builtin". Native is an implementation detail that a developer actually doesn't need to know about. What they do need to know is that the contract is built into the runtime.

I think we should avoid the term native in the CLI and make it look like a convenience function to deploy a "built in" contract. Instead of providing a --wasm file.wasm it'd be --builtin token.

We should avoid separate subcommands as that increases the top level surface area of the CLI which will make it harder to approach on first use.

@paulbellamy
Copy link
Contributor

Plus-one on builtin vs native. Native is not super informative for the dev.

I'm less opposed to a separate subcommand, though. For example, for algorand ASAs, they do:

goal asset create \
  --creator <address> \
  --total 1000 \
  --unitname <unit-name> \
  --asseturl "https://path/to/my/asset/details" \
  --decimals 0 \
  -d data

Which is very clean and understandable what it is doing. It separates it out from "normal" contracts, as a special thing.

@tsachiherman
Copy link
Contributor

so, on Algorand, the assets have their own set of transaction types.

@tsachiherman
Copy link
Contributor

I believe that this was a mistake that we didn't catch up early.

@tsachiherman
Copy link
Contributor

that is - it's ok to have a special transaction type for creating/destroying an asset. but the "regular" transfer transaction should be capable to be used for both assets and native coin ( xlm ).

@tsachiherman
Copy link
Contributor

I think that for us, having a token-contract might be a bit misleading for the end-users ( compared to eth ). we do have the concept of assets - which aren't programmatic at all. this task is about creating a "virtual" asset that lives as a smart contract. I'm not sure what the best "name" for that, though. maybe smart asset in compared to non-smart assets ? ( "smart" as an indication of the smart contract ). problem is, it renders the native assets to be non-smart.

@paulbellamy
Copy link
Contributor

Ok, this would be the same transaction type under-the-hood, just exposing it in a different way to the cli.

@paulbellamy
Copy link
Contributor

This is blocked on @sisuresh changing how token contract deployment works.

@tsachiherman
Copy link
Contributor

blocked by stellar/rs-soroban-env#446

@tsachiherman
Copy link
Contributor

unblocked now.

@paulbellamy
Copy link
Contributor

Now blocked by stellar/stellar-core#3547

@sisuresh
Copy link
Contributor

sisuresh commented Sep 28, 2022

@paulbellamy This should be unblocked now that stellar/rs-soroban-env@96d7a04 was merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

5 participants