Как создать белый список как смарт-актив?
Мне нужен кто-то, чтобы помочь мне создать простой умный актив. Я просто хочу, чтобы вы не могли торговать ни под какой парой, и чтобы она могла быть отправлена только на 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)