Как создать белый список как смарт-актив?

Мне нужен кто-то, чтобы помочь мне создать простой умный актив. Я просто хочу, чтобы вы не могли торговать ни под какой парой, и чтобы она могла быть отправлена ​​только на 2 конкретных адреса Waves. Может кто-то помочь мне с этим?

1 ответ

Решение

Вы можете добавить список адресов в учетную запись отправителя с помощью транзакции данных в Waves Console (здесь я добавил два адреса в белый список), а затем передать транзакцию в сеть:

const DataTx = 
data(
{
data: [
{key: "3Mt2yEuqDZVSfN7jqzvtkresLRah329k2ya", value: 12},
{key: "3N17vWKRThx5eKkPLC18UjyUuFr4X3sSKCD", value: 10}], 
fee: 1500000
}
   )
broadcast(DataTx)

Для смарт-контракта можно использовать механизм сопоставления с образцом, чтобы разрешить транзакцию переноса, только проверив, определен ли адрес получателя в учетной записи белого списка отправителей, в противном случае транзакция переноса не будет разрешена:

let whiteListAccount = tx.sender //In this line, we just defined the sender (in our case Bob).
match tx 
{  
case tx : TransferTransaction => let recipient = toBase58String(addressFromRecipient(tx.recipient).bytes)
isDefined(getInteger(whiteListAccount, recipient))
case _ => true 
}

После этого вам нужно будет скомпилировать смарт-контракт и установить скрипт в Waves Console следующим образом:

const Tx = setScript
 (
{
Script: compile(contract()),
senderPublicKey:publicKey(),
Fee:1400000
}
 )

broadcast(Tx)
Другие вопросы по тегам