Skip to content

Releases: warp-contracts/warp

'ethers' extension for the contract

30 Nov 13:59
Compare
Choose a tag to compare

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

Full Changelog: v1.2.28...v1.2.29

VM2 fix

25 Nov 22:35
Compare
Choose a tag to compare

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

25 Nov 22:34
Compare
Choose a tag to compare

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

Full Changelog: v1.2.26...v1.2.27

Missing exports in barrel file

25 Nov 11:45
Compare
Choose a tag to compare

Added Signature and all cache-related files to barrel file.

Full Changelog: v1.2.25...v1.2.26

deploy contract with EVM signature

24 Nov 15:58
Compare
Choose a tag to compare

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

22 Nov 15:12
Compare
Choose a tag to compare

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

22 Nov 14:52
Compare
Choose a tag to compare

Removing redundant logging.

Full Changelog: v1.2.22...v1.2.23

The one with isolated-vm as a plugin

21 Nov 21:09
Compare
Choose a tag to compare

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

Full Changelog: v1.2.21...v1.2.22

The one with cache pruning (part 1)

21 Nov 11:10
Compare
Choose a tag to compare

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

Full Changelog: v1.2.20...v1.2.21

Library exports fix

16 Nov 20:42
Compare
Choose a tag to compare

added WarpPlugin exports to the barrel file.

Full Changelog: v1.2.19...v1.2.20