-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
meage develop into master #333
Conversation
Fixed MintToken Tx
Upgrade libs
#add ibc-nft-transfer Module
WalkthroughThe codebase has been updated to support the transfer of non-fungible tokens (NFTs) via the Inter-Blockchain Communication (IBC) protocol. This includes a renaming of a configuration property and the introduction of new modules, message structures, and services to handle NFT transfers across blockchain networks. The tests have been refactored to align with these updates. Changes
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChat with CodeRabbit Bot (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 2
Configuration used: CodeRabbit UI
Files ignored due to filter (34)
- dist/README.md
- dist/package.json
- dist/src/client.d.ts
- dist/src/client.js
- dist/src/modules/ibc/ibc-nft-transfer.d.ts
- dist/src/modules/ibc/ibc-nft-transfer.js
- dist/src/modules/ibc/ibc.d.ts
- dist/src/modules/ibc/ibc.js
- dist/src/modules/index.d.ts
- dist/src/modules/index.js
- dist/src/modules/protobuf.js
- dist/src/modules/tx.js
- dist/src/types/constants.d.ts
- dist/src/types/constants.js
- dist/src/types/ibc/ibc-nft-transfer.d.ts
- dist/src/types/ibc/ibc-nft-transfer.js
- dist/src/types/ibc/ibc.d.ts
- dist/src/types/ibc/ibc.js
- dist/src/types/index.d.ts
- dist/src/types/index.js
- dist/src/types/proto-types/ibc/applications/nft_transfer/v1/genesis_pb.js
- dist/src/types/proto-types/ibc/applications/nft_transfer/v1/packet_pb.js
- dist/src/types/proto-types/ibc/applications/nft_transfer/v1/query_grpc_web_pb.js
- dist/src/types/proto-types/ibc/applications/nft_transfer/v1/query_pb.js
- dist/src/types/proto-types/ibc/applications/nft_transfer/v1/transfer_pb.js
- dist/src/types/proto-types/ibc/applications/nft_transfer/v1/tx_grpc_web_pb.js
- dist/src/types/proto-types/ibc/applications/nft_transfer/v1/tx_pb.js
- dist/src/types/proto.d.ts
- dist/src/types/proto.js
- dist/src/types/types.d.ts
- dist/src/types/types.js
- dist/src/utils/crypto.d.ts
- package.json
- yarn.lock
Files selected for processing (29)
- README.md (9 hunks)
- proto/ibc/applications/nft_transfer/v1/genesis.proto (1 hunks)
- proto/ibc/applications/nft_transfer/v1/packet.proto (1 hunks)
- proto/ibc/applications/nft_transfer/v1/query.proto (1 hunks)
- proto/ibc/applications/nft_transfer/v1/transfer.proto (1 hunks)
- proto/ibc/applications/nft_transfer/v1/tx.proto (1 hunks)
- src/client.ts (5 hunks)
- src/modules/ibc/ibc-nft-transfer.ts (1 hunks)
- src/modules/ibc/ibc.ts (1 hunks)
- src/modules/index.ts (1 hunks)
- src/modules/protobuf.ts (1 hunks)
- src/modules/tx.ts (1 hunks)
- src/types/constants.ts (1 hunks)
- src/types/ibc/ibc-nft-transfer.ts (1 hunks)
- src/types/ibc/ibc.ts (2 hunks)
- src/types/index.ts (1 hunks)
- src/types/proto-types/ibc/applications/nft_transfer/v1/genesis_pb.js (1 hunks)
- src/types/proto-types/ibc/applications/nft_transfer/v1/packet_pb.js (1 hunks)
- src/types/proto-types/ibc/applications/nft_transfer/v1/query_grpc_web_pb.js (1 hunks)
- src/types/proto-types/ibc/applications/nft_transfer/v1/query_pb.js (1 hunks)
- src/types/proto-types/ibc/applications/nft_transfer/v1/transfer_pb.js (1 hunks)
- src/types/proto-types/ibc/applications/nft_transfer/v1/tx_grpc_web_pb.js (1 hunks)
- src/types/proto-types/ibc/applications/nft_transfer/v1/tx_pb.js (1 hunks)
- src/types/proto.ts (2 hunks)
- src/types/types.ts (1 hunks)
- src/utils/crypto.ts (1 hunks)
- test/bank.test.ts (6 hunks)
- test/ibcNftTransfer.test.ts (1 hunks)
- test/index.test.ts (1 hunks)
Files not summarized due to errors (1)
- src/types/proto-types/ibc/applications/nft_transfer/v1/query_pb.js: Error: Message exceeds token limit
Files skipped from review due to trivial changes (3)
- src/modules/ibc/ibc.ts
- src/types/types.ts
- src/utils/crypto.ts
Additional comments: 78
proto/ibc/applications/nft_transfer/v1/genesis.proto (1)
- 11-15: Ensure that the
Traces
type is correctly defined and used elsewhere in the codebase, and confirm that theparams
field is correctly handled as non-nullable.src/modules/index.ts (1)
- 20-21: The export statements for 'ibc' and 'ibc-nft-transfer' sub-modules are correctly added and follow the existing pattern of module exports.
test/index.test.ts (1)
- 7-24: Confirm that the removal of the
withNetwork
method andnetwork
variable does not negatively impact the tests and that all tests are still passing.src/types/index.ts (1)
- 28-29: The export statements for 'ibc/ibc' and 'ibc/ibc-nft-transfer' are correctly added and follow the existing pattern of module exports.
proto/ibc/applications/nft_transfer/v1/transfer.proto (1)
- 7-27: The
ClassTrace
andParams
messages are well-defined and documented, following protobuf conventions.proto/ibc/applications/nft_transfer/v1/packet.proto (1)
- 7-29: The
NonFungibleTokenPacketData
message is well-defined and documented, following protobuf conventions.src/types/constants.ts (1)
- 3-5: Confirm that the removal of the
Network
enum and the addition ofIris
andCosmos
to theChainNetwork
enum are reflected throughout the codebase without causing issues.src/types/ibc/ibc.ts (1)
- 1-4: Ensure that the updated import paths are correct and that the changes to the
MsgTransfer
class method calls are accurate and do not introduce any issues.proto/ibc/applications/nft_transfer/v1/tx.proto (1)
- 11-57: The
Msg
service andMsgTransfer
message are well-defined and documented, following protobuf conventions.src/types/ibc/ibc-nft-transfer.ts (1)
- 5-83: The
IbcNftTransferParam
interface andMsgIbcNftTransfer
class are well-defined and documented, following TypeScript conventions.test/ibcNftTransfer.test.ts (1)
- 5-109: The test cases for IBC NFT transfer functionality are well-structured and include appropriate timeouts for asynchronous operations.
proto/ibc/applications/nft_transfer/v1/query.proto (1)
- 12-114: The
Query
service and its associated request and response messages are well-defined and documented, following protobuf conventions.test/bank.test.ts (3)
1-2: The import statement has been updated to include
Consts
. Ensure thatConsts
is being used in the file and that the import is necessary.67-69: Refactoring to use a local
client
variable improves readability and potentially error handling by allowing for more granular control over the client instance.148-148: The test description has been updated to 'query Params'. Verify that this change accurately reflects the test's purpose and that the corresponding test implementation matches this description.
src/modules/ibc/ibc-nft-transfer.ts (1)
- 13-150: Introduced the
IbcNftTransfer
class with methods for handling NFT transfers and related queries. Ensure that the methods are correctly implemented and that they handle errors and edge cases appropriately.src/types/proto.ts (2)
26-26: Exported
ibc_nft_transfer_tx_pb
for IBC NFT transfer transactions. Confirm that the path to the required module is correct and that the module is used elsewhere in the codebase.56-56: Exported
ibc_nft_transfer_query_pb
for querying NFT transfers within the IBC module. Confirm that the path to the required module is correct and that the module is used elsewhere in the codebase.README.md (12)
28-28: The
network
property in theClientConfig
interface has been renamed tochainNetwork
. Ensure that all references to this property throughout the codebase have been updated accordingly.119-119: The
client.keys.add
function call has been updated. Verify that the new parameters are correctly implemented and that the function behaves as expected with these changes.123-123: The
client.keys.recover
function call has been updated. Verify that the new parameters are correctly implemented and that the function behaves as expected with these changes.127-127: The
client.keys.recover
function call for keystore recovery has been updated. Verify that the new parameters are correctly implemented and that the function behaves as expected with these changes.138-139: The
client.bank.send
function call has been updated. Verify that the new parameters are correctly implemented and that the function behaves as expected with these changes.163-163: The
coinswap
module and its functions have been listed. Verify that these functions are correctly implemented in the module and that the documentation accurately reflects the available functionality.183-183: The
farm
module and its functions have been listed. Verify that these functions are correctly implemented in the module and that the documentation accurately reflects the available functionality.206-206: The
htlc
module and its functions have been listed. Verify that these functions are correctly implemented in the module and that the documentation accurately reflects the available functionality.213-225: The
ibc
andibc-nft-transfer
modules and their functions have been listed. Verify that these functions are correctly implemented in the modules and that the documentation accurately reflects the available functionality.246-246: The
oracle
module and its functions have been listed. Verify that these functions are correctly implemented in the module and that the documentation accurately reflects the available functionality.257-257: The
random
module and its functions have been listed. Verify that these functions are correctly implemented in the module and that the documentation accurately reflects the available functionality.261-261: The
service
module and its functions have been listed. Verify that these functions are correctly implemented in the module and that the documentation accurately reflects the available functionality.src/types/proto-types/ibc/applications/nft_transfer/v1/tx_grpc_web_pb.js (7)
15-28: The imports and namespace setup appear to be correct and follow the expected structure for gRPC-Web service clients.
38-53: The
MsgClient
class is correctly defined with a constructor that initializes the gRPC-Web client with the provided hostname, credentials, and options. The 'format' option is set to 'text', which is typical for gRPC-Web.64-89: The
toObject
method and its static counterpart in theMsgClient
class are standard for gRPC-Web generated clients, allowing for serialization of the message to an object format.88-100: The method descriptor for the
Msg_Transfer
RPC call is correctly defined with the appropriate request and response types, as well as serialization and deserialization functions.133-140: The
transfer
method inMsgClient
is implemented correctly, making an RPC call with the provided request, metadata, and method descriptor.152-158: The
transfer
method inMsgPromiseClient
is implemented correctly, returning a promise for the RPC call which resolves to the response.242-242: The module export at the end of the file is correct, exporting the
proto.ibc.applications.nft_transfer.v1
namespace which contains the gRPC-Web client stubs.src/types/proto-types/ibc/applications/nft_transfer/v1/genesis_pb.js (6)
15-19: The imports for other protobuf definitions and the extension of the
proto
object are correct, ensuring that theGenesisState
message can reference other necessary protobuf messages.30-39: The
GenesisState
constructor is correctly defined, initializing the message with optional initial data and setting up repeated fields.64-90: The
toObject
method for theGenesisState
message is correctly implemented, providing a way to convert the message to a plain JavaScript object.99-140: The
deserializeBinary
method and its associateddeserializeBinaryFromReader
method are correctly implemented, allowing for the conversion from binary data to theGenesisState
message object.147-186: The
serializeBinary
method and its associatedserializeBinaryToWriter
method are correctly implemented, allowing for the conversion of theGenesisState
message object to binary data.189-279: The message fields for
GenesisState
, includingport_id
,traces
, andparams
, are correctly defined with appropriate getters, setters, and methods for handling repeated fields.src/client.ts (3)
- 240-245: The removal of the
withNetwork
method is noted. Verify that this method is not being used elsewhere in the codebase to prevent potential breaking changes.Verification successful
The search for the
withNetwork
method in the codebase did not return any results, indicating that the method has been successfully removed or is not referenced anywhere in the JavaScript files.* 304-309: The `ClientConfig` interface has been updated with the `chainNetwork` property. This change should be cross-verified with the usage of `ClientConfig` throughout the codebase to ensure consistency.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for any remaining usage of the withNetwork method. rg --type js "withNetwork"Length of output: 26
Verification successful
The examination of
src/client.ts
confirms the following changes:
- The
ClientConfig
interface has been updated to include achainNetwork
property of typeconsts.ChainNetwork
, which is optional.- The
DefaultClientConfig
class implements theClientConfig
interface and includes thechainNetwork
property as a non-optional member.These findings align with the PR objectives and the review comment, confirming that the
ClientConfig
interface andDefaultClientConfig
class have been correctly updated in the codebase.* 331-336: > Note: This review was outside the patches, so it was mapped to the patch with the greatest overlap. Original lines [331-345]Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify that the ClientConfig interface is correctly updated across the codebase. rg --type js "ClientConfig"Length of output: 616
Script:
#!/bin/bash # Search for "ClientConfig" in the source code, excluding the dist directory. rg "ClientConfig" --type js --glob '!dist/*'Length of output: 44
Script:
#!/bin/bash # Search for "ClientConfig" in all files, excluding the dist directory. rg "ClientConfig" --glob '!dist/*'Length of output: 671
Script:
#!/bin/bash # Examine the ClientConfig interface and DefaultClientConfig class in src/client.ts cat src/client.ts | grep -A 10 "interface ClientConfig" cat src/client.ts | grep -A 10 "class DefaultClientConfig"Length of output: 632
The
DefaultClientConfig
class has been updated to reflect the newchainNetwork
property. Ensure that all instances ofDefaultClientConfig
are initialized with the correctchainNetwork
value.Verification successful
The search has identified a single instance of
DefaultClientConfig
being instantiated insrc/index.ts
. To verify that this instance is initialized with the correctchainNetwork
value, we need to inspect thesrc/index.ts
file around the line whereDefaultClientConfig
is instantiated.
The context provided from
src/index.ts
shows thatDefaultClientConfig
is instantiated and then merged with an existingconfig
object passed to thenewClient
function. This suggests that thechainNetwork
property would be set based on the properties of the passedconfig
object. If theconfig
object has thechainNetwork
property correctly set, thencopyConfig
will also have the correctchainNetwork
value after theObject.assign
operation.Based on this, it can be inferred that the initialization of
DefaultClientConfig
with the correctchainNetwork
value is dependent on the caller ofnewClient
providing aconfig
object with the correct properties.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify that the DefaultClientConfig class is correctly instantiated across the codebase. rg --type js "new DefaultClientConfig"Length of output: 40
Script:
#!/bin/bash # Search for instances of DefaultClientConfig being instantiated without type restriction. rg "new DefaultClientConfig"Length of output: 91
Script:
#!/bin/bash # Inspect the instantiation of DefaultClientConfig in src/index.ts rg -C 5 "new DefaultClientConfig" src/index.tsLength of output: 316
src/modules/tx.ts (1)
- 460-466: The addition of the
MsgIbcNftTransfer
case to the switch statement in theTx
class is consistent with the PR objectives to support IBC NFT transfers. Ensure that thetypes.MsgIbcNftTransfer
is properly defined and that the case is handled correctly in the context of transaction processing.Verification successful
The search results confirm the existence of the
MsgIbcNftTransfer
type within the codebase, and it is indeed used in the context of transaction processing. TheMsgIbcNftTransfer
class is defined indist/src/types/ibc/ibc-nft-transfer.js
, and the casetypes.TxType.MsgIbcNftTransfer
is handled in bothdist/src/modules/tx.js
anddist/src/modules/protobuf.js
. This aligns with the PR objectives to support IBC NFT transfers.
- The
MsgIbcNftTransfer
type is properly defined.- The
MsgIbcNftTransfer
case is correctly handled in transaction processing.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify the existence and correctness of the MsgIbcNftTransfer type definition. rg --type js "MsgIbcNftTransfer" # Verify that the MsgIbcNftTransfer case is correctly handled in transaction processing. rg --type js "case types.TxType.MsgIbcNftTransfer"Length of output: 1571
src/types/proto-types/ibc/applications/nft_transfer/v1/transfer_pb.js (1)
- 1-377: The protobuf message definitions for
ClassTrace
andParams
, as well as their serialization/deserialization methods, are correctly implemented according to the protobuf JavaScript generated code standards.src/modules/protobuf.ts (1)
- 197-200: The addition of the
MsgIbcNftTransfer
case in theunpackMsg
method is correctly implemented and follows the established pattern for handling message types.src/types/proto-types/ibc/applications/nft_transfer/v1/packet_pb.js (7)
1-9: The file header correctly indicates that this is a generated file and should not be edited manually. This is important for maintainability, as any manual changes would be overwritten when the file is re-generated.
15-36: The
NonFungibleTokenPacketData
class is correctly exported to the global scope, and the debug display name is set appropriately. This is good for debugging purposes.38-43: The
repeatedFields_
property is set to an array of numbers corresponding to the repeated fields in the protobuf definition. This is used internally by thejspb.Message
class and is correctly defined.47-92: The
toObject
method and its static counterpart are implemented to provide an object representation of the proto message. This is standard for protobuf JavaScript bindings and is correctly implemented.95-162: The
deserializeBinary
anddeserializeBinaryFromReader
methods are implemented for deserializing binary data into the message object. The switch statement correctly handles the different fields based on the field number. This is standard for protobuf JavaScript bindings and is correctly implemented.166-249: The
serializeBinary
andserializeBinaryToWriter
methods are implemented for serializing the message object to binary data. The methods correctly check for the presence of fields before writing them, which is standard for protobuf JavaScript bindings.252-468: The getters and setters for each field are implemented using the
jspb.Message
methods. These methods handle optional and repeated fields correctly, providing a clean API for accessing and modifying the message fields.src/types/proto-types/ibc/applications/nft_transfer/v1/query_grpc_web_pb.js (3)
- 15-16: Ensure that the
grpc-web
package is included in the project's dependencies since it's required here.Verification successful
The
grpc-web
package is included in the project's dependencies inpackage.json
with the version^1.2.1
.* 40-55: The `QueryClient` constructor sets default options and initializes the client. Verify that the 'format' option set to 'text' is compatible with the expected server response format.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Verify that grpc-web is listed as a dependency in package.json rg '"grpc-web":' package.jsonLength of output: 57
- 84-103: The
methodDescriptor_Query_ClassTrace
is defined correctly for theClassTrace
gRPC call. Ensure that the serialization and deserialization functions are properly implemented in theQueryClassTraceResponse
andQueryClassTraceRequest
classes.src/types/proto-types/ibc/applications/nft_transfer/v1/tx_pb.js (18)
1-9: Ensure that the file header comment is consistent with the project's standards for generated code.
11-20: Verify that the required protobuf dependencies are correctly installed and accessible in the project's
node_modules
directory.35-44: Confirm that the
MsgTransfer
message structure aligns with the correspondingtx.proto
definitions and that all fields are correctly typed and named.56-65: Confirm that the
MsgTransferResponse
message structure aligns with the correspondingtx.proto
definitions and that all fields are correctly typed and named.77-86: Confirm that the
MsgUpdateParams
message structure aligns with the correspondingtx.proto
definitions and that all fields are correctly typed and named.98-107: Confirm that the
MsgUpdateParamsResponse
message structure aligns with the correspondingtx.proto
definitions and that all fields are correctly typed and named.132-163: Verify that the
toObject
method forMsgTransfer
correctly handles all fields, especially repeated and message fields, and that it adheres to the project's standards for object representations.542-565: Verify that the
toObject
method forMsgTransferResponse
correctly handles all fields and that it adheres to the project's standards for object representations.672-695: Verify that the
toObject
method forMsgUpdateParams
correctly handles all fields, especially message fields likeparams
, and that it adheres to the project's standards for object representations.853-875: Verify that the
toObject
method forMsgUpdateParamsResponse
correctly handles all fields and that it adheres to the project's standards for object representations.172-236: Verify that the
deserializeBinary
method forMsgTransfer
correctly handles all fields, especially repeated and message fields, and that it adheres to the project's standards for binary serialization.574-604: Verify that the
deserializeBinary
method forMsgTransferResponse
correctly handles all fields and that it adheres to the project's standards for binary serialization.705-739: Verify that the
deserializeBinary
method forMsgUpdateParams
correctly handles all fields, especially message fields likeparams
, and that it adheres to the project's standards for binary serialization.885-910: Verify that the
deserializeBinary
method forMsgUpdateParamsResponse
correctly handles all fields and that it adheres to the project's standards for binary serialization.257-323: Verify that the
serializeBinaryToWriter
method forMsgTransfer
correctly serializes all fields, especially repeated and message fields, and that it adheres to the project's standards for binary serialization.626-634: Verify that the
serializeBinaryToWriter
method forMsgTransferResponse
correctly serializes all fields and that it adheres to the project's standards for binary serialization.762-778: Verify that the
serializeBinaryToWriter
method forMsgUpdateParams
correctly serializes all fields, especially message fields likeparams
, and that it adheres to the project's standards for binary serialization.933-935: Verify that the
serializeBinaryToWriter
method forMsgUpdateParamsResponse
correctly serializes all fields and that it adheres to the project's standards for binary serialization.src/types/proto-types/ibc/applications/nft_transfer/v1/query_pb.js (1)
- 1-1688: Ensure that this generated file has not been manually altered, as custom changes can be overwritten by subsequent protobuf compilations and might lead to inconsistencies.
var jspb = require('google-protobuf'); | ||
var goog = jspb; | ||
var global = Function('return this')(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The global object is obtained using Function('return this')()
, which is a common but non-standard way to access the global object. It's worth noting that this could be replaced with globalThis
in modern environments for better clarity and standard compliance.
- var global = Function('return this')();
+ var global = globalThis;
Committable suggestion
❗ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
var jspb = require('google-protobuf'); | |
var goog = jspb; | |
var global = Function('return this')(); | |
var jspb = require('google-protobuf'); | |
var goog = jspb; | |
var global = globalThis; |
return this._ibc; | ||
} | ||
|
||
/** Ibc nft transfer module */ | ||
private _ibcNftTransfer?: modules.IbcNftTransfer; | ||
get ibcNftTransfer():modules.IbcNftTransfer{ | ||
if (!this._ibcNftTransfer) {this._ibcNftTransfer = new modules.IbcNftTransfer(this)} | ||
return this._ibcNftTransfer; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The search results confirm the existence of the IbcNftTransfer
class within the src/modules/ibc/ibc-nft-transfer.ts
file and its declaration file dist/src/modules/ibc/ibc-nft-transfer.d.ts
. However, there are no results for unit tests related to the IbcNftTransfer
class, which suggests that the tests may not have been implemented or are not named in a way that includes the class name directly.
- The
IbcNftTransfer
class is implemented and part of the codebase. - No unit tests for the
IbcNftTransfer
class were found in the search results.
Analysis chain
The addition of the _ibcNftTransfer
property and its getter method aligns with the PR objectives to support IBC NFT transfers. Ensure that the modules.IbcNftTransfer
class is properly implemented and tested since it's now part of the Client
class.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Verify the existence and correctness of the IbcNftTransfer module implementation.
rg --type js "class IbcNftTransfer"
# Verify the existence of unit tests for the IbcNftTransfer module.
rg --type js "describe\(.*IbcNftTransfer.*\)"
Length of output: 85
Script:
#!/bin/bash
# Broaden the search for the IbcNftTransfer class implementation without specifying file type.
rg "class IbcNftTransfer"
# Broaden the search for unit tests for the IbcNftTransfer module without specifying file type.
rg "describe\(.*IbcNftTransfer.*\)"
Length of output: 212
Summary by CodeRabbit
New Features
GenesisState
configuration.Documentation
Refactor
network
property tochainNetwork
in client configuration for clarity.Tests