SmartWeave Incremental Cache Wrapper
Check it out on npm here: https://www.npmjs.com/package/@_koi/kohaku
Kohaku acts as a wrapper over SmartWeave but adds 4 rules to make cross-contract reading non-recursive.
- Reads can only happen at the current height or greater
- Transactions are only processed for a contract after it is registered in Kohaku's cache
- Contracts are registered the first time they are read by Kohaku, whether internally or externally
- Contracts that don't contain "readContractState" within its source are read from block 0 to global cache height
Failure to design around these rules will result in non-deterministic or incorrect contract states.
- npm:
npm i @_koi/kohaku
- yarn:
yarn add @_koi/kohaku