@@ -2,26 +2,30 @@ use assert_matches::assert_matches;
22use hedera:: {
33 Hbar ,
44 Status ,
5- TokenCreateTransaction ,
65 TokenDeleteTransaction ,
76} ;
8- use time:: {
9- Duration ,
10- OffsetDateTime ,
11- } ;
127
138use crate :: account:: Account ;
149use crate :: common:: {
1510 setup_nonfree,
1611 TestEnvironment ,
1712} ;
13+ use crate :: token:: {
14+ CreateFungibleToken ,
15+ TokenKeys ,
16+ } ;
1817
1918#[ tokio:: test]
20- async fn basic ( ) -> anyhow:: Result < ( ) > {
19+ async fn all_keys ( ) -> anyhow:: Result < ( ) > {
2120 let Some ( TestEnvironment { config : _, client } ) = setup_nonfree ( ) else { return Ok ( ( ) ) } ;
2221
2322 let account = Account :: create ( Hbar :: new ( 0 ) , & client) . await ?;
24- let token = super :: FungibleToken :: create ( & client, & account, 0 ) . await ?;
23+ let token = super :: FungibleToken :: create (
24+ & client,
25+ & account,
26+ CreateFungibleToken { initial_supply : 0 , keys : TokenKeys :: ALL_OWNER } ,
27+ )
28+ . await ?;
2529
2630 TokenDeleteTransaction :: new ( )
2731 . token_id ( token. id )
@@ -42,23 +46,10 @@ async fn only_admin_key() -> anyhow::Result<()> {
4246
4347 let account = Account :: create ( Hbar :: new ( 0 ) , & client) . await ?;
4448
45- // n.b. `FungibleToken::create` sets all keys for convenience sake.
46- let token_id = TokenCreateTransaction :: new ( )
47- . name ( "ffff" )
48- . symbol ( "F" )
49- . treasury_account_id ( account. id )
50- . admin_key ( account. key . public_key ( ) )
51- . expiration_time ( OffsetDateTime :: now_utc ( ) + Duration :: minutes ( 5 ) )
52- . sign ( account. key . clone ( ) )
53- . execute ( & client)
54- . await ?
55- . get_receipt ( & client)
56- . await ?
57- . token_id
58- . unwrap ( ) ;
49+ let token = super :: FungibleToken :: create ( & client, & account, Default :: default ( ) ) . await ?;
5950
6051 TokenDeleteTransaction :: new ( )
61- . token_id ( token_id )
52+ . token_id ( token . id )
6253 . sign ( account. key . clone ( ) )
6354 . execute ( & client)
6455 . await ?
@@ -75,7 +66,7 @@ async fn missing_admin_key_signature_fails() -> anyhow::Result<()> {
7566 let Some ( TestEnvironment { config : _, client } ) = setup_nonfree ( ) else { return Ok ( ( ) ) } ;
7667
7768 let account = Account :: create ( Hbar :: new ( 0 ) , & client) . await ?;
78- let token = super :: FungibleToken :: create ( & client, & account, 0 ) . await ?;
69+ let token = super :: FungibleToken :: create ( & client, & account, Default :: default ( ) ) . await ?;
7970
8071 let res = TokenDeleteTransaction :: new ( )
8172 . token_id ( token. id )
@@ -95,6 +86,34 @@ async fn missing_admin_key_signature_fails() -> anyhow::Result<()> {
9586 Ok ( ( ) )
9687}
9788
89+ #[ tokio:: test]
90+ async fn missing_admin_key_fails ( ) -> anyhow:: Result < ( ) > {
91+ let Some ( TestEnvironment { config : _, client } ) = setup_nonfree ( ) else { return Ok ( ( ) ) } ;
92+ let account = Account :: create ( Hbar :: new ( 0 ) , & client) . await ?;
93+
94+ let token = super :: FungibleToken :: create (
95+ & client,
96+ & account,
97+ CreateFungibleToken { initial_supply : 0 , keys : TokenKeys :: NONE } ,
98+ )
99+ . await ?;
100+
101+ let res = TokenDeleteTransaction :: new ( )
102+ . token_id ( token. id )
103+ . sign ( token. owner . key . clone ( ) )
104+ . execute ( & client)
105+ . await ?
106+ . get_receipt ( & client)
107+ . await ;
108+
109+ assert_matches ! (
110+ res,
111+ Err ( hedera:: Error :: ReceiptStatus { status: Status :: TokenIsImmutable , transaction_id: _ } )
112+ ) ;
113+
114+ Ok ( ( ) )
115+ }
116+
98117#[ tokio:: test]
99118async fn missing_token_id_fails ( ) -> anyhow:: Result < ( ) > {
100119 let Some ( TestEnvironment { config : _, client } ) = setup_nonfree ( ) else { return Ok ( ( ) ) } ;
0 commit comments