Вы можете добавить список адресов в учетную запись отправителя, используя Транзакция данных в Консоль Waves (здесь я добавил два адреса в белый список), а затем передайте транзакцию наnetwork:
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)