Skip to content

Commit

Permalink
added some structs, adding squid structs next
Browse files Browse the repository at this point in the history
  • Loading branch information
Foivos committed Jun 7, 2024
1 parent e943312 commit 9b6be0f
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 0 deletions.
26 changes: 26 additions & 0 deletions move/squid/sources/squid/types/deepbook_v2_swap_data.move
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
module squid::deepbook_v2_swap_data {
public struct DeepbookV2SwapData {
swap_type: u8,
pool_id: address,
has_base: bool,
min_output: u64,
base_type: String,
quote_type: String,
lot_size: u64,
should_sweep: bool,
}

entry fun new(data: vector<u8>): DeepbookV2SwapData {
let bcs = bcs::new(data);
DeepbookV2SwapData {
swap_type: bcs.peel_u8(),
pool_id: address(),
has_base: bcs.peel_bool(),
min_output: bcs.peel_u64(),
base_type: ascii::string(bcs.peel_vec_u8()),
quote_type: ascii::string(bcs.peel_vec_u8()),
lot_size: bcs.peel_u64(),
should_sweep: bcs.peel_bool(),
}
}
}
85 changes: 85 additions & 0 deletions scripts/bcs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
const { bcs } = require('@mysten/sui.js/bcs');


function getAxelarStructs() {

Check failure on line 4 in scripts/bcs.js

View workflow job for this annotation

GitHub Actions / lint

'getAxelarStructs' is defined but never used
const Bytes32 = bcs.struct('Bytes32', {
bytes: bcs.Address,
});

const Message = bcs.struct('Message', {
source_chain: bcs.String,
message_id: bcs.String,
source_address: bcs.String,
destination_id: Address,

Check failure on line 13 in scripts/bcs.js

View workflow job for this annotation

GitHub Actions / lint

'Address' is not defined
payload_hash: Bytes32,
});

const WeightedSigner = bcs.struct('WeightedSigner', {
pubkey: bcs.vector(bcs.U8),
weight: bcs.U128,
});

const WeightedSigners = bcs.struct('WeightedSigners', {
signers: bcs.vector(WeightedSigner),
threshold: bcs.U128,
nonce: Bytes32,
});

const Signature = bcs.struct('Signature', {
bytes: bcs.vector(bcs.U8),
})

const Proof = bcs.struct('Proof', {
signers: WeightedSigners,
signatures: bcs.vector(Signature),
})

const MessageToSign = bcs.struct('MessageToSign', {
domain_separator: Bytes32,
signers_hash: Bytes32,
data_hash: Bytes32,
});

const Function = bcs.struct('Function', {
package_id: bcs.Address,
module_name: bcs.String,
name: bcs.String,
});

/// Arguments are prefixed with:
/// - 0 for objects followed by exactly 32 bytes that cointain the object id
/// - 1 for pures followed by the bcs encoded form of the pure
/// - 2 for the call contract object, followed by nothing (to be passed into the target function)
/// - 3 for the payload of the contract call (to be passed into the intermediate function)
/// - 4 for an argument returned from a previous move call, followed by a u8 specified which call to get the return of (0 for the first transaction AFTER the one that gets ApprovedMessage out), and then another u8 specifying which argument to input.
const MoveCall = bcs.struct('MoveCall', {
function: Function,
arguments: bcs.vector(bcs.vector(bcs.U8)),
type_arguments: bcs.vector(bcs.String),
});

const Transaction = bcs.struct('Transaction', {
is_final: bcs.Bool,
move_calls: bcs.vector(MoveCall),
});

const EncodedMessage = bcs.struct('EncodedMessage', {
message_type: bcs.U8,
data: bcs.vector(bcs.U8),
});
return {
Bytes32,
Message,
WeightedSigner,
WeightedSigners,
Signature,
Proof,
MessageToSign,
Function,
MoveCall,
Transaction,
EncodedMessage,
}
};


0 comments on commit 9b6be0f

Please sign in to comment.