OpenDive's Sui SDK (Swift & Unity)
Questions:
- NestedResults and destructuring
- Discussion on architecture / diagrams we've created
Discussion
- Developed Swift, Unity (C#), and Kotlin SDKs for Sui
- including an ability to prepare/build transactions
- Nested results
- in Typescript you can pattern match and destructure things like splitcoin results, but you can’t do this in C#
- Could use an array, list, anything dynamically sized
-
Transfer to object
Noted Areas of Improvement
Iguazu Finance
Questions:
- Regarding consensus, in this video(https://youtu.be/YZRazqlZQGY?t=1716) around 28:30, George explains that the consensus algorithm is absolutely kept secret only to validators. How should trading platforms like us persuade the users that validators are not playing any MEV attacks on the users during the consensus mechanisms?
- Would having multiple shared objects as input parameters to a function potentially cause delays in transaction finality?
- Can the contents of confidential NFTs still be subject to certain computation? (e.g. asserting equality or inequality) or would this require MPC features in the validator levels?
Discussion
- Consensus / Time to Finality with multiple shared objects
- Have a function that takes multiple shared objects as input
- When we call this function in multiple transactions, they’re ordered randomly
- When there are multiple shared objects, the latency for receiving the transaction digest gets longer and longer
- Using more shared objects should increase the cost of execution, but it’s surprising that it’s impacted observable latency - what are the parameters? Is it the same or different set of shared objects?
- One shared object shared with all wallets (in deepbook)
- Margin account - One other shared object (more personalized) using the capability design so that multiple wallets can make orders to the first shared object
- Consensus commits every 2 seconds, all transactions within this are sorted by gas price, and transactions with the same gas price are unpredictable on the client side (but deterministic everywhere)
- ordering might depend on transaction IDs and other things that can appear random
- Is there a way to use consensus to re-order transactions against the consensus?
- It’s hard, but possible to do MEV as a Sui validator, because the mempool is kept small
- Extracting MEV isn’t impossible, but would be much more involved even as a validator, because they don’t know what transactions are going into the next commit.
- Potentially, we can employ strategies like encrypting transactions to prevent validators from doing this.
- Smashing multiple transactions into one PTB will ensure that the transactions are strongly ordered
- This should hopefully be cheaper, because there will be some shared data usage that will amortize over all the sub-transactions. This might not always be true.