Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rainlanguage/rain.flow
Solidity interfaces for flow contracts
https://github.com/rainlanguage/rain.flow
Last synced: 26 days ago
JSON representation
Solidity interfaces for flow contracts
- Host: GitHub
- URL: https://github.com/rainlanguage/rain.flow
- Owner: rainlanguage
- Created: 2023-04-12T06:40:48.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-18T12:55:39.000Z (5 months ago)
- Last Synced: 2024-09-18T13:18:08.343Z (5 months ago)
- Language: Solidity
- Size: 521 MB
- Stars: 0
- Watchers: 0
- Forks: 3
- Open Issues: 47
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rain.flow
Docs at https://rainprotocol.github.io/rain.flow
# Current version
## V3
V3 compatible contracts are still found in the monorepo at
https://github.com/rainprotocol/rain-protocol
The contracts in this repo are targetting V4 (see below).
# Unstable versions
## V4
The main changes in V4 replace `previewFlow` with `stackToFlow` which is a more
generalised version of the same basic idea. By allowing any stack to be passed
to the flow contract, the reader can simulate flows based on differen callers,
state, time, etc.V4 also targets a newer interpreter interface than V3, notably the native parsing
functionality that works off a single `bytes` for the Rain bytecode rather than
the `bytes[]` that older interpreters expected.# Deprecated versions
## V2
V2 was deprecated to remove native flows entirely from the V3+ interface.
This is because flow implementations are likely to want to implement `Multicall`
like functionality, such as that provided by Open Zeppelin.`Multicall` based on delegate call preserves the `msg.sender` which is great for
allowing EOA wallets like Metamask to flow under their own identity, but is a
critical security issue when reading `msg.value` (e.g. to allow native flows).https://samczsun.com/two-rights-might-make-a-wrong/
## V1
V1 was deprecated because the `SignedContext` struct that it relies on was
deprecated upstream. `SignedContext` was replaced with `SignedContextV1` which
was a minor change, reordering fields only for more efficient processing.