polywrap CLI:
- PR-1928 Add
--no-wasmOption Topolywrap buildbuildcommand now supports the--no-wasmoption, which disables the wasm compilation step when compiling projects.
@polywrap/templates:
- PR-1929 Fix Rust Codegen Compiler Errors
polywrap CLI:
- PR-1911 Polywrap Manifest - Default Source Paths
polywrap.yamlmanifests can now omit thesource:section and use the defaults defined by the CLI babsed on the manifest'sproject.typeproperty.
- PR-1893 Add
embedoption topolywrap codegen- Adds the
--embedoption topolywrap codegenwhich embeds wrap modules into applications (requires wrap-abi-bindgen support).
- Adds the
polywrap CLI:
- PR-1913 Use Sys Bundle IPFS Providers in CLI
@polywrap/schema-bind:
- PR-1890 Update
wasm/rustBindings tov2
polywrap CLI:
- PR-1903 Properly Publish Binary Release
polywrap CLI:
- PR-1888 Build Wraps Using TypeScript
- Create TypeScript wrap projects via
polywrap create wasm typescript my-wrap
- Create TypeScript wrap projects via
- PR-1879 + PR-1889 Standalone Binary Installer
- The
polywrapCLI can now be installed via a standalone binary. - An
install.shscript can now be found at the root of the repository. Usage:$ sh <(curl https://raw.githubusercontent.com/polywrap/cli/origin-dev/install.sh) # Installs to `~/.polywrap` # If polywrap is already installed, the script instead checks for updates
- The
polywrap-wasm-rs
- PR-1887 Bump MsgPack Serde Version
@polywrap/schema-bind
- PR-1891 Fix Various Golang -> Wrap Bindings
polywrap CLI:
- PR-1870 Add
polywrap create app ios ... - PR-1867 Add
polywrap create app android ... - PR-1864 Add
polywrap create app rust ... - PR-1856 Add
polywrap create app python ...
@polywrap/schema-bind:
- PR-1868 Add
app/kotlinBindings - PR-1871 Add
app/swiftBindings - PR-1873 Update URIs To
wrapscan.io/polywrap/...-abi-bindgen@1- Update URIs to wrapscan.io URI so that we can now use fuzzy versioning.
polywrap-wasm-rs:
- PR-1865 Re-Export Nested Dependencies
- Re-export nested dependencies so that consumers no longer need to import from other packages.
polywrap CLI:
- PR-1874 Use Rust Client For Testing Rust-Based Wraps
- PR-1866 Use Latest Ganache
- Update the ganache image with the latest from docker.
@polywrap/templates:
polywrap CLI:
- PR-1847 Fix IPFS deployer subdirectory duplication issue
- Fixed the IPFS deployer subdirectory issue described in IPFS Deployer possibly duplicates subdirectory paths when deploying (#1846)
polywrap CLI:
- PR-1074 Golang-based Wraps Now Supported!
- Polywrap projects of
type: wasm/golangare now supported. - To get started, simply run
polywrap create wasm golang my-wrap
- Polywrap projects of
- PR-1829 Support User-Defined Bindgen URIs
- The
buildandcodegencommands now have the option--bindgen <URI>, which allows for the use of a custom bindgen wrap.
- The
- PR-1774
polywrap deployDefaults To IPFS on wrapscan.io- When you run the
polywrap deploycommand, you no longer need apolywrap.deploy.yamlmanifest file. By default it will deploy your wrap to IPFS on https://wrapscan.io.
- When you run the
@polywrap/schema-bind:
- PR-1795 Add
wrap-abi-bindgenSupport- All wrap bindings are now emitted using the wraps defined within the wrap-abi-bindgen project.
- This enables binding updates to be released, without us needing to create a new release of the CLI.
- PR-1840 Support Swift Plugin Bindings
- Add support for
plugin/swiftbindings, used when building plugins in Swift.
- Add support for
polywrap CLI:
- PR-1809
docgenCommand Removed- The
docgencommand has been largely unused so it has been removed.
- The
- PR-1839 Remove ENS Deploy Modules
- All ENS deploy modules have been removed. If you'd like to publish your wrap's IPFS hash to ENS, simply use the ENS web app.
polywrap CLI:
- PR-1823 Support Fuzzy URI Strings in Manifests
- URIs within manifest files are no longer as strict, and can be any string.
- PR-1808 IPFS Deploy W/ Node v18
- The IPFS deployer module has been updated so that it runs on all node versions, including version 18.
- PR-1804 Emit Resources & Docs For Interface Wraps
- When building an wrap of type
interface, resources and doc artifacts were not being properly emitted to the build folder.
- When building an wrap of type
polywrap CLI:
- PR-1796
wrap/rustBuilds Now Properly Remove wasm-bindgen Imports- The
wasm-bindgenCLI was emitting an unneeded__wbindgen_throwimport, so we usewasm-snipto remove it.
- The
@polywrap/schema-bind:
- PR-1786 Update
plugin/pythonplugin bindings to latest client
polywrap CLI:
- PR-1735 Add Docs Manifest &
polywrap docs initCommand- The
polywrap.docs.yamlmanifest is used to add additional metadata to your wraps.
- The
- PR-1776 Add HTTP Headers To HTTP Deploy Module
- The
httpdeploy module now supports theheadersconfiguration property.
- The
polywrap CLI:
- PR-1773 Don't Install
wasm-optEverylocalRust Build- The
localstrategy for rust wasm projects was unexpectedly installingwasm-optevery time it was run, leading to very long build times.
- The
@polywrap/schema-bind:
- PR-1775 Fix Python Plugin Bindings
- The wrap abi type
Bytescan now be properly used within rust plugins.
- The wrap abi type
- PR-1753 Fix Python Plugin Bindings
polywrap CLI:
- PR-1747 Add Rust & Python plugin template projects to CLI's
createcommand- The
createcommand now supportsplugin/rustandplugin/pythonproject types.
- The
@polywrap/schema-bind:
- PR-1734 Update
plugin/pythonBindings- Update
wrap.infopython module embedding.
- Update
- PR-1728 Update
plugin/rustBindings- Modify JSON serialization within rust plugin's bindings.
- PR-1736 Properly emit function name when
Envis missing- Fixed the error message that's emitted when an environment is not supplied to a function that requires it.
- PR-1733 Add imported
EnvtopropertyDepstransform- Adds imported
EnvtopropertyDepstransform, so that now codegen properly generates imports for dependencies of imported env.
- Adds imported
@polywrap/schema-bind:
- PR-1718
plugin/pythonEnum Bindings Fix- Enums are now properly displayed in Python plugins.
@polywrap/schema-bind:
- PR-1694
plugin/rustEnv Bindings Refactor- Rust plugin bindings now expose
envas a function argument.
- Rust plugin bindings now expose
@polywrap/schema-bind:
- PR-1700
plugin/rustSerde renaming for snake-cased properties in rust plugins types- Rust plugins now properly convert wrap schema property names into snake-cased names, so they are compatable with Rust naming conventions.
@polywrap/templates:
- PR-1680 Import newer logger in typescript template
- Update the typescript app template to use the latest logging wrap at
ens/wraps.eth:logging@1.0.0.
- Update the typescript app template to use the latest logging wrap at
@polywrap/polywrap-manifest-types-js:
- PR-1692 top-level
dockerproperty is now removed from build manifest during migration- Fixes a bug where the top-level
dockerproperty of build manifest version 0.1.0 was not being dropped during migration, causing migrated build manifests to fail validation.
- Fixes a bug where the top-level
polywrap CLI:
- PR-1592 Add
primaryJobto deploy manifest and outputURI.txtwhen runningpolywrap deploy- The
primaryJoboption in the deploy manifest identifies the name of the job that is used for the primary deployment. The URI that is emitted from theprimaryJobwill be output to aURI.txtfile next to the deploy manifest.
- The
- PR-1529
polywrap create templateCommand- Added the
polywrap create templatecommand to the CLI, enabling users to provide a url to a template project.
- Added the
- PR-1584 Codegen Command Now Supports
--watch- You can now run npx
polywrap codegen --watchwhich will automatically watch files within your project directory and re-run codegen whenever changes are detected.
- You can now run npx
- PR-1677 Python Plugin Support
- Add bindings for
plugin/pythonprojects.
- Add bindings for
- PR-1428 Rust Plugin Support
- Add bindings for
plugin/rustprojects.
- Add bindings for
- PR-1437 Support Custom Wrapper Environment Variables
- Enable users to customize the CLI's internal client's wrapper environment via a
--wrapper-envsoption, added to thebuild,codegen,docgen, andtestcommands.
- Enable users to customize the CLI's internal client's wrapper environment via a
- PR-1430 Support Arbitrary Resources Files
- Polywrap
wasm/&interface/projects can now include aresources:directory, specified in thepolywrap.yamlmanifest. This resources directory will be copied into thebuild/folder upon runninpolywrap build. For example:format: 0.3.0 project: type: interface | wasm/... ... source: ... resources: ./resources
- Polywrap
- PR-1349 Log File Support
- A
-l, --log-file [path]option has been added to all commands. Its purpose is to configure aLog file to save console output to, useful in situations when the console log overflows.
- A
@polywrap/cli-js:
- PR-1359 Polywrap CLI JS Wrapper
- Created the
polywrap/cli-jspackage to wrap thepolywrapCLI with a JavaScript/TypeScript interface.
- Created the
@polywrap/polywrap-manifest-schemas:
- PR-1430 Support Arbitrary Resources Files
- Added version
0.3.0of thePolywrapManifest, which includes the newresources: stringfield.
- Added version
@polywrap/polywrap-manifest-types-js:
- PR-1379 Add Logging to Manifest Migrators
- Added an optional logger parameter to the deserialization function of all manifest types.
- PR-1430 Support Arbitrary Resources Files
- Added version
0.3.0of thePolywrapManifest, which includes the newresources: stringfield.
- Added version
@polywrap/schema-bind:
- PR-1677 Python Plugin Support
- Add bindings for
plugin/pythonprojects.
- Add bindings for
- PR-1464
wasm/rustBindings Now UseModuleTraitTrait- Codegen for
wasm/rustwraps now generates aModuleTraittrait that must be implemented for the rootModulestruct.
- Codegen for
- PR-1460
wasm/assemblyscriptBindings Now UseModuleBaseInterface- Codegen for
wasm/assemblyscriptwraps now generates aModuleBaseinterface that must be extended by a rootModuleclass.
- Codegen for
- PR-1428 Rust Plugin Support
- Add bindings for
plugin/rustprojects.
- Add bindings for
- PR-1236 Plugin Refactor
- In
plugin-tsbindings, thePluginModuletype is now imported fron@polywrap/plugin-jsinstead of@polywrap/core-js.
- In
@polywrap/schema-compose:
- PR-1600 Allow WRAP URIs in Un-Namespaced Imports
- Support URIs within un-namespaced import statements like so
#import { Object, Module } from "wrap://..." - This effectively enables the "embedding" of external ABIs, which is useful when you'd like to copy 1:1 an ABI that lives elsewhere.
- Support URIs within un-namespaced import statements like so
@polywrap/client-js:
- PR-1582 Support ENS Text Record WRAP URIs
- Support has been added for using ENS text records as valid
wrap://URIs. - Example:
wrap://ens/uniswap.wraps.eth:v3 - NOTE: Text record key names must begin with
wrap/
- Support has been added for using ENS text records as valid
- PR-1431 WRAP Error Structure
- Integrate the
WrapErrorstructure, helping debug common client error scenarios.
- Integrate the
- PR-1340 Wrapper Validation
- Added a
validate(uri, options)method to thePolywrapClientclass, allowing users to guarantee the client can communicate with the provided wrapper located at the provided URI.
- Added a
- PR-1236 Plugin Refactor
- Polywrap Client now re-exports the config builder and uri-resolvers (in addition to core) packages. This is done to improve dev exp and remove the need for users to import those package themselves.
- For users who do not need those packages and are using noDefaults there will be a separate PR that refactor core client functionality into a core-client package that does not depend on the config builder and uri-resolvers packages, but has no defaults.
- Polywrap Client now re-exports the config builder and uri-resolvers (in addition to core) packages. This is done to improve dev exp and remove the need for users to import those package themselves.
@polywrap/client-config-builder-js:
- PR-1582 Integrate URI Resolver Extension Wraps
- The default configuration bundle now has the following uri-resolver-ext wraps registered as interface implementations:
- `wrap://ens/wraps.eth:ipfs-uri-resolver-ext@1.0.0
wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.0wrap://ens/wraps.eth:http-uri-resolver-ext@1.0.0wrap://ens/wraps.eth:file-system-uri-resolver-ext@1.0.0wrap://ens/wraps.eth:ens-uri-resolver-ext@1.0.0wrap://ens/wraps.eth:ens-ipfs-contenthash-uri-resolver-ext@1.0.0
- The default configuration bundle now has the following uri-resolver-ext wraps registered as interface implementations:
- PR-1560 Add
BuildOptionsto build method inIClientConfigBuilder- This makes it possible to add a custom cache or resolver without casting.
- PR-1475 Embed IPFS HTTP Client & IPFS URI Resolver Wraps
- The default configuration bundle now comes with two embedded wraps that enable interactions with IPFS:
ipfs-http-client@wrap://ens/wraps.eth:ipfs-http-client@1.0.0async-ipfs-uri-resolver-ext@wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1
- The default configuration bundle now comes with two embedded wraps that enable interactions with IPFS:
- PR-1518 Optional Build Method Arguments
- The
build(...)method now accepts a single argument of typeBuildOptions.
- The
- PR-1496 Use New Concurrent Wrapper
- The default config bundle now uses the
wrap://ens/wrappers.polywrap.eth:concurrent@1.0.0interface, and adds theconcurrent-plugin-jspackage @wrap://plugin/concurrentas an implementation.
- The default config bundle now uses the
- PR-1468 Export Default Config Bundle URIs
- The default config now exports constants for all URIs used within the config.
- PR-1436 Use New Logger Wrapper
- The default config bundle now uses the
wrap://ens/wrappers.polywrap.eth:logger@1.0.0interface, and adds the@polywrap/logger-plugin-jspackage @wrap://plugin/loggeras an implementation.
- The default config bundle now uses the
- PR-1411 Add
ens-text-record-resolverto Default Config Bundle- The
ens-text-record-resolverwrapper @wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FYhas been added to the default client config bundle. This resolver enables ENS, text-record based, WRAP URI resolution. The text-record's key must be prepended with thewrap/...identifier. For example, the URIwrap://ens/domain.eth:foomaps todomain.eth'swrap/footext record. Thewrap/footext-record's value must contain another valid WRAP URI. For examples, see dev.polywrap.eth.
- The
- PR-1236 Plugin Refactor
- Added
addRedirects,addWrappers,addPackagesmethods to theClientConfigBuilder, so users can add many items at once. - Added
buildDefaultto theClientConfigBuilderwhich builds aClientConfigusing default resolvers.
- Added
@polywrap/plugin-js:
- PR-1614 Add
envToPluginModuleInvocation Method ArgumentsPluginModuleinvocation methods will now be given anenvthe method's arguments.
- PR-1236 Plugin Refactor
- New package for js plugins.
- Can create plugin packages with
PluginPackage.from.- Accepts
manifestand aPluginModule, or an inlinePluginModule.
- Accepts
@polywrap/uri-resolvers-js:
- PR-1646 Resolution Result Cache Resolver
- Added a new cache resolver
ResolutionResultCacheResolver. - Unlike the
WrapperCacheResolver, which caches wrappers (URI => Wrapper), this resolver caches the result of the resolution process: URI, wrapper, package or error (URI => URI, URI => wrapper, URI => package, URI => error). - By default, it does not cache errors, but a flag can be passed to enable that functionality.
- Added a new cache resolver
- PR-1528 Request Synchronizer Resolver
- With URI resolvers, multiple requests for the same URI, in most cases, needlessly repeat the same process (usually a network request). Using a cache resolver (like PackageToWrapperCacheResolver) helps if the resolution requests are synchronous (one after another). This new
RequestSynchronizerResolvercan be used to reuse parallel requests for the same URI, this way, only the first one needs to do the work (e.g. a network request) while others will await that same promise.
- With URI resolvers, multiple requests for the same URI, in most cases, needlessly repeat the same process (usually a network request). Using a cache resolver (like PackageToWrapperCacheResolver) helps if the resolution requests are synchronous (one after another). This new
- PR-1236 Plugin Refactor
- Added
StaticResolverandStaticResolver.fromto optimize building resolvers withIUriRedirect,IUriWrapperandIUriPackage.
- Added
@polywrap/uri-resolver-extensions-js:
- PR-1582 Update Default URI-Resolver-Ext Interface URI
- The
ExtendableUriResolverhas been updated to get uri-resolver-ext implementations from the following interface URIs:wrap://ens/wraps.eth:uri-resolver-ext@1.1.0wrap://ens/wraps.eth:uri-resolver-ext@1.0.0
- The
@polywrap/core-js:
- PR-1431 WRAP Error Structure
- Created a custom
WrapErrorstructure that improves debugging ability for common client error scenarios.
- Created a custom
- PR-1369 Remove Legacy Redirects
GetImplementationsOptionsnow accepts an optional resolution context, to be used to handle infinite recursion when a resolver usesgetImplementationsGetImplementationsOptionsnow accepts an optionalapplyResolution. This can be used to apply URI resolution to interfaces.
@polywrap/logging-js:
- PR-1379 Create
@polywrap/logging-jsPackage- Created the
@polywrap/logging-jspackage from the logging lib previously in the CLI's codebase.
- Created the
@polywrap/http-plugin-js:
- PR-1471 Add form-data Support
- Added form-data support through the inclusion of the
formData: [FormDataEntry!]property on theRequestobject.
- Added form-data support through the inclusion of the
polywrap CLI:
- PR-1561 Remove buildx builder by default
- Added new
keepBuilderoption which is default to false and removed the previousremoveBuilderoption from the build manifest.
- Added new
- PR-1525 Unify Typescript App Templates
- Remove
typescript-node&typescript-reactapp templates, and replace them with a singletypescript.
- Remove
- PR-1432 Remove Legacy Polywrap Project Metadata
- Remove the
polywrap.meta.yamlmanifest.
- Remove the
- PR-1367 Client Configuration Refactor
- The JS/TS module passed into the
--client-configoption has a new function entrypoint signature. Instead of exporting agetCustomConfigfunction, users should export the following:configure(builder: IClientConfigBuilder): IClientConfigBuilder. - See example config.ts.
- The JS/TS module passed into the
- PR-1348 Rename
runtotest- Rename the
runcommand totest, which uses thetestproject extension, as defined in thepolywrap.test.yamlmanifest file.
- Rename the
- PR-1545 **Remove
configsection from test manifest- The Polywrap Test manifest (
polywrap.test.yaml) has been upgraded to version0.2.0with the following change:- The
configsection insidestephas been removed, and manifest migrations will warn the user regarding this change.
- The
- The Polywrap Test manifest (
@polywrap/schema-bind
- PR-1464
wasm/rustBindings Now UseModuleTraitTrait- Rust-based wraps no longer pub functions, but instead pub a
impl ModuleTrait for Module.
- Rust-based wraps no longer pub functions, but instead pub a
- PR-1460
wasm/assemblyscriptBindings Now UseModuleBaseInterface- AssemblyScript-based wraps no longer export functions, but instead export a
class Modulewhichextends ModuleBase.
- AssemblyScript-based wraps no longer export functions, but instead export a
@polywrap/test-env-js
- PR-1530 Deprecate Legacy Test-Env Package
- The
test-env-jspackage has been deprecated, in favor of@polywrap/cli-js
- The
@polywrap/client-js:
- PR-1534 Remove legacy config types from
PolywrapClient- The
PolywrapClientnow simply accepts aCoreClientConfig, which is expected to come from the config builder.
- The
- PR-1461 Remove Legacy Invocation Methods
- Remove
client.query(...)&client.subscribe(...)methods.
- Remove
- PR-1369 Remove Legacy Redirects
PolywrapClientconfig when usingnoDefaults: trueno longer acceptsredirects(Since redirects have been removed fromCoreClientConfig).
- PR-1236 Plugin Refactor
- The Polywrap Client with
noDefaults: falseno longer accepts apluginsfield, but it acceptswrappersandpackages.resolverfield has been replaced withresolvers, since with default client the resolver used is theRecursiveResolverwith thePackageToWrapperCacheResolver.
- The Polywrap Client with
noDefaults: true, no longer accepts apluginsfield. It is expected that devs using this option will manually configure their own resolver. - removed
getPluginsandgetPluginByUri. Will addgetWrapper,getWrapperByUri,getPackage,getPackageByUri, in a follow up PR. createPolywrapClientfunction has been deprecated.
- The Polywrap Client with
- PR-1534 Remove legacy config types from PolywrapClient
- The
PolywrapClient's constructor now accepts only an optionalCoreClientConfigtype as its configuration object. - It is now advised to use the
ClientConfigBuilderfound in@polywrap/client-config-builder-jsand exported by@polywrap/client-jsin order to set up their client configurations.
- The
@polywrap/client-config-builder-js:
- PR-1480 ClientConfigBuilder-specific
BuilderConfigObject- The
ClientConfigBuildernow uses a specificBuilderConfigthat is easier for users to work with. It will then be turned into aCoreClientConfigthrough the use of thebuild()method.
- The
- PR-1498 Refactor
ClientConfigBuilder.build()- Rename
buildCoreConfig()tobuild(), which returns aCoreClientConfiginstance.
- Rename
- PR-1494 Deprecate Legacy HTTP URIs in Default Config Bundle
- The
wrap://ens/http.polywrap.ethinterface and wrapper have been removed from the default configuration bundle.
- The
- PR-1436 Deprecate Legacy Logger URIs in Default Config Bundle
- The
wrap://ens/logger.core.polywrap.ethinterface and thewrap://ens/js-logger.polywrap.ethplugin wrapper have both been removed from the default configuration bundle.
- The
- PR-1446 Deprecate Legacy Ethereum URI in Default Config Bundle
- The
wrap://ens/ethereum.polywrap.ethURI + wrap has been removed from the default configuration bundle.
- The
- PR-1475 Deprecate Legacy IPFS URIs in Default Config Bundle
- The
wrap://ens/ipfs.polywrap.eth&wrap://ens/ipfs-resolver.polywrap.ethURIs + wraps have been removed from the default configuration bundle.
- The
- PR-1369 Remove Legacy Redirects
- Calling
buildCoreConfigno longer returns aCoreClientConfigwith redirects since redirects are no longer a part ofCoreClientConfig.
- Calling
- PR-1367 URI Redirect Renaming
- Renamed
removeUriRedirect(...)toremoveRedirePR-15epluginsand aresolver, but now haswrappers,packagesandresolvers` - Calling build returns an instance of the
CustomClientConfig, which can be used with defaults from thePolywrapClient, but can not be used ifnoDefaults: trueis passed to thePolywrapClientconstructor. - Removed
addPluginfrom theClientConfigBuilder, users can now useaddWrapperoraddPackagewhere appropriate.
- Renamed
@polywrap/plugin-js:
- PR-1614 Remove
envProperty FromPluginModulePluginModuleinstances no longer have anenvproperty, and instead will be given anenvwithin the invocation method's arguments.
@polywrap/core-js:
- PR-1613 Core Client Config Unique Maps
- The
CoreClientConfignowReadonlyUriMaps for itsinterfaceandenvproperties.
- The
- PR-1369 Remove Legacy Redirects
redirectsare no longer a part ofCoreClientConfig.getRedirectsare no longer a part ofCoreClient.getUriResolveronCoreClienthas been renamed togetResolver.getImplementationsreturns a promise now.GetImplementationsOptionsno longer acceptsapplyRedirects. This has been replaces withapplyResolution.applyRedirectshelper function has been replaced withapplyResolution.
- PR-1236 Plugin Refactor
- Plugins are no longer a part of this package, they have been moved to the plugin-js package
- Renamed
UriRedirecttoIUriRedirectto matchIUriWrapperandIUriPackage IUriRedirect,IUriWrapperandIUriPackageare now generic and their generic param implementsUri | string- Removed
optionsargument fromclient.getManifestmethod since all wrappers have a deserialized manifest
@polywrap/uri-resolvers-js:
- PR-1586 Separate the
PackageToWrapperCacheResolverInto Two Resolvers- The
PackageToWrapperCacheResolverhas been split into thePackageToWrapperResolver&WrapperCacheResolverresolvers.
- The
- PR-1369 Remove Legacy Redirects
LegacyRedirectsResolverhas been removed.
- PR-1236 Plugin Refactor
- Replaced helper func
buildUriResolverwithUriResolver.from - Constructors of built-in resolvers like
RecursiveResolverandPackageToWrapperCacheResolvernow accept a concreteIUriResolverwhile their staticfrommethods accept aUriResolverLike - Remove
PluginsResolverandPluginResolver, users can now useWrapperResolverorPackageResolver
- Replaced helper func
@polywrap/uri-resolver-extensions-js:
- PR-1582 Remove Legacy uri-resolver-ext Interface URI
- The
ExtendableUriResolverno longer supports the legacy interface URIwrap://ens/uri-resolver.core.polywrap.eth.
- The
@polywrap/react:
- PR-1236 Plugin Refactor
- Replaced
pluginson thePolywrapProviderwithwrappersandpackages
- Replaced
@polywrap/http-plugin-js:
- PR-1494 Migrated to polywrap/http
@polywrap/fs-plugin-js:
- PR-1495 Migrate to polywrap/file-system
@polywrap/ws-plugin-js:
- PR-1547 Migrate to polywrap/websocket
@polywrap/ethereum-plugin-js:
- PR-1446 Deprecated in favor of the polywrap/ethereum wasm-based wrap
@polywrap/ipfs-plugin-js:
- PR-1475 Deprecated in favor of the polywrap/ipfs wasm-based wrap
@polywrap/http-interface:
- PR-1494 Migrated to polywrap/http
@polywrap/file-system-interface:
- PR-1495 Migrate to polywrap/file-system
polywrap CLI:
- PR-1683 Don't Require Docker
polywrap buildOn Interface Projects- When building
type: interfaceprojects, the CLI no longer requires docker to be running.
- When building
- PR-1610
polywrap testNon-Zero Exit Codespolywrap testnow exits with an exit code of 1 if a test fails.
- PR-1470 Fix Build Manifest Absolute Path Support
- Accept absolute paths within the
polywrap.build.yamlmanifest'slinked_packagesproperty.
- Accept absolute paths within the
- PR-1438 Support Maps In Workflows
- Properly handle map types when running workflows using the
testcommand.
- Properly handle map types when running workflows using the
- PR-1396 Remove Wasm "Interface Types" Custom Section
- The rust build images have been updated to properly remove the needless inclusion of the
wasm-interface-typescustom section, as a result of running wasm-bindgen. More information can be found here.
- The rust build images have been updated to properly remove the needless inclusion of the
- PR-1379 Manifest Upgrade Warning Message
- Automatically upgrading manifests now emits a warning, suggesting users to upgrade their manifest.
- PR-1382 Execute
ascUsingnpx- Invoke
ascusingnpxto help with program resolution.
- Invoke
- PR-1368 Client Config Error Messaging
- Update error messaging for the
--client-configoption.
- Update error messaging for the
@polywrap/schema-bind:
- PR-1444 TypeScript Bindings Export Imports
- The
plugin/typescriptandapp/typescriptbindings now properly export all interfaces.
- The
- PR-1443 Rust Bindings Use String
- The
wasm/rustbindings now useStringinstead ofstrwithin imported interface module typings.
- The
@polywrap/core-js:
- PR-1593 Display decoded args when errors are thrown in subinvocations
- Args used to be displayed as-is in error messages when errors were thrown in Wasm wrapper invocations. This meant args for subinvocations were byte arrays. Now the args are always decoded for errors so they are human-readable.
- PR-1556
WrapErrornow correctly parses Rust unwrap errors- When calling
.unwrap()on a Rust result that contains an error, Rust will panic with an error message that contains the Err. For fidelity to the original Err, Rust inserts escape characters in the string. For example, "\n" becomes "\n". This behavior was not being handled correctly by WrapError's string parsing logic.
- When calling
@polywrap/uri-resolvers-extensions-js:
- PR-1487 Handle
nullURI Resolver Extension Return Results- Update the
MaybeUriOrManifest&getFileinterfaces to properly reflect the URI resolver extension interface.
- Update the
@polywrap/templates:
- PR-1383 Default Deploy Gateway
- Add the
https://ipfs.wrappers.iogateway to the interface template'spolywrap.deploy.yamlmanifest.
- Add the
- PR-1344
@polywrap/cli: Improve workflow validation. - PR-1345
@polywrap/cli: Theens-recursive-name-registerdeploy step now properly registers ENS sub-domains recursively. - PR-1342
@polywrap/polywrap-manifest-schemas: Accept @ character in folder paths. - PR-1333
@polywrap/client-js: Added TsDoc comments to thePolywrapClientclass. - PR-1337
@polywrap/schema-bind: In Rust bindings, enum imports are now added in serialization modules when the enum is a subtype of an array (Vec) or map.
- PR-1327
@polywrap/schema-bind: Added missing serialization bindings for module method arguments & return values.
- PR-1320
@polywrap/ethereum-plugin-js: Properviewmethod result parsing. - PR-1317
@polywrap/core-js,@polywrap/uri-resolvers-extensions-js: Properly check for null when using UriResolverExtensionFileReader to read wasm module. - PR-1318
polywrapCLI: Thecodegencommand properly applies the-g, --codegen-diroption. - PR-1318
@polywrap/templates: Fix several issues within thewasmtemplate projects. - PR-1316
polywrapCLI: Fix an issue where the CLI process would hang after the command had completed. - PR-1315
polywrapCLI: Minor cleanup post logging refactor. - PR-1310
polywrapCLI: Use base images from the "polywrap" Docker Hub organization.
- PR-1306
polywrapCLI: Console logging has been improved, and all commands now support-q, --quietand-v, --verboseoptions. - PR-1204
polywrapCLI: Build times are faster for wasm wrappers!!! Thebuildcommand has been updated to include the concept of "build strategies". The existing way of building (viaDockerfileimage layers) is available through thepolywrap build --strategy imagecommand. Building without Docker (if all build-time dependencies are installed locally) can be performed using--strategy local. And lastly, the new default build strategy is--strategy vm, which runs all build steps in a pre-built base image, allowing for near-local speeds (once the image has been downloaded).- NOTE:
--strategy imageis useful for source-code verification, something we'll be better supporting in the future.
- NOTE:
- PR-1297
@polywrap/schema-bind:wasm/rustnow has support forprintln!(...)andprint!(...)macros. They have been redefined to use thepolywrap_wasm_rs::wrap_debug_log(...)function. - PR-1192
@polywrap/client-js:PolywrapClient.invoke(...)now supports invoke-time environment variables, passed in via theenvproperty. - PR-1270
polywrapCLI: Themanifestcommand has been added:
Usage: polywrap manifest|m [options] [command]
Inspect & Migrade Polywrap Manifests
Options:
-h, --help display help for command
Commands:
schema|s [options] [type] Prints out the schema for the current manifest format.
migrate|m [options] [type] Migrates the polywrap project manifest to the latest version.
help [command] display help for command
- PR-1301 Added a
--formatoption to themigratecommand, enabling the targeting of specific format versions when migrating manifests (ex:polywrap manifest migrate -f 0.2.0). - PR-1218
polywrapCLI,@polywrap/tracing-js: Thetracinginfrastructure module (i.e.polywrap infra up --modules tracing) now uses version0.11.0of theSizNoztracing service. Additionally the underlying@polywrap/tracing-jslibrary has been updated to support this, and also now has named traces via thetraceNameconfiguration property.
- PR-1304
polywrapCLI: Generated build files from thevmstrategy now have proper file-system permissions. - PR-1305
@polywrap/ipfs-plugin-js: Fallback providers are now properly being used. - PR-1296
polywrapCLI: Thepolywrap.app.yamlandpolywrap.plugin.yamlproject manifest file names are being deprecated in favor of a unifiedpolywrap.yamlfile for all types of projects (wasm, interface, plugin, app). They will still silently work now, but in the future will no longer be recognized defaults. - PR-1303
@polywrap/core-js: TheUriclass now properly formats itself when beingJSON.stringify(...)'d. - PR-1288
@polywrap/core-js: Correctly handle errors in thegetImplementationsalgorithm. - PR-1298
@polywrap/ipfs-plugin-js,@polywrap/ipfs-resolver-plugin-js: Remove the use ofrequire(...)statements. - PR-1286
@polywrap/polywrap-manifest-types-js: Manifest migration logic has been upgraded to use a strategy that finds a "shortest path" between thefromandtoformat versions, using predefined migration functions.
- PR-1284
@polywrap/core-js:Wrapper.getFile(...)andWrapper.getManifest(...)no longer require aClientinstance as a second function argument. - PR-1291
@polywrap/core-js,@polywrap/client-js: AllClientConfigproperties are nowreadonly. - PR-1287
@polywrap/core-js:executeMaybeAsyncFunctionhas been removed. - PR-1277
@polywrap/client-js: The following methods now return theResult<T, E>type, and will not throw exceptions:getManifest(...),getFile(...),getImplementations(...),query(...),invokeWrapper(...),invoke(...),loadWrapper(...). - PR-1192
@polywrap/client-js:PolywrapClient.invoke(...)no longer accepts invoke-time reconfiguration via theconfigproperty. Users who wish to reconfigure the client can do so by callingclient.getConfig(), modifying it via theClientConfigBuilder, and constructing a newPolywrapClientinstance.
- PR-1083
@polywrap/client-config-builder-js: The default client config now has the ability to resolvehttpURIs (ex:wrap://http/domain.com/path) via the@polywrap/http-resolver-plugin-js. - PR-1083
polywrapCLI: Hosting & deploying wrappers via HTTP is now possible with the newhttpdeploy & infra modules. - PR-1097 & PR-1272
polywrapCLI,@polywrap/polywrap-manifest-schemas,@polywrap/polywrap-manifest-types-js:polywrap.deploy.yamlformat version0.2.0has been added, making the schema similar to thepolywrap.test.yamlschema, where users define a series ofjobsto be performed. - PR-1097
polywrapCLI: Recursive ENS domain name registration is now supported via theens-recursive-name-registerdeploy module. - PR-1060
@polywrap/ipfs-interface: AddedfallbackProviders: [String!]totype Options. - PR-1169
@polywrap/core-js,@polywrap/client-js: URI resolution has been refactored. Resolution is now implemented in a singleIUriResolverinstance. - PR-1169
@polywrap/client-js:invokeWrapper(...)has been added to thePolywrapClientclass. - PR-1169
@polywrap/client-config-builder-js:setResolver(...)has been added, enabling users to set theIUriResolverinstance on the builder'sClientConfig. - PR-1133
@polywrap/core-js,@polywrap/client-js:getPluginByUri(...)has been added to theClientinterface, andPolywrapClientclass. - PR-1231
polywrapCLI:buildcommand now supports the--no-codegenoption, which disables the automatic codegen step when compiling projects.
- PR-1244
polywrapCLI: Workflows can now properly access nested properties of previous job step output. - PR-1243
@polywrap/schema-compose: Multi-line imports are now properly supported within block comments. - PR-1097
polywrapCLI: ENS deployment URIs generated via thedeploycommand now properly contain the network's name in the URI. - PR-1234
polywrapCLI: Theruncommand and underlyingWorkflowsystem has had multiple bug fixes added.- Workflow validation always printed "SUCCESS" and errors were never printed.
- Workflow manifest was not being validated.
- The stderr messages were not being output (previously unnoticed because errors were not printed).
- PR-1220
@polywrap/schema-bind:wasm/rustbindings handle the serialization of reserved words via serde, so that the original name of properties is reserved during encoding. - PR-1219
@polywrap/schema-bind:wasm/rustbindings now properly handle imported interface modules. - PR-1229
polywrapCLI:runcommand now properly resolves thevalidation: ...property within thepolywrap.test.yamlmanifest relative to the manifest's directory, instead of the user's cwd.
- PR-1097
polywrapCLI: Thelocal-dev-ensdeploy module has been removed. - PR-1060
@polywrap/ipfs-plugin-js:IpfsPluginConfighas been removed, and all properties (provider,fallbackProviders) have been moved into the wrapper'sEnv. - PR-1169
@polywrap/client-js:loadUriResolvers(...)has been removed from thePolywrapClientclass. - PR-1169
@polywrap/client-js:resolveUri(...)has been renamed totryResolveUri(...)on thePolywrapClientclass. - PR-1169
@polywrap/core-js,@polywrap/client-js:getUriResolvers(...)has been renamed togetUriResolver(...)on theClientinterface andPolywrapClientclass. - PR-1169
@polywrap/client-config-builder-js:addUriResolver(...)andsetUriResolvers(...)have been removed from theClientConfigBuilderclass. - PR-1169
@polywrap/core-js,@polywrap/wasm-js: Moved theWasmWrapperclass and all related types into their own package named@polywrap/wasm-js. - PR-1235
@polywrap/core-js:Uri.from(...)has been added, andtoUri(...)has been removed.
- PR-1158
@polywrap/client-config-builder-js: The following plugins have been removed from the default config, and replaced with their WebAssembly wrapper equivalents available at the same URIs:wrap://ens/uts46.polywrap.ethwrap://ens/sha3.polywrap.ethwrap://ens/graph-node.polywrap.eth
- PR-1213
@polywrap/schema-bind: Nested map types (i.e.Map<K, Map<K, V>>) are now properly supported forwasm/rustandwasm/assemblyscript. - PR-1213
@polywrap/wasm-as: Nested map types (i.e.Map<K, Map<K, V>>) are now properly msgpack encoded. - PR-1212
polywrapCLI:wasm/rustbuild image now uses thebuild-depscargo extension to properly build dependencies in a seperate Dockerfile layer, enabling the caching of compiled artifacts.
- PR-1217
@polywrap/schema-bind:plugin/typescriptandapp/typescriptbindings have been updated to improve type safety, and no longer accept generic properties for all method argument types. - PR-1051
polywrapCLI:polywrap plugin codegenandpolywrap app codegencommands have been moved into thepolywrap codegen, which can now generate types for any Polywrap project (wasm, plugin, app). - PR-1154
@polywrap/schema-bind: Thewasm/assemblyscriptbindings have been updated to useBox<T> | nullfor all optional scalar types, instead of theOption<T>class used before. - PR-1154
@polywrap/ws-plugin-js: The WebSocket plugin's schema has been updated to useUInt32for socket IDs, instead ofInt32.
- PR-1100
polywrapCLI: A new manifest namedpolywrap.test.yamlhas been added, which encapsulates workflows and validation scripts. - PR-1100
@polywrap/polywrap-manifest-types-js:polywrap.testmanifest types have been added. - PR-1100
@polywrap/polywrap-manifest-schemas:polywrap.testmanifest schema has been added.
- PR-1205
polywrapCLI: Theruncommand's output now has deterministic ordering for text emitted from both workflow & validation steps. - PR-1194
@polywrap/msgpack-js: NestedMap<K, V>serialization is now supported. - PR-1199
@polywrap/core-js@polywrap/client-js: Runtime type inference has been improved to be compatible with JavaScript minimization optimizations where theClass.namestatic property is removed. - PR-1196
@polywrap/core-js: AllWrapperCacheinterface methods have been updated to returnMaybeAsyncpromises, allowing developers to implement async logic.
- PR-1100
polywrapCLI:runcommand no longer accepts the<workflow>argument, and instead uses the newpolywrap.test.yamlmanifest. - PR-1100
@polywrap/client-js: Therunmethod has been removed. - PR-1100
@polywrap/core-js: AllWorkflowrelated types have been removed, and migrated into the manifest packages and the CLI.
- PR-1042
@polywrap/client-js: ThePolywrapClientConfignow has atracerConfig: Partial<TracerConfig>property, allowing users to easily configure the tracing level, and various toggles related to tracing. - PR-1042
polywrapCLI: Added thetracerinfra module, allowing developers to easily spin up an OpenTelemetry compatible tracing server. This can be used to gather runtime tracelog events from thePolywrapClient. - PR-1042
@polywrap/tracing-js: The@Tracer.traceMethod()function decorator now has an optionalTracingLevelargument. - PR-1143
@polywrap/ethereum-plugin-js: TheEthereumPluginConfignow has aconnectionsproperty, which takes an instance of theConnectionsclass. This new implementation makes configuring new network connections at runtime easier and more application developer friendly. - PR-1045
@polywrap/client-config-builder-js: TheClientConfigBuilderhas been added to make building & customizingPolywrapClientConfigseasier than before with a simple user friendly interface. - PR-1036
@polywrap/client-js: Added thewrapperCache: WrapperCacheproperty to thePolywrapClientConfiginterface. - PR-1036
@polywrap/core-js: Added theWrapperCachecore type, along with aSimpleCacheimplementation that persists wrappers within a map.
- PR-1186
@polywrap/schema-bind: Using aMap<K, V>type within theMap's value (V) template argument has been fixed. - PR-1179
polywrapCLI: Improved the readability of thepolywrap build -vcommand's output from the Docker child process.
- PR-1042
@polywrap/client-js: ThePolywrapClientConfig'stracingEnabledproperty has been removed, and replaced bytracerConfig. - PR-1143
@polywrap/ethereum-plugin-js: TheEthereumPluginConfig'snetworksproperty has been removed, and replaced byconnections. - PR-1045
@polywrap/client-js: ThegetDefaultClientConfig()&defaultIpfsProvidersexports have been moved to the@polywrap/client-config-builder-jspackage.
- PR-1171
@polywrap/schema-bind: Handle reserve words (keywords) for object, enum, and method names.
- PR-1168
@polywrap/schema-bind: Fix imported optional map issue in Rust bindings. - PR-1167 Remove all
wrap-manfolders, that were published to solve the plugin's circular dependency issue.
- PR-1091
@polywrap/polywrap-manifest-schemas: Polywrap project manifests (polywrap.yaml,polywrap.app.yaml,polywrap.plugin.yaml) have a new format0.2.0, which restructures the manifest into 3 top level properties:project,source, andextensions. Additionally all project manifests can be given thepolywrap.yamlfile name. - PR-1092
@polywrap/ws-plugin-js: Added a WebSocket plugin. - PR-1096
@polywrap/client-js: Expose thenoValidateoption for theclient.getManifest(...)method. - PR-820
polywrapCLI:docgencommand added, allowing wrapper developers to easily generate documentation. Supported formats: schema, docusaurus, jsdoc. - PR-1068
@polywrap/ethereum-plugin-js:requestAccountsmethod added, which utilizes theeth_requestAccountsRPC method on the configured provider.
- PR-1142
wasm/rust:Map<K, V>bugs have been fixed. - PR-1140
polywrapCLI: Added a check to make sure the Docker daemon is running, and provides an informative error if it is not. - PR-1090
polywrap/wrap-manifest-types-js: Remove runtime schema bundling, which required file system access. - PR-1050
polywrapCLI: Errors encounted in child processes now output bothstdtypesoutandstderr, allowing easier end-user debugging.
- PR-1046
polywrapCLI:schema.graphqlhas been removed from wrapper build artifacts.polywrap.plugin.yamlhas been removed from plugin build artifacts. - PR-1046
@polywrap/schema-bind:schema.tshas been removed from typescript bindings. - PR-1046
@polywrap/schema-bind@polywrap/schema-compose:WrapAbiis now used in all places, instead of schema documents. - PR-1095
@polywrap/http-plugin-js: UseMap<String, String>forheaders&urlParams. - PR-1073
@polywrap/schema-compose: TheComposerOptionspropertyschemas: SchemaFile[]has been replaced withschema: SchemaFile. Additionally the function argumentschemas: SchemaFile[]on theresolveImportsfunction has bee replaced withschema: SchemaFile. - PR-1073
@polywrap/wrap-manifest-types-js: InWrapAbiformat0.1, properties no longer acceptnulland instead useundefined. - PR-1073
@polywrap/schema-parse:Abiexport renamed toWrapAbi.
- PR-1034
@polywrap/wrap-manifest-schemas,@polywrap/wrap-manifest-types-js: Added a JSON-schema for thewrap.info'sabifield. - PR-1058
polywrapCLI: Deploy results can now be output to a file using the-o, --output-file <path>option of thedeploycommand.
- PR-1034
@polywrap/wrap-manifest-schemas,@polywrap/polywrap-manifest-schemas: Version numbers for the manifest'sformat: ...field have been changed to only include<major>.<minor>(ex:0.1.0is now0.1). This is because there cannot be a change to a pure interface that is a<patch>. - PR-1034
@polywrap/package-validation: Thewrap.info.abifield is no longer being validated via schema rendering, and is instead utilizing the newly added JSON-schema. - PR-1054
polywrapCLI: Improvedwasm/rustbuild times by refactoring the build image's Dockerfile, helping reduce cache invalidations. - PR-1053
@polywrap/wasm-as: Increased minor version of as-bignumber. The new version has a bug fix for the toFixed method, which was incorrectly printing numbers when a decimal number was rounded to an integer.
- PR-1034
@polywrap/wrap-manifest-types-js:deserializeWrapManifestis nowasync.
- PR-1040
polywrapCLI: Added proper CORS handling for the IPFS node located within theeth-ens-ipfsdefault infra module.
- PR-1035
polywrap.metaManifest: Removed thequeriesproperty from version0.1.0of the manifest. - PR-1039
@polywrap/ipfs-resolver-plugin-js: Remove theIpfsResolverPlugin's config, as it was never being used.
- PR-1017
@polywrap/templates,polywrapCLI: Rust wasm wrapper project template has been added, and made available via thepolywrap create ...CLI command.
- PR-1016
polywrapCLI: Improved logging when running workflows using thepolywrap run ...command. - PR-924
@polywrap/schema-parse,@polywrap/schema-bind: ComplexMap<Key, Value>type usages within wrapper schemas lead to incorrect bindings being generated. Additional tests + fixes have been added.
"Good evening traveler, welcome to Polywrap, a planet in the WRAP galaxy. We're happy to have you here. Ask around, I'm sure someone can help you navigate this place..." - NPC
- PR-986 WRAP build artifacts have been refined:
- Wasm module name changed from
module.wasmtowrap.wasm - Polywrap manifests are no longer written to build folder (except for project metadata).
- The
wrap.infois now the primary manifest file describing the wrapper:{ version, type, name, abi }- source
- encoded as msgpack binary file
schema.graphqlremains but will be deprecated forwrap.info's built-inabi.
- Wasm module name changed from
- PR-1006
polywrap-wasm-rs: Add Rust encoder unit tests. - PR-967
polywrapCLI,polywrap-wasm-rs,@polywrap/wasm-as,@polywrap/schema-parse,@polywrap/schema-compose,@polywrap/schema-bind,@polywrap/core-js,@polywrap/client-js: Environment configuration for wrappers was refactored to enable environments at the method level, remove client env sanitization and adding support for Rust.@envannotation was introduced for methods declared in wrappers's schemas. - PR-1005
@polywrap/core-js,@polywrap/client-js: Refactoredclient.subscribeto use invoke syntax.
- PR-967 Wasm runtime (
polywrap-wasm-rs,@polywrap/wasm-as) changed invoke signature and imports/exports, schema pipeline (@polywrap/schema-parse,@polywrap/schema-compose,@polywrap/schema-bind) now supports external env imports and TypeInfo and@envannotation for methods,polywrapchanged compiler's imports,@polywrap/core-jschanged Plugin interface,@polywrap/client-jschanged environment model implementation. - PR-1005
@polywrap/core-js,@polywrap/client-js: Refactoredclient.subscribeto use invoke syntax.
- PR-989
@polywrap/core-js: Add job status in workflow job's result object. - PR-992
polywrapCLI: Allow configuring the client using the--client-configon all applicable commands. - PR-1000
@polywrap/core-js: Added theencodeResultproperty toInvokeOptions. - PR-1000
@polywrap/core-js: Introduced the concept ofInvokerandInvocable. - PR-988
polywrapCLI,wasm/rust: Updates to the default build-image (Dockerfile):- Added the system dependencies
clang,llvmandbuild-essentials. - Added steps to remove any
wasm-bindgenimports that may have been injected.
- Added the system dependencies
- PR-1000 Fixed inconsistencies around
ArrayBufferandUint8Array. - PR-1000
@polywrap/client-js: ThenoDecodeflag (renamed toencodeResult) now enfoces the decoding properly, where before it could get confused with returningBytesfrom a wrapper. - PR-981
polywrap-wasm-rs: Remove thewrap-invokefeature because it is not being used at the moment.
- PR-980
@polywrap/schema-parse: RenameTypeInfofromAbi.
- PR-912 PR-930 PR-958 All URI resolver extensions have been decoupled and moved into their own plugin packages:
@polywrap/fs-resolver-plugin-js@polywrap/ipfs-resolver-plugin-js@polywrap/ens-resolver-plugin-js
- PR-912
@polywrap/file-system-interfacehas been created to help standardize FileSystem wrapper implementations. - PR-930
@polywrap/ipfs-interfacehas been created to help standardize IPFS wrapper implementations.
- PR-957
@polywrap/schema-bind:plugin/typescriptmodule config type interfaces no longer inherit fromRecord<string, unknown>, making them more type-safe and less generic.
- PR-937 PR-960 The term
Nullablehas been changed toOptionalwithin thewasmwrapper codegen. Additionally inwasm/assemblyscripttheNullable<T>type has been changed to a rust-styleOptional<T>type. - PR-972 The term
inputin the context of invocations has been renamed toargs. - PR-976 The invocation
resultFilteroption has been deprecated, as it is a needless & unused feature.
- PR-903
polywrapCLI: Recipes have been re-worked into composable workflows, and they can be run using CLI commands. - PR-951
polywrapCLI: Docker Buildx output option has been removed. - PR-944
@polywrap/schema-bind,@polywrap/wasm-as:Nullabletype has been replaced withOptionin the Assemblyscript schema bindings. - PR-938
@polywrap/schema-bind,@polywrap/wasm-as: Rollback of JSON serialization in the Assemblyscript schema bindings.
- PR-946
@polywrap/test-env-js: Path fix fornpmCLItest utility.
- PR-903
polywrapCLI: Running recipes via thepolywrap query ...command has been deprecated in favor of a new workflows system, accessible via thepolywrap run ...command. - PR-944
wasm/assemblyscriptWrappers:Nullabletype has been removed in favor ofOptionwhich also has a different interface. - PR-938
wasm/assemblyscriptWrappers:JSONserializer and deserializer, and related methodsfromJsonandtoJsonhave been removed in favor ofparseandstringify.
- Various CI/CD fixes.
- PR-928
@polywrap/manifest-schemas: Inline documentation has been added to manifest JSON-schemas. - PR-933 Validation package
@polywrap/package-validationhas been implemented to validate WASM wrapper packages.
- PR-932
@polywrap/schema-bind: Minor fix for JSON type schema bindings - PR-935
@polywrap/test-env-js: Path fix fornpmCLItest utility
- PR-923 The Polywrap brand has been applied to the codebase.
- PR-906 The concept of
MutationandQuerymodules has been deprecated. Now all wrapper methods are defined within a singleModule.
- PR-923 All prior integrations using the "Web3API" packages must upgrade to the new "Polywrap" equivalents.
- PR-906 All wrappers created prior to this change are incompatible.
- PR-910
@web3api/cli:web3api.infra.yamlmanifests now support the concept of "default" modules. - PR-878
@web3api/client-js:Workflowscan now be run using theclient.run(...)method. Integration into the Polywrap CLI will be released in the near future.
- PR-908
@web3api/asyncify-js: Improved WebAssembly import sanitization has been added, resolving an ambiguous error that was found when extraneous imports were added to a built module. - PR-902
@web3api/cli:w3 create plugin ...&w3 create app ...now properly parse their expectedlanguageandnamearguments.
- PR-328
@web3api/infra: A modular infrastructure pipeline has been added to the CLI, available via thew3 infra ...command. This command allows for custom infra modules to be defined and combined, able to support any 3rd party services your development requires. This command supersedes the oldw3 test-env ...command. - PR-898
@web3api/cli: Thewasm/rustdefault build image has been updated to include thewasm-sniputility, which helps remove dead code from the wasm modules in a post-processing step. This has reduce the average Rust-based wasm module's size by ~85%. - PR-885
@web3api/test-env-js: AbuildApihelper function has been added.
- PR-328
@web3api/cli: Thew3 test-env ...command has been removed and replaced by thew3 infra ...command.
- PR-870
@web3api/cli: Theweb3api.deploy.yamlmanifest file now supports the use of environment variables. - PR-866
@web3api/test-env-js: ThebuildAndDeployApitest utility now supports recursive ENS subdomain registration.
- PR-884
@web3api/client-js: Plugin registrations are now properly sanitized, and overridden plugins will be removed from the plugins array. - PR-892
@web3api/cli: Some minor fixes have been made to thewasm/rustbuild image's default Dockerfile.
- PR-699
@web3api/cli: Support for Rust based WebAssembly wrappers has been added.
- PR-872
@web3api/schema-bind: TypeScript bindings for both app & plugin projects now useArrayBufferto represent the schema'sBytestype, instead of the previousUint8Array.
- PR-864
@web3api/react:useWeb3ApiInvokeanduseWeb3ApiQueryhooks now support configuring the client's environment, along with all other configuration options. - PR-808
@web3api/cli: Theweb3api.build.yamlmanifest now supports additional docker buildkit configuration options, including:- local docker image layer cache
- custom image output location
- remove image after build
- remove builder instance after build
- PR-827
@web3api/ethereum-plugin-js: The provider's connection can now be configured via the wrapper's environment. - PR-807
@web3api/cli: Make the CLI's Docker file-lock project specific, instead of global to the CLI installation.
- PR-847
@web3api/templates: The template projects used for thew3 create ...CLI command now have proper CI setup, and multiple bugs were fixed within them. - PR-861
@web3api/test-env-js: ThebuildAndDeployApifunction'sensNameno longer assumes the.ethTLD is ommitted, and requires the user to provide it along with the domain name. This was the original behavior, and was modified in release0.0.1-prealpha.75.
- PR-859
@web3api/cli: The CLI is now built using thecommanderpackage. The CLI's help text formatting has changed in structure as a result.
- PR-855 Pinned
@types/prettierto version2.6.0to fix an issue that was created by the latest release.
- PR-852
@web3api/client-test-env: The IPFS node's API endpoint now has CORS enabled via the following configuration properties:- API.HTTPHeaders.Access-Control-Allow-Origin:
["*"] - API.HTTPHeaders.Access-Control-Allow-Methods:
["GET", "POST", "PUT", "DELETE"]
- API.HTTPHeaders.Access-Control-Allow-Origin:
- Pinned
@types/prettierto version2.6.0to fix an issue that was created by the latest release.
- PR-846
@web3api/wasm-as: Add support for automatic JSON serialization via the@serial-as/transformasccompiler transformation. - PR-846
@web3api/schema-bind: Assemblyscript object types now haveType.toJson(type)andType.fromJson(json)static helper methods added to all class instances. - PR-840
@web3api/cli: Allowasync getClientConfigfunctions within modules passed into thew3 querycommand's--client-configoption.
- PR-836
@web3api/cli: All commands properly handle the--helpoption.
- PR-814
@web3api/cli: A modular deployment pipeline has been added to the CLI. It can be accessed via thew3 deploycommand.
@web3api/schema-bind: Fix incorrect export fromplugin-tsbindings.
- PR-821
@web3api/cli: Fixed a codegen issue when generating types for plugins with only one module.
- PR-620 Plugin DevExp Improvements: The plugin developer experience has been revised to be very close to the API development experience.
- PR-697
BigNumberSchema Type: TheBigNumbertype is now available for use as a base type for Web3API schemas. - PR-802
@web3api/cli:w3 query ...command now supports the following options:-o, --output-file: Output file path for the query result.-q, --quiet: Suppress output.
- PR-790
@web3api/schema-bind:wasm-asbindings have been updated to include a helper functionrequireEnv(), which can be used to check if the environment is null or not. - PR-795
@web3api/templates: The AssemblyScript & interface templates used for thew3 create api ...command has been updated to include metadata (descriptions, icons, etc). - PR-794
@web3api/templates: The AssemblyScript template used for thew3 create api assemblyscript ...command has been updated to include e2e tests.
- PR-777
@web3api/client-js: TheWeb3ApiClientnow has a public methodloadUriResolvers(), which will pre-fetch all URI resolver implementations.
- Issue-715 PR-777
@web3api/client-js: Custom URI resolver implementations now no longer cause an infinite loop during URI resolution.
- PR-777
@web3api/client-js:Web3ApiClientpublic methodgetResolvers(...)renamed togetUriResolvers(...). - PR-777
@web3api/client-js:Web3ApiClientConfigpropertyresolversrenamed touriResolvers.
@web3api/core-js: Fixed the manifest migration script forweb3api.metafrom v1 to v3. Thenameproperty is now migrating properly todisplayName.
- PR-669
Map<K, V>schema base-type has been added. - PR-761 Modules now subinvoke interface implementation wrappers through the
__w3_subinvokeImplementationhost import. This now gives us a specific import function for these sort of invocations, which can allow for additional types of verification features to be added by clients. - PR-769
@web3api/schema-bind: Add support forgetImplementationscapability in TypeScript plugin (plugin-ts) codegen. - PR-763
@web3api/schema-bind: Theschema-bindproject is now "module agnostic" and accepts an array of arbitrary modules, which it will pass directly to the different binding projects (wasm-as,plugin-ts,app-ts, etc). - PR-759
@web3api/manifest-schemas: Added thename: stringproperty to theweb3apimanifest. - PR-759
@web3api/manifest-schemas: Renamedweb3api.meta'snameproperty todisplayName. - PR-772
@web3api/manifest-schemas: Added thetags: string[]property to theweb3api.metamanifest, allowing wrapper to developers to add tag keywords to their package's metadata, helping improve searchability on package indexers like The Polywrap Hub. - PR-747
@web3api/ethereum-plugin-js: Changed all instances of thechainIdproperty's type toBigIntfromUInt32. - PR-776
@web3api/ethereum-plugin-js: AddedgetBalanceto theQuerymodule, allowing callers to check the native balance of arbitrary addresses.
- PR-669 Wrappers that utilize the new
Map<K, V>schema base-type will break forward compatability of Polywrap clients.- Relevant Downstream Dependencies:
@web3api/client-js
- Relevant Downstream Dependencies:
- PR-761 Modules that use the
getImplementationscapability for interfaces will now require the following host imports:__w3_subinvokeImplementation,__w3_subinvokeImplementation_result_len,__w3_subinvokeImplementation_result,__w3_subinvokeImplementation_error_len,__w3_subinvokeImplementation_error- Relevant Upstream Dependencies:
@web3api/wasm-as,@web3api/schema-bind,@web3api/cli,@web3api/client-js
- Relevant Upstream Dependencies:
- PR-763
@web3api/schema-bind: The entry point function's input & output types have changed. - PR-763
@web3api/cli: The type of the expected export from user-defined codegen scripts has changed from:
generateBinding = (
output: OutputDirectory,
typeInfo: TypeInfo,
schema: string,
config: Record<string, unknown>
) => void;to
generateBinding = (
options: BindOptions
) => BindOutput;- PR-766
@web3api/client-js: User-configured interface implementations now extend the default configuration's, instead of overwritting them.
- PR-756
@web3api/schema-bind: Imported enums are properly included in the schema bindings when there are no objects imported.
- PR-726 Improved the application developer experience by creating a new
w3 app codegencommand, which generated types based on the apps wrapper / plugin integrations. For an example of how this works, see the updated application template projects by runningw3 create app typescript-node my-apporw3 create app typescript-react my-app. - PR-726
@web3api/react: Added theuseWeb3ApiInvokehook as a non-graphql alternative touseWeb3ApiQuery. - PR-726
@web3api/schema-compose: Importing all dependency types from a schema import schema statement can now be done through the new wild-card syntax:#import * into Namespace from "w3://authority/path".
- PR-726
@web3api/cli:w3 buildCLI command now requires the use of the--manifest-file <path>option in order to specify a custom build manifest file path. - PR-726
@web3api/cli:w3 codegenCLI command option renaming:-m, --manifest-path <path>to-m, --manifest-file <path>-c, --custom <path>to-s, --script <path>-o, --output-dir <path>to-c, --codegen-dir <path>
- PR-726
@web3api/cli:w3 pluginCLI command option renaming:-m, --manifest-path <path>to-m, --manifest-file <path>
- PR-718
@web3api/cli:w3 plugin codegennow outputs the plugin manifest to the build directory. - PR-695
@web3api/ethereum-plugin-js: Added Query methods:solidityPack,solidityKeccak256,soliditySha256.
- PR-718
@web3api/cli:w3 plugin codegenoption-s, --output-schema-pathchanged to-p, --publish-dir. - PR-718
@web3api/cli:w3 plugin codegenoption-t, --output-types-dirchanged to-c, --codegen-dir.
- PR-690
@web3api/http-plugin-js: Better axios response header handling for lists. - PR-692
@web3api/wasm-as: Properly propogateResult<T, E>error upon unwrap exception.
- PR-685
@web3api/schema-parse: Properly support recursive object definition properties.
- PR-650
@web3api/cli: Add YAML support for query recipes. - PR-385
@web3api/cli,@web3api/client-js: Use JSON for manifest build artifacts. - PR-678
@web3api/cli: Build command no longer uses same docker image name by default. The concept of a "build UUID" has been added, and will be appended to the docker image name (if the develoer has not specified their own insideweb3api.build.yaml). - PR-610
@web3api/client-js: Support theresolveUri(...)method onWeb3ApiClientinstances.
- PR-665
@web3api/ethereum-plugin-js: FixTxRequestproperty mapping to ethers.js types. - PR-672
@web3api/core-js,@web3api/schema-bind,@web3api/schema-parse: Remove use of the JS string.substrmethod. - PR-673
@web3api/cli: Thew3 query ...command now property setsexitCodeto 1 if a query fails. - PR-651
@web3api/http-plugin-js: JSON payloads are now property supported.
- PR-674
@web3api/cli,@web3api/schema-bind: ReturnResult<T, E>objects from all AssemblyScript subinvoke methods.
- Use the https://ipfs.wrappers.io IPFS gateway throughout the codebase.
- Rename TypeInfo
queryTypes&importedQueryTypestomoduleTypes&importedModuleTypes. @web3api/ipfs-plugin-js: Improve the IPFS plugin's URI resolver implementation, and add the ability to query from multiple gateways in parallel.
@web3api/cli: Added the--client-config/-coption to thew3 queryCLI command, allowing the user the define their own client configurations within a JavaScript or TypeScript module.@web3api/client-js: Plugins can now be initialized with the client's environment registered at the plugin's URI.
@web3api/schema-bind: Properly handle reserve words for the bind target's language. Reserved words will be prepended withm_in order to avoid compiler errors.
@web3api/schema-compose:ComposerOptionspropertyschemasis now of typeRecord<SchemaKind, SchemaFile>and notRecord<string, SchemaFile>.@web3api/schema-bind:TargetLanguagetype has been renamed toBindLanguage.@web3api/schema-bind:BindOptionspropertylanguagehas been renamed tobindLanguage.
@web3api/cli: Properly resolve NPM dependencycolorsdue to it being corrupted.@web3api/cli: Plugin schema codegen now properly represents imports types from both Query and Mutation modules.@web3api/cli: Properly defined the separation of theManifestLanguageandBindLanguage(ex: wasm/assemblyscript -> wasm-as).@web3api/schema-compose: Introduce the concept of aSchemaKindto help determine how schemas should be combined.@web3api/schema-compose: Allow plugins to import mutations within their schemas.@web3api/schema-bind: Introduced the concept ofBindTargetto represent a list of known-good bind targets (wasm-as,plugin-ts, etc).
- Web3APIs can now be configured via environment variables. Documentation will be created soon. Initial details on this features specification can be found here.
@web3api/client-js: AddednoDecodeinvocation option.@web3api/client-js: AddednoDefaultsconstructor option.
@web3api/ethereum-plugin-js: TheencodeParamsnow properly parses arguments of type Array & Tuple.
@web3api/cli: CLI command middleware support has been added. The first use-cases implemented are to help ensure Docker is available to the CLI instance, and not in-use by another CLI instance.@web3api/client-js: Query-time configuration overrides have been added, allowing developers to define new configurations without having to re-create the client instance.
@web3api/asyncify-js: Fixed issue #570 by using a node-version-agnostic way of indexing into the Uint8Array buffer.
@web3api/ethereum-plugin-js: The encodeFunction now support array & object arg types.
@web3api/schema-compose: Properly support empty schema types.@web3api/asyncify-js: Fixed a low-level inconsistency between Wasm modules when using imported memory. More details here.@web3api/schema-bind: Fixed issue where imports were inconsistent betweenserialization.tsassemblyscript files, and some necessary imports were missing.
@web3api/ethereum-plugin-js: AddedgetNetworkto the Ethereum plugin'sQuerymodule.
as-bigintupgraded to version0.4.0. Improvements made found here.
- Querying an interface implementation's modules given its URI is now supported within Wasm.
as-bigintupgraded to version0.3.2. Improvements made found here.
- Getting the implementations of an interface is now supported from within Wasm.
@web3api/tracing-js: Added a class method decorator for tracing.
@web3api/fs-plugin-js: Added a "File System" plugin, which implements theuri-resolverinterface, enabling users to load Web3API packages from their local filesystem. For example, a user could specify the URI/fs/path/to/package/directory.- Upgraded the toolchain's Node.JS version to 16.13.0, which solves compatibility issues with Mac computers using the new M1 processor.
@web3api/cli: Fixed thew3 query ...command's recipe variable parsing logic, better supporting arrays and objects.@web3api/schema-compose: Improved import parsing, and added support for recursive schema imports.
@web3api/test-env-js: Allow the usage of this package as an npm package outside of the monorepo folder structure.
@web3api/client-js: Add the Graph Node plugin to the client's default configuration.@web3api/ethereum-plugin-js: Add theencodeFunctionquery method, allowing callers to encode smart contract methods w/ argument values.
@web3api/core-js: Properly check for "undefined" values in query arguments.@web3api/wasm-as: Improved MsgPack deserialization of integers (signed & unsigned).
@web3api/tracing-js: Support service name configuration.
@web3api/client-js: Use Fleek's IPFS gateway.
@web3api/client-js: Added theclient.subscribe(...)method, enabling users to easily send queries at a specified frequency.
@web3api/tracing-js: Replaced theutil-inspectdependency with a browser compatible one.
@web3api/schema-parse: Removed unnecessary sanitization for imported methods without any arguments.
@web3api/schema-parse: Added support forJSONas a base type.@web3api/ens-api: Merged in an initial version of the ENS Wasm based Web3Api.web3api.build.yaml: Added support for thelinked_packagesproperty, allowing you to link local packages into the dockerized build-env.
@web3api/schema-compose: Fixed an invalid GraphQL bug that occured when an imported query method did not have any arguments.
@web3api/client-js: AddedgetManifest(...),getFile(...), andgetSchema(...)methods to the client, simply provide a URI.@web3api/cli: APIs can now define metadata via theweb3api.meta.yamlmanifest file. Upon compiling your project, the CLI will copy all referenced metadata files into the build directory. Applications such as The Polywrap Hub will use this metadata file to display details about your package such as: title, description, icon, example queries, etc.
@web3api/schema-parse: Duplicate fields on object & query types are not detected, and will cause a compiler error.
@web3api/client-js: Removed theloadWeb3Api(...)method from the client. This is because we do not want to give the user of the client a direct reference to the underlying API class object. Since garbage collection will delete these, having the user able to hang onto references, will result in them staying in memory.
@web3api/client-js: Addedhttps://polywrap-dev.mypinata.cloudandhttps://ipfs.infura.ioas default fallback IPFS providers.
@web3api/ipfs-plugin-js: Fallback providers are now used if an error is encountered, not just for timeouts.
@web3api/client-js: Removed the usage of_w3_init, as it's unnecessary and caused issues with adding Rust-Wasm support.
@web3api/asyncify-js: Fixed problem when Wasm modules are larger than 4 KB. More info here.@web3api/client-js: Use new asyncify-js package, where instantiation is asynchronous.
- Upgrade all JavaScript plugins to use the new
w3 plugin codegencommand. The command generates typings based on the GraphQL schema of the plugin. This ensures the plugin's resolvers match 1:1 with the GraphQL schema.
@web3api/schema-bind: Fix TypeScript plugin enum bindings.
@web3api/schema-bind: Fix TypeScript enum bindings.@web3api/graph-node-plugin-js: Fix mismatched schema.
@web3api/schema-bind: Fixed plugin code generation oversight. Should be usingnullinstead ofundefined.
- Improved the plugin developer experience by creating a new
w3 plugin codegencommand, which generated types based on the plugin's schema. For an example of how this works, see the updated plugin template project by runningw3 create plugin typescript my-plugin. @web3api/cli: Refactored thew3 codegencommand, making its default behavior the generation of types for Web3APIs. It's "old" behavior of loading a custom generation script is now usable through the--customoption.
@web3api/cli: Properly validate all required Wasm exports when compiling Web3APIs.
- Use Binaryen's Asyncify to support async Wasm import calls. Deprecate the Wasm threading model we were using previously. This now means that the client now supports all browsers, as it no longer requires
SharedArrayBuffer& theatomicslibrary. @web3api/graph-node-plugin-js: Finalized the graph-node plugin implementation, added e2e tests. It currently only works with the hosted service.
- Removed support for UInt64 & Int64 base types. More info here.
@web3api/cli: Properly validate all required exports from Web3API Wasm modules at compile-time.@web3api/ethereum-plugin-js: Properly support smart contract methods with structures as arguments.
@web3api/ethereum-plugin-js: Fix ethers.js inconsistencies.
- Web3API Interfaces are now fully supported in the tool-chain.
- GraphQL schema comments are now retained, and will show up in the build folder.
@web3api/parse: Reference types definitions are now differentiated from the root definitions the reference.
@web3api/cli: Fix MacOS specific issue w/ PATH not being retained.- The
configproperty inweb3api.build.yamlis now optional.
- Fixed API template project
- Fixed API template project
@web3api/uniswapV2-api: Completed the Uniswap V2 Web3API implementation.@web3api/ethereum-plugin-js: Upgraded the Ethereum plugin, added lots of new functionality.@web3api/cli: Implemented a "reproducible build pipeline", where Web3APIs are now built in an isolated docker container. These builds can be fully configurable by developers. This also paves the way for implementing Web3APIs in any Wasm compatible language. Rust support on the way!@web3api/react: Added the ability to set queryvariableswithin theexecutefunction returned by theuseWeb3ApiQueryhook.@web3api/sha3-plugin-js: A SHA3 plugin has been implemented, and added to the client as a "default plugin".@web3api/uts46-plugin-js: A UTS46 plugin has been implemented, and added to the client as a "default plugin".- CI: Windows CI has been implemented using appveyor.
@web3api/client-js: Fixed threading issue causing the "unknown wake status" error.- Fixed Windows specific errors.
@web3api/client-js: Added theWEB3API_THREAD_PATHenv variable, allowing integrators to customize where thethread.jsworker thread module is imported from.@web3api/wasm-as: Improved error logging w/ better error messages and a "context stack" showing exactly what properties of the MsgPack blob the serialization / deserialization is failing at.
@web3api/wasm-as: Movedas-bigintfromdevDependenciestodependencies. Fixes issue #347
@web3api/os-js: This package contains OS agnostic code for doing things like writing files w/ consistent line endings.- Windows Support: The toolchain now builds and runs properly on the Windows operating system.
BigIntSchema Type: TheBigInttype is now available for use as a base type for Web3API GraphQL schemas.@web3api/react: TheuseWeb3ApiClienthook was added, allowing users to easily get a reference to the Web3ApiClient used by the Web3ApiProvider.
@web3api/tracing-js: Thetracing-jspackage uses the OpenTelemetry Standard for logging trace events. This enables things like:- Benchmark Timings
- Input Argument + Output Result Logging
- In-Depth Exception Tracing
@web3api/core-js: All functions are now traceable.@web3api/client-js: All functions are now traceable.
- Sharing code & types between
queryandmutationmodules is now possible.
- Common types found in both
queryandmutationschemas are properly consolidated. If types have the same name, but a different structure, and error is thrown.
- Fix the
w3 create app react ...template project's styling to be responsive.
@web3api/ipfs-plugin-js: Added options for request timeouts, provider overrides, and fallback providers. Additionally a new method has been added,resolve, which allows the caller to try and resolve a given IFPS CID to ensure the document exists.
- Updated the
app/reacttemplate project to use the latest "Hello World" Web3API published atens/helloworld.web3api.eth.
@web3api/ethereum-plugin-js: Network configurations must be nested within a property in order to allow for thedefaultNetworkproperty to be set w/o causing a typing error (for not being of theConnectionConfigtype).
@web3api/test-env: Expose the IPFS node's swarm port (4001).
- Fix
extractPluginConfigs.tsoutput.
- Network Specific ENS Lookup
@web3api/ethereum-plugin-js: The EthereumPlugin can now be constructed with multiple network connections (mainnet, rinkeby, testnet, etc).- All Query & Mutation methods now accept an optional
connectionproperty which can be used to configure a specific network to be used for the action.
- All Query & Mutation methods now accept an optional
@web3api/ens-plugin-js: The EnsPlugin can now handle URIs that address specific networks. For example:w3://ens/testnet/myweb3api.eth. It will request thetestnetconnection to be used when querying the Ethereum Web3API.
- Improved template projects that are used with the
w3 create ...CLI command.
- Added schemas to plugin manifest modules, removing the need for
import_redirects. - Fixed the IpfsPlugin's
addFilemethod. - Improved the api/assemblyscript template project.
@web3api/cli: Include the internationalization JSON files in the published package.
@web3api/ens-plugin-js: Fix the schema.
@web3api/cli: CLI Internalized Text Support- Currently English is implemented, and Spanish support is slated to be added next.
@web3api/schema-parse: GraphQL Infinite Cycle Detection- Bad object relationships within the Web3API's GraphQL schema are now automatically detected, ensuring developers never create objects that can never be instantiated properly.
@web3api/templates: Auto-Generate Smart Contract ABI & Bytecode Assemblyscript Module- This auto-generated module is being used within the
deployContractmutation.
- This auto-generated module is being used within the
@web3api/core-js: Theresolve-uricore algorithm had an "off by one" iteration bug, where it never retried the firstapi-resolverin the implementations array.@web3api/ethereum-plugin-js: When using a provider that lacks signing capabilities (ex: Infura RPC endpoint), thegetContractfunction was trying to get a signer when one did not exist.@web3api/ipfs-plugin-js: Fixed this plugin's schema, as it was using unsupported syntax.
- Upgrade node version to v14.16.0.
- Upgrade TypeScript version to v4.0.7.
- Fixed bug in
@web3api/reactpackage.
- Removed documentation & demos from the monorepo.
- Console Log Web3API
- Calls log on logger plugin at uri w3://w3/logger. Default logger logs to console, but can be overridden with redirect to custom logger web3api implementation.
- Log levels: Debug, Info, Warn, Error
createWeb3ApiClient(...)helper for easily setting up a Web3API Client with all needed plugins (ex: ethereum, ipfs, etc) in one function call.- Additional support for plugins can be added in the future, without bloating the
@web3api/client-jspackage thanks to dynamic imports!
- Additional support for plugins can be added in the future, without bloating the
- When using the Web3ApiClient, specify Web3API URIs without having to create a new URI class (
new Uri("...")). Simply provide a string instead. - Improved plugin instantiation interface.
- Proper MsgPack numeric overflow assertions (closes: #150)
- Proper usage of GraphQL Aliases when invoking multiple methods in one query.
- Web3API React Integration:
@web3api/react- Add the
Web3ApiProviderHOC to the root of your application. - Use the
useWeb3ApiQueryhook to execute queries.
- Add the
- Web3API CLI e2e tests.
@web3api/test-env-jspackage for common testing logic.@web3api/test-casesfor common test cases.
- Remove unused
workerize-loaderpackage & logic.
w3 build --watchsupport, enabling the automatic rebuilding of Web3APIs whenever project files have changed.
- Enum Support
w3 create ...CLI Fix (closes: #167)
- Fix typescript plugin template's package.json
Pre-Alpha Initial Release
