message: feat(ckb): New cell TX structure
diff: //! Transaction using Cell.
  //! It is similar to Bitcoin Tx https://en.bitcoin.it/wiki/Protocol_documentation#tx
  +
  pub struct OutPoint {
  + // Hash of Transaction
  pub hash: [u8; 32],
  + // Index of cell_operations
  pub index: u32,
  }
  @@ -10,25 +13,26 @@ pub enum Lock {
  LockByScript(Vec<u8>),
  }
  -pub struct TransactionInput {
  +pub struct CellInput {
  pub previous_output: OutPoint,
  - // Script used to unlock stake. It can be empty, then the stake and its lock script must be
  - // found untouched in the output.
  - pub stake_unlock: Vec<u8>,
  - // script used to unlock data. It can be empty, then the data and its lock script must be found
  - // untouched in the output.
  - pub data_unlock: Vec<u8>,
  + // Depends on whether the operation is Transform or Destroy, this is the proof to transform
  + // lock or destroy lock.
  + pub unlock: Vec<u8>,
  }
  -pub struct TransactionOutput {
  - pub stake: i64,
  - pub stake_lock: Lock,
  +pub struct CellOutput {
  pub data: Vec<u8>,
  - pub data_lock: Lock,
  + pub capacity: u64,
  + pub transform_lock: Lock,
  + pub destroy_lock: Option<Lock>,
  +}
  +
  +pub struct CellOperation {
  + pub input: Option<CellInput>,
  + pub output: Option<CellOutput>,
  }
  pub struct Transaction {
  pub version: u32,
  - pub inputs: Vec<TransactionInput>,
  - pub outputs: Vec<TransactionOutput>,
  + pub cell_operations: Vec<CellOperation>,
  }
  