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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
use super::{BigIntUncallable, BigUintUncallable, EllipticCurveUncallable};
use crate::api::SendApi;
use crate::types::{Address, ArgBuffer, BoxedBytes, CodeMetadata, TokenIdentifier};
use alloc::vec::Vec;

impl SendApi for super::UncallableApi {
    type AmountType = BigUintUncallable;
    type ProxyBigInt = BigIntUncallable;
    type ProxyEllipticCurve = EllipticCurveUncallable;
    type ProxyStorage = Self;

    fn get_sc_address(&self) -> Address {
        unreachable!()
    }

    fn get_gas_left(&self) -> u64 {
        unreachable!()
    }

    fn get_dct_token_data(
        &self,
        _address: &Address,
        _token: &TokenIdentifier,
        _nonce: u64,
    ) -> crate::types::DctTokenData<Self::AmountType> {
        unreachable!()
    }

    fn direct_moax(&self, _to: &Address, _amount: &BigUintUncallable, _data: &[u8]) {
        unreachable!()
    }

    fn direct_moax_execute(
        &self,
        _to: &Address,
        _amount: &BigUintUncallable,
        _gas_limit: u64,
        _function: &[u8],
        _arg_buffer: &ArgBuffer,
    ) -> Result<(), &'static [u8]> {
        unreachable!()
    }

    fn direct_dct_execute(
        &self,
        _to: &Address,
        _token: &TokenIdentifier,
        _amount: &BigUintUncallable,
        _gas: u64,
        _function: &[u8],
        _arg_buffer: &ArgBuffer,
    ) -> Result<(), &'static [u8]> {
        unreachable!()
    }

    fn direct_dct_nft_execute(
        &self,
        _to: &Address,
        _token: &TokenIdentifier,
        _nonce: u64,
        _amount: &BigUintUncallable,
        _gas_limit: u64,
        _function: &[u8],
        _arg_buffer: &ArgBuffer,
    ) -> Result<(), &'static [u8]> {
        unreachable!()
    }

    fn async_call_raw(&self, _to: &Address, _amount: &BigUintUncallable, _data: &[u8]) -> ! {
        unreachable!()
    }

    fn deploy_contract(
        &self,
        _gas: u64,
        _amount: &BigUintUncallable,
        _code: &BoxedBytes,
        _code_metadata: CodeMetadata,
        _arg_buffer: &ArgBuffer,
    ) -> Option<Address> {
        unreachable!()
    }

    fn deploy_from_source_contract(
        &self,
        _gas: u64,
        _amount: &BigUintUncallable,
        _source_contract_address: &Address,
        _code_metadata: CodeMetadata,
        _arg_buffer: &ArgBuffer,
    ) -> Option<Address> {
        unreachable!()
    }

    fn upgrade_contract(
        &self,
        _sc_address: &Address,
        _gas: u64,
        _amount: &BigUintUncallable,
        _code: &BoxedBytes,
        _code_metadata: CodeMetadata,
        _arg_buffer: &ArgBuffer,
    ) {
        unreachable!()
    }

    fn execute_on_dest_context_raw(
        &self,
        _gas: u64,
        _address: &Address,
        _value: &BigUintUncallable,
        _function: &[u8],
        _arg_buffer: &ArgBuffer,
    ) -> Vec<BoxedBytes> {
        unreachable!()
    }

    fn execute_on_dest_context_raw_custom_result_range<F>(
        &self,
        _gas: u64,
        _address: &Address,
        _value: &BigUintUncallable,
        _function: &[u8],
        _arg_buffer: &ArgBuffer,
        _range_closure: F,
    ) -> Vec<BoxedBytes>
    where
        F: FnOnce(usize, usize) -> (usize, usize),
    {
        unreachable!()
    }

    fn execute_on_dest_context_by_caller_raw(
        &self,
        _gas: u64,
        _address: &Address,
        _value: &BigUintUncallable,
        _function: &[u8],
        _arg_buffer: &ArgBuffer,
    ) -> Vec<BoxedBytes> {
        unreachable!()
    }

    fn execute_on_same_context_raw(
        &self,
        _gas: u64,
        _address: &Address,
        _value: &BigUintUncallable,
        _function: &[u8],
        _arg_buffer: &ArgBuffer,
    ) {
        unreachable!()
    }

    fn storage_store_tx_hash_key(&self, _data: &[u8]) {
        unreachable!()
    }

    fn storage_load_tx_hash_key(&self) -> BoxedBytes {
        unreachable!()
    }

    fn call_local_dct_built_in_function(
        &self,
        _gas: u64,
        _function: &[u8],
        _arg_buffer: &ArgBuffer,
    ) -> Vec<BoxedBytes> {
        unreachable!()
    }

    fn sell_nft(
        &self,
        _nft_id: &TokenIdentifier,
        _nft_nonce: u64,
        _nft_amount: &Self::AmountType,
        _buyer: &Address,
        _payment_token: &TokenIdentifier,
        _payment_nonce: u64,
        _payment_amount: &Self::AmountType,
    ) -> Self::AmountType {
        unreachable!()
    }
}