Skip to content

support evm update #411

@jordy25519

Description

@jordy25519

With cennznet 2.1.0 type definitions are no longer necessary (except for backwards compatibility and possibly TS definition generation)

using @polkadot/api latest & this snippet is enough to read and sign transactions successfully on CENNZnet:

await ApiPromise.create({
      provider,
      signedExtensions: {
        'ChargeTransactionPayment': {
          extrinsic: {
            tip: 'Compact<Balance>',
            feeExchange: 'Option<u32>',
          },
          payload: {},
        }
      }
}

additionally, this function should be added to convert Ethereum addresses to CENNZnet 32 byte format

function cvmToAddress(evmAddress) {
  var message = utils.stringToU8a('cvm:');
  message = utils.u8aConcat(message, new Array(7).fill(0), utils.hexToU8a(evmAddress));
  let checkSum = message.reduce((a, b) => a ^ b, 0);
  message = utils.u8aConcat(message, new Array(1).fill(checkSum));

  return utilCrypto.encodeAddress(message, 42);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions