Skip to content

Build Deepbook TX

Build Deepbook TX #82

---
name: Build Deepbook TX
on:
workflow_dispatch:
inputs:
transaction_type:
description: 'select transaction type to create'
type: choice
options:
- Create Pool
- Upgrade Protocol
- Enable Version
- Disable Version
- Unregister Pool and Create
sui_tools_image:
description: 'image reference of sui_tools'
default: 'mysten/sui-tools:mainnet'
rpc:
description: 'RPC url'
required: true
default: 'https://suins-rpc.mainnet.sui.io:443'
type: string
gas_object_id:
description: 'object id to get gas from for multisig transaction'
required: true
type: string
default: '0x4850650e3566b000ea159a4ae7d13c93803ceabf1f483a7f796c7cc0b2f5ce4b'
jobs:
deepbook:
name: deepbook create tx
runs-on: ubuntu-latest
steps:
- name: Selected transaction type
run: |
echo ${{ inputs.transaction_type }}
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install Homebrew
run: |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo "/home/linuxbrew/.linuxbrew/bin" >> $GITHUB_PATH
- name: Install Sui using Homebrew
run: brew install sui
- name: YAML Setup
run: |
sui client --yes new-env --rpc https://fullnode.mainnet.sui.io:443 --alias mainnet
sui client switch --env mainnet
- name: NPM BUILD TX Environment
uses: actions/setup-node@v4
with:
node-version: 18
- name: Do a global PNPM install
run: |
npm install -g pnpm
- name: Set up working directory and install dependencies
run: |
pnpm install
- name: Upgrade Protocol
if: ${{ inputs.transaction_type == 'Upgrade Protocol' }}
env:
NODE_ENV: production
GAS_OBJECT: ${{ inputs.gas_object_id }}
NETWORK: mainnet
ORIGIN: gh_action
RPC_URL: ${{ inputs.rpc }}
run: |
cd scripts && pnpm install && pnpm ts-node transactions/mainPackageUpgrade.ts
- name: Create Pool
if: ${{ inputs.transaction_type == 'Create Pool' }}
env:
NODE_ENV: production
GAS_OBJECT: ${{ inputs.gas_object_id }}
NETWORK: mainnet
ORIGIN: gh_action
run: |
cd scripts && pnpm install && pnpm ts-node transactions/createPool.ts
- name: Unregister Pool and Create
if: ${{ inputs.transaction_type == 'Unregister Pool and Create' }}
env:
NODE_ENV: production
GAS_OBJECT: ${{ inputs.gas_object_id }}
NETWORK: mainnet
ORIGIN: gh_action
run: |
cd scripts && pnpm install && pnpm ts-node transactions/unregisterPoolAndCreate.ts
- name: Enable Version
if: ${{ inputs.transaction_type == 'Enable Version' }}
env:
NODE_ENV: production
GAS_OBJECT: ${{ inputs.gas_object_id }}
NETWORK: mainnet
ORIGIN: gh_action
run: |
cd scripts && pnpm install && pnpm ts-node transactions/enableVersion.ts
- name: Disable Version
if: ${{ inputs.transaction_type == 'Disable Version' }}
env:
NODE_ENV: production
GAS_OBJECT: ${{ inputs.gas_object_id }}
NETWORK: mainnet
ORIGIN: gh_action
run: |
cd scripts && pnpm install && pnpm ts-node transactions/disableVersion.ts
- name: Show Transaction Data (To sign)
run: |
cat scripts/tx/tx-data.txt
- name: Upload Transaction Artifact
uses: actions/upload-artifact@v3
with:
name: transaction-data
path: scripts/tx