📜  eosio 名称到 int js - Javascript (1)

📅  最后修改于: 2023-12-03 15:00:36.527000             🧑  作者: Mango

EOSIO名称到int JS - JavaScript

EOSIO是一种区块链平台,它允许开发人员构建去中心化应用程序(DApps)。每个DApp都有一个唯一的名称,它是一个字符串,但它在EOSIO中被编码为一个整数。

在JavaScript中,您可以使用一个简单的函数来将EOSIO名称转换为整数:

function eosNameToUint64(name) {
  var charmap = ".12345abcdefghijklmnopqrstuvwxyz";
  var result = new Uint32Array(2);
  for (var i = 0; i < 12; i++) {
    var c = 0;
    if (i < name.length && i <= 12) {
      c = charmap.indexOf(name.charAt(i));
    }
    if (i < 11) {
      c &= 0x1f;
      c <<= 64 - 5 * (i + 1);
    } else {
      c &= 0x0f;
    }
    result[Math.floor(i / 6)] |= c;
  }
  return result;
}

该函数接受一个名字字符串作为参数,并返回一个 Uint64 数组,它包含将名字编码为 uint64_t 的两个 32 位整数。其中高 32 位是最后 6 个字符编码的值,低 32 位是余下的字符编码的值。

要使用该函数,请按如下方式调用它:

var name = "mycontract";
var uint64 = eosNameToUint64(name);
console.log(uint64); // [ 2609131774, 1701997387 ]

上面的例子将 mycontract 转换为 uint64_t 数组 [ 2609131774, 1701997387 ]

EOSIO设计的很多方面都比较复杂,但对于大多数DApp开发人员来说,将名称编码为整数可能是您需要的最简单的EOSIO编码操作之一。