Skip to content
  1. May 22, 2020
  2. May 21, 2020
  3. May 20, 2020
  4. May 18, 2020
  5. May 16, 2020
    • Amaury Martiny's avatar
      refactor!: Pass mandatory registry everywhere (#141) · bd14e848
      Amaury Martiny authored
      BREAKING CHANGE:
      
      This refactor breaks compatibility with v1, as all functions now require a `{ metadataRpc?, registry }` last argument.
      
      #### Rationale
      
      In v1, by not passing any last argument, we implicitly used Kusama's most recent TypeRegistry. This was a handy shortcut, but might create hard-to-debug issues down the road (e.g. using another chain, or using Kusama with an incompatible spec version).
      
      In v2, we never default to Kusama anymore, and always require the user passing the registry (and sometimes the metadata too, if needed, see docs for details).
      
      Example 1:
      
      ```diff
      + // Get Kusama's registry at `specVersion`
      + const registry = getRegistry('Kusama', 'kusama', specVersion);
      
      const unsigned = methods.balances.transfer(
        { dest: '1F...', value: 23 },
        {
          // other info about tx
      -    metadataRpc: metadataRpc,
      - }
      +  }, {
      +    metadataRpc: metadataRpc,
      +    registry: registry
      +  }
      );
      ```
      
      Example 2:
      
      ```diff
      const unsigned = {...};
      const signature = '...';
      
      + // Get Kusama's registry at `specVersion`
      + const registry = getRegistry('Kusama', 'kusama', unsigned.specVersion);
      
      - const signed = createSigned(unsigned, signature);
      + const signed = createSigned(unsigned, signature, {
      +    metadataRpc: unsigned.metadata,
      +    registry,
      + });
      ```
      
      Here is the full list of breaking changes:
      - `decode` function taking 3 arguments was deprecated in v1, in favor or 2 arguments. In v2, `decode` takes exactly 2 arguments.
      - `createSigningPayload`, `createSignedTx`, `methods.*.*` functions all take a mandatory last argument `{ metadataRpc?, registry }`. Note that the `metadata` field has been renamed to `metadataRpc`. Whether a function needs `metadataRpc` is documented for each function.
      - `deriveAddress`'s 2nd argument `ss58Format` is now mandatory, and does not default to Kusama's prefix anymore.
      bd14e848
  6. May 11, 2020
  7. Apr 30, 2020
  8. Apr 27, 2020