@mean-dao/ddca
Version:
Typescript library to interact with the Decentralized DCA program
546 lines (545 loc) • 16.3 kB
JSON
{
"version": "0.1.0",
"name": "ddca",
"instructions": [
{
"name": "create",
"accounts": [
{
"name": "ownerAccount",
"isMut": true,
"isSigner": true
},
{
"name": "ownerFromTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ddcaAccount",
"isMut": true,
"isSigner": false
},
{
"name": "fromMint",
"isMut": false,
"isSigner": false
},
{
"name": "fromTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "toMint",
"isMut": false,
"isSigner": false
},
{
"name": "toTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "wakeAccount",
"isMut": true,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "clock",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "blockHeight",
"type": "u64"
},
{
"name": "pdaBump",
"type": "u8"
},
{
"name": "depositAmount",
"type": "u64"
},
{
"name": "amountPerSwap",
"type": "u64"
},
{
"name": "intervalInSeconds",
"type": "u64"
}
]
},
{
"name": "wakeAndSwap",
"accounts": [
{
"name": "wakeAccount",
"isMut": true,
"isSigner": true
},
{
"name": "ddcaAccount",
"isMut": true,
"isSigner": false
},
{
"name": "fromMint",
"isMut": false,
"isSigner": false
},
{
"name": "fromTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "toMint",
"isMut": false,
"isSigner": false
},
{
"name": "toTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "hlaProgram",
"isMut": false,
"isSigner": false
},
{
"name": "hlaOperatingAccount",
"isMut": true,
"isSigner": false
},
{
"name": "hlaOperatingFromTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "clock",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "swapMinOutAmount",
"type": "u64"
},
{
"name": "swapSlippage",
"type": "u64"
}
]
},
{
"name": "addFunds",
"accounts": [
{
"name": "ownerAccount",
"isMut": true,
"isSigner": true
},
{
"name": "ownerFromTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ddcaAccount",
"isMut": true,
"isSigner": false
},
{
"name": "fromTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "wakeAccount",
"isMut": true,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "clock",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "depositAmount",
"type": "u64"
}
]
},
{
"name": "withdraw",
"accounts": [
{
"name": "ownerAccount",
"isMut": true,
"isSigner": true
},
{
"name": "ownerToTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ddcaAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ddcaToTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "operatingAccount",
"isMut": false,
"isSigner": false
},
{
"name": "operatingToTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "toMint",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "withdrawAmount",
"type": "u64"
}
]
},
{
"name": "close",
"accounts": [
{
"name": "ownerAccount",
"isMut": true,
"isSigner": true
},
{
"name": "wakeAccount",
"isMut": true,
"isSigner": true
},
{
"name": "ownerFromTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ownerToTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "fromMint",
"isMut": false,
"isSigner": false
},
{
"name": "toMint",
"isMut": false,
"isSigner": false
},
{
"name": "ddcaAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ddcaFromTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ddcaToTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "operatingAccount",
"isMut": false,
"isSigner": false
},
{
"name": "operatingFromTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "operatingToTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "associatedTokenProgram",
"isMut": false,
"isSigner": false
}
],
"args": []
}
],
"accounts": [
{
"name": "DdcaAccount",
"type": {
"kind": "struct",
"fields": [
{
"name": "ownerAccAddr",
"type": "publicKey"
},
{
"name": "fromMint",
"type": "publicKey"
},
{
"name": "fromMintDecimals",
"type": "u8"
},
{
"name": "fromTaccAddr",
"type": "publicKey"
},
{
"name": "toMint",
"type": "publicKey"
},
{
"name": "toMintDecimals",
"type": "u8"
},
{
"name": "toTaccAddr",
"type": "publicKey"
},
{
"name": "blockHeight",
"type": "u64"
},
{
"name": "pdaBump",
"type": "u8"
},
{
"name": "totalDepositsAmount",
"type": "u64"
},
{
"name": "amountPerSwap",
"type": "u64"
},
{
"name": "startTs",
"type": "u64"
},
{
"name": "intervalInSeconds",
"type": "u64"
},
{
"name": "lastCompletedSwapTs",
"type": "u64"
},
{
"name": "isPaused",
"type": "bool"
},
{
"name": "swapCount",
"type": "u64"
},
{
"name": "swapAvgRate",
"type": "u64"
},
{
"name": "lastDepositTs",
"type": "u64"
},
{
"name": "wakeAccAddr",
"type": "publicKey"
},
{
"name": "createdSlot",
"type": "u64"
},
{
"name": "lastDepositSlot",
"type": "u64"
}
]
}
}
],
"errors": [
{
"code": 6000,
"name": "InvalidAmounts",
"msg": "Deposit amount must be a multiple of the amount per swap"
},
{
"code": 6001,
"name": "InvalidSwapsCount",
"msg": "The number of recurring swaps must be greater than 1"
},
{
"code": 6002,
"name": "DdcaIsPaused",
"msg": "This DDCA is paused"
},
{
"code": 6003,
"name": "InsufficientBalanceForSwap",
"msg": "Insufficient balance for swap"
},
{
"code": 6004,
"name": "InvalidSwapSchedule",
"msg": "This DDCA is not schedule for the provided time"
},
{
"code": 6005,
"name": "InvalidSwapSlippage",
"msg": "Invalid swap slippage"
},
{
"code": 6006,
"name": "InvalidInterval",
"msg": "Invalid interval"
},
{
"code": 6007,
"name": "SwapAlreadyCompleted",
"msg": "A swap for this time window was already completed"
},
{
"code": 6008,
"name": "InsufficientDepositAmount",
"msg": "Insufficient deposit amount"
},
{
"code": 6009,
"name": "InvalidSwapAmount",
"msg": "Amount per swap must be positive"
}
],
"metadata": {
"address": "3nmm1awnyhABJdoA25MYVksxz1xnpUFeepJJyRTZfsyD"
}
}