package helpers import ( "encoding/binary" "ripple/commands" "ripple/types" ) func BuildFindPath(paymentID [32]byte, amount uint64, inOrOut byte, bandwidth uint64, penaltyRate uint32, fee uint64, hops byte, tax uint64) types.Instruction { buf := make([]byte, 70) copy(buf[:32], paymentID[:]) binary.BigEndian.PutUint64(buf[32:40], amount) buf[40] = inOrOut binary.BigEndian.PutUint64(buf[41:49], bandwidth) binary.BigEndian.PutUint32(buf[49:53], penaltyRate) binary.BigEndian.PutUint64(buf[53:61], fee) buf[61] = hops binary.BigEndian.PutUint64(buf[62:70], tax) return types.Instruction{ Command: commands.ACCOUNT_FIND_PATH, Arguments: buf, } } func BuildPathRecurse(paymentID [32]byte, depth byte) types.Instruction { buf := make([]byte, 33) copy(buf[:32], paymentID[:]) buf[32] = depth return types.Instruction{ Command: commands.ACCOUNT_PATH_RECURSE, Arguments: buf, } } func BuildPathFound(paymentID [32]byte, hops byte) types.Instruction { buf := make([]byte, 33) copy(buf[:32], paymentID[:]) buf[32] = hops return types.Instruction{ Command: commands.ACCOUNT_PATH_FOUND, Arguments: buf, } } func BuildPreparePath(paymentID [32]byte, creditorOut uint64) types.Instruction { buf := make([]byte, 40) copy(buf[:32], paymentID[:]) binary.BigEndian.PutUint64(buf[32:40], creditorOut) return types.Instruction{ Command: commands.ACCOUNT_PREPARE_PATH, Arguments: buf, } } func BuildCommitPayment(paymentID [32]byte) types.Instruction { return types.Instruction{ Command: commands.ACCOUNT_COMMIT_PAYMENT, Arguments: paymentID[:], } } func BuildSealPayment(paymentID [32]byte) types.Instruction { return types.Instruction{ Command: commands.ACCOUNT_SEAL_PAYMENT, Arguments: paymentID[:], } } func BuildFinalizePayment(paymentID [32]byte, preimage [32]byte) types.Instruction { buf := make([]byte, 64) copy(buf[:32], paymentID[:]) copy(buf[32:64], preimage[:]) return types.Instruction{ Command: commands.ACCOUNT_FINALIZE_PAYMENT, Arguments: buf, } } func BuildAckFinalize(pid [32]byte) types.Instruction { return types.Instruction{ Command: commands.ACCOUNT_ACK_FINALIZE, Arguments: pid[:], } } func BuildCancelPayment(paymentID [32]byte, preimage [32]byte) types.Instruction { buf := make([]byte, 64) copy(buf[:32], paymentID[:]) copy(buf[32:64], preimage[:]) return types.Instruction{ Command: commands.ACCOUNT_CANCEL_PAYMENT, Arguments: buf, } } func BuildAckCancel(pid [32]byte) types.Instruction { return types.Instruction{ Command: commands.ACCOUNT_ACK_CANCEL, Arguments: pid[:], } } func BuildRollbackPayment(paymentID [32]byte) types.Instruction { return types.Instruction{ Command: commands.ACCOUNT_ROLLBACK_PAYMENT, Arguments: paymentID[:], } } func BuildCleanupPayment(paymentID [32]byte) types.Instruction { return types.Instruction{ Command: commands.ACCOUNT_CLEANUP_PAYMENT, Arguments: paymentID[:], } } func BuildSwarmRedistribution(tax uint64, width uint64) types.Instruction { buf := make([]byte, 16) binary.BigEndian.PutUint64(buf[0:8], tax) binary.BigEndian.PutUint64(buf[8:16], width) return types.Instruction{ Command: commands.ACCOUNT_SWARM_REDISTRIBUTION, Arguments: buf, } }