cashscript
cashscript copied to clipboard
⚖️ Easily write and interact with Bitcoin Cash smart contracts
Currently defining a variable is ``` name = expression; ``` This can be non-obvious to developers who are used to keywords before declaring variables. Also in CashScript variables can be...
Allow variables and parameters to have an `unused` modifier that indicates it is ok for them to be unused. ```solidity contract Test(int unused a, int b) { function test(int c)...
With native introspection it is possible to add a tracking contract contract which does not change addresses to a simulated state contract which does. Getting the latest state of a...
Currently the only variables that are accessible to *all* contract functions are the constructor parameters. However, it might be useful to have some variables that are not necessarily constructor *parameters*,...
Example: `Incorrect number of arguments passed to AnyHedge_v0_11 constructor` Would be nice to have `Expected x arguments for y constructor but got z` or `X unexpected arguments and Y missing...
Sometimes transactions need to be signed by multiple people (e.g. multisig). In these cases it should be possible for people to sign their part of the transaction and leave the...
See comments in #98 We can add an `OP_CODESEPARATOR` between the constructor args and the bytecode. This should make it easier to make "state simulated" contracts. Since then `OP_ACTIVEBYTECODE` would...
The main primitive used in Libauth's flexible transaction generation API is the AuthenticationTemplate. It would be useful if the CashScript SDK enables a Contract instance to export a libauth template...
CashScript is a leap forward in expressiveness for creating scripts. Now we need to be able to create advanced scripts for SLP tokens. What would this look like in CashScript?
Libauth has a builtin VM implementation that can be used to locally evaluate a transaction before sending it to the network. We use this in the automated tests for AnyHedge...