1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
mod dns_proxy {
multiversx_sc::imports!();
#[multiversx_sc::proxy]
pub trait Dns {
#[payable("EGLD")]
#[endpoint]
fn register(&self, name: &ManagedBuffer);
}
}
multiversx_sc::imports!();
#[multiversx_sc::module]
pub trait DnsModule {
#[proxy]
fn dns_proxy(&self, to: ManagedAddress) -> dns_proxy::Proxy<Self::Api>;
#[payable("EGLD")]
#[only_owner]
#[endpoint(dnsRegister)]
fn dns_register(&self, dns_address: ManagedAddress, name: ManagedBuffer) {
let payment = self.call_value().egld_value();
self.dns_proxy(dns_address)
.register(&name)
.with_egld_transfer(payment)
.async_call()
.call_and_exit()
}
}