Releases: warp-contracts/warp
'ethers' extension for the contract
This release introduces a possibility to use ethers.utils
methods inside contract via the ethers plugin. It can be used following way:
import { WarpFactory } from 'warp-contracts';
import { EthersExtension } from 'warp-contracts-plugin-ethers';
const warp = WarpFactory.forMainnet().use(new EthersExtension());
...and then in order to use ethers
methods inside the contract use SmarWeave
global object:
const address = SmartWeave.extensions.ethers.utils.verifyMessage(msg, sig);
This release also introduces some changes enabling Buffer usage in the browser environment.
Please be aware that this package version should not be used and instead v1.2.30
should be considered as an upgrade for this one. Some additional changes have been introduced in v1.2.30
for both - ethers
extension and Buffer usage.
What's Changed
- feat: ethers plugin by @asiaziola in #278
Full Changelog: v1.2.28...v1.2.29
VM2 fix
A (probably temporary) fix for issues with Uint8Array in VM2 (patriksimek/vm2#484 (comment))
Full Changelog: v1.2.27...v1.2.28
The one with evaluation progress plugin
This release adds support for evaluation progress plugin.
It allows to subscribe (via node.js EventEmitter
) to progress evaluation events dispatched by the StateEvaluator
.
What's Changed
- feat: evaluation progress plugin by @ppedziwiatr in #270
Full Changelog: v1.2.26...v1.2.27
Missing exports in barrel file
Added Signature
and all cache-related files to barrel file.
Full Changelog: v1.2.25...v1.2.26
deploy contract with EVM signature
This release enables deploying contracts using EVM signature. EVM deployment is enabled only if bundling through Warp Gateway is enabled. Signature is additionally verified in Warp Gateway using warp-signature
package. In order to sign contract and contract source transactions a special signingFunction
from warp-signature
needs to be passed as wallet property instead of Arweave wallet:
import { evmSignature } from 'warp-signature';
const { contractTxId } = await warp.createContract.deploy({
wallet: { signer: evmSignature, signatureType: 'ethereum' },
initState: JSON.stringify(initialState),
src: contractSrc,
});
Exactly the same way it is possible to use deployFromSourceTx
method.
deployBundled
This release introduces new method for creating contract. It requires passing a bundled and signed data item representing contract (created e.g. with arbundles
package https://github.com/Bundlr-Network/arbundles). Data item is then sent to Warp Gateway which uses @bundlr-network/client
to upload data item to Arweave. Such created contract is indexed in Warp Gateway so it is then accessible via all Warp tools like all other SmartWeave contracts.
Currently only transactions with a special set of tags are accepted. Apart from contract-specific tags, the Content-Type
tag needs to be set to application/x.arweave-manifest+json
, init state must be placed in Init-State
tag, contract must also include Title
, Description
and Type
tag. Data of a data item should be a path manifest so it can be later resolved by Arweave gateway.
Data item must be passed in raw version, like so:
const { contractTxId } = await warp.createContract.deployBundled(dataItem.getRaw());
v1.2.23
Removing redundant logging.
Full Changelog: v1.2.22...v1.2.23
The one with isolated-vm as a plugin
This release adds a support for attaching the isolated-vm as a WarpPlugin
.
Up to this point isolated-vm
version was kept in a separate branch and deployed to npm with a dedicated ivm
tag.
The reason for this was that isolated-vm
library has certain requirements re. environment that could potentially cause issues for some less experienced developers (e.g. it requires min. 2GB of ram to be built during npm install
- laverdet/isolated-vm#309 (comment)).
This was however far from optimal from the library maintenance perspective.
Thanks to the new WarpPlugin
feature, the isolated-vm based executor implementation can be now moved to a separate library.
What's Changed
- feat: isolated-vm as a plugin by @ppedziwiatr in #266
Full Changelog: v1.2.21...v1.2.22
The one with cache pruning (part 1)
This release extends the SortKeyCache
with a method that will allow to prune the cache entries from the underlying storage (relates to #244).
NOTE: the pruning is not implemented in this release!
What's Changed
- feat: add option to prune cache - interface by @ppedziwiatr in #265
Full Changelog: v1.2.20...v1.2.21
Library exports fix
added WarpPlugin
exports to the barrel file.
Full Changelog: v1.2.19...v1.2.20