Как создать адрес записи для цепочек субстратов, таких как Polkadot или Kusama? - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу создать адрес без ключа, чтобы он мог служить адресом записи - адресом, по которому токены можно отправлять и никогда не получать. Как мне сгенерировать один?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020

Вы можете использовать подмодуль ключей Polkadot JS ':

const { encodeAddress } = require('@polkadot/keyring');

const zero = '0x' + '00'.repeat(32);
const output = encodeAddress(zero, 2);

console.log(output.toString());

Это выводит: CaKWz5omakTK7ovp4m3koXrHyHb7NG3Nt7GENHbviByZpKp, который является адресом Kusama (из-за 2 в encodeAddress выше), который никогда не сможет быть разблокированным - нет закрытого ключа для publi c key 0x0.

В качестве альтернативы, encodeAddress(new Uint8Array(32)) также работает - u8a инициализируется 0, а для случайных адресов вы можете использовать encodeAddress(randomAsU8a()) .

1 голос
/ 04 февраля 2020

Вместо того, чтобы отправлять ваши токены на произвольный счет, я бы посоветовал вместо этого отправлять ваши средства на адрес казначейства (если таковой имеется в вашей цепочке субстратов).

В противном случае - более технический способ сжигания средств. учитывая текущую реализацию модуля «Сальдо», можно было бы воспользоваться преимуществами логики экзистенциальных депозитов c.

. В основном, если на счету есть средства меньше, чем существующий депозит, эти средства буквально сжигаются, и «Общая эмиссия» в цепочке корректно снижается. Как пользователь с некоторыми средствами, все, что вам нужно сделать, это сделать много микро-транзакций, отправляя средства меньше, чем существующий депозит на пустой счет. Каждый из этих переводов приведет к тому, что баланс будет действительно уничтожен из системы.

...