v0.1.0-pre.062
This commit is contained in:
@@ -1,62 +1,39 @@
|
||||
<!-- file: idls/001.README.md -->
|
||||
<!-- version: 2 -->
|
||||
|
||||
# IDL locales
|
||||
# Répertoire IDL v3
|
||||
|
||||
Ce répertoire contient les IDL téléchargées depuis des sources officielles ou de référence et utilisées pour auditer les décodeurs, matérialiseurs et exécuteurs.
|
||||
Ce répertoire contient 91 fichiers IDL JSON issus exclusivement de `idls_v2.zip`.
|
||||
Le contenu brut des JSON n'a pas été modifié ; seuls les noms de fichiers ont été normalisés.
|
||||
|
||||
## Règle d’admission
|
||||
|
||||
Une IDL devient une source locale active lorsqu’un décodeur ou un exécuteur correspondant est développé. À ce moment-là, il faut :
|
||||
|
||||
1. télécharger l’IDL utilisée ;
|
||||
2. vérifier son Program ID et sa provenance ;
|
||||
3. conserver son contenu JSON inchangé ;
|
||||
4. la renommer selon la convention canonique ;
|
||||
5. documenter sa version ou son commit lorsqu’ils sont connus ;
|
||||
6. ajouter des tests comparant, selon le périmètre disponible, l’IDL, le runtime, les builders et l’interface officielle.
|
||||
|
||||
Les fichiers JSON ne doivent pas recevoir de commentaires ni être reformattés uniquement pour satisfaire la documentation.
|
||||
|
||||
## Convention de nommage
|
||||
|
||||
Forme principale :
|
||||
## Convention
|
||||
|
||||
```text
|
||||
<PROGRAM_ID>.<protocol_type>.<protocol_code>.json
|
||||
<famille-kb-lib>.<program-id>.<chemin-module>[.<génération-ou-sous-système>].V<version-idl>.from_<source>.json
|
||||
```
|
||||
|
||||
Exemple actif :
|
||||
- `famille-kb-lib` correspond au premier niveau fonctionnel de `kb-lib` : `solana`, `spl`,
|
||||
`metadata`, `launchpad`, `fees`, `strategy`, etc.
|
||||
- `program-id` est l'identifiant canonique du programme.
|
||||
- `chemin-module` correspond au module fonctionnel cible sans les rôles `decoder` ou `executor`.
|
||||
- `v1`, `v3`, `v4` désignent une génération de programme ou de surface.
|
||||
- `V3_0_1` désigne la version déclarée par l'IDL.
|
||||
- `from_solscan` et `from_github_solana_program` indiquent la provenance.
|
||||
|
||||
```text
|
||||
metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s.metadata.metaplex_token_metadata.json
|
||||
```
|
||||
## Documents
|
||||
|
||||
Lorsqu’il faut conserver plusieurs versions réellement distinctes d’une même IDL :
|
||||
- `../docs/IDL_AUDIT.md` : inventaire, validation JSON, versions et empreintes.
|
||||
- `../docs/MISSING_PROGRAM_IDLS.md` : programmes connus sans IDL présente ou sans IDL officielle identifiée.
|
||||
- `../docs/IDL_TO_KB_LIB_NOMENCLATURE.md` : correspondance entre chaque IDL et le module `kb-lib`.
|
||||
|
||||
```text
|
||||
<PROGRAM_ID>.<protocol_type>.<protocol_code>.<version>.json
|
||||
```
|
||||
## Décisions architecturales intégrées
|
||||
|
||||
Suffixes admis, par ordre de préférence :
|
||||
- `admin/pump_fees` devient `fees/pump_fees`.
|
||||
- `admin/jupiter_lock` devient `vesting/jupiter_lock`.
|
||||
- `amm/metadao_futarchy_amm` devient `governance/metadao_futarchy`.
|
||||
- `amm/virtuals` devient `launchpad/virtuals`.
|
||||
- `router/jupiter_dca` devient `strategy/jupiter_dca`.
|
||||
- une famille `storage` est proposée pour `storage/solana_record`.
|
||||
|
||||
```text
|
||||
v<semver>
|
||||
commit-<short_hash>
|
||||
slot-<deployment_slot>
|
||||
date-YYYY-MM-DD
|
||||
```
|
||||
|
||||
La version ne doit jamais être inventée. Tant qu’une seule IDL est conservée pour un programme, le suffixe de version reste facultatif.
|
||||
|
||||
## Classification
|
||||
|
||||
- `protocol_type` représente la famille fonctionnelle stable, par exemple `metadata`, `launchpad`, `amm`, `clmm`, `lending`, `router`, `vault` ou `orderbook`.
|
||||
- `protocol_code` représente le protocole ou la surface exacte, par exemple `metaplex_token_metadata`.
|
||||
- La classification est validée lors de l’implémentation du décodeur ou de l’exécuteur ; les IDL de référence non encore utilisées ne doivent pas être renommées massivement sur une classification incertaine.
|
||||
|
||||
## Intégrité
|
||||
|
||||
Le renommage du fichier est autorisé. Le contenu de l’IDL doit rester identique à la source téléchargée.
|
||||
|
||||
Les graphies externes telles que `token2022`, les noms de types Anchor et les identifiants publiés dans l’IDL ne doivent pas être adaptés à la nomenclature interne du workspace.
|
||||
Ces changements de modules ne sont pas appliqués au code Rust dans cette archive ; ils servent de cible
|
||||
pour la prochaine refactorisation de `kb-lib`.
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"version":"0.0.0","name":"add_decimals","instructions":[{"name":"initializeWrapper","accounts":[{"name":"wrapper","isMut":true,"isSigner":false},{"name":"wrapperUnderlyingTokens","isMut":false,"isSigner":false},{"name":"underlyingMint","isMut":false,"isSigner":false},{"name":"wrapperMint","isMut":false,"isSigner":false},{"name":"payer","isMut":false,"isSigner":true},{"name":"rent","isMut":false,"isSigner":false},{"name":"systemProgram","isMut":false,"isSigner":false}],"args":[{"name":"nonce","type":"u8"}]},{"name":"deposit","accounts":[{"name":"wrapper","isMut":false,"isSigner":false},{"name":"wrapperMint","isMut":true,"isSigner":false},{"name":"wrapperUnderlyingTokens","isMut":true,"isSigner":false},{"name":"owner","isMut":false,"isSigner":true},{"name":"userUnderlyingTokens","isMut":true,"isSigner":false},{"name":"userWrappedTokens","isMut":true,"isSigner":false},{"name":"tokenProgram","isMut":false,"isSigner":false}],"args":[{"name":"depositAmount","type":"u64"}]},{"name":"withdraw","accounts":[{"name":"wrapper","isMut":false,"isSigner":false},{"name":"wrapperMint","isMut":true,"isSigner":false},{"name":"wrapperUnderlyingTokens","isMut":true,"isSigner":false},{"name":"owner","isMut":false,"isSigner":true},{"name":"userUnderlyingTokens","isMut":true,"isSigner":false},{"name":"userWrappedTokens","isMut":true,"isSigner":false},{"name":"tokenProgram","isMut":false,"isSigner":false}],"args":[{"name":"maxBurnAmount","type":"u64"}]}],"accounts":[{"name":"WrappedToken","type":{"kind":"struct","fields":[{"name":"decimals","type":"u8"},{"name":"multiplier","type":"u64"},{"name":"wrapperUnderlyingMint","type":"publicKey"},{"name":"wrapperUnderlyingTokens","type":"publicKey"},{"name":"wrapperMint","type":"publicKey"}]}}],"events":[{"name":"InitEvent","fields":[{"name":"payer","type":"publicKey","index":false},{"name":"decimals","type":"u8","index":false},{"name":"multiplier","type":"u64","index":false},{"name":"wrapperUnderlyingMint","type":"publicKey","index":false},{"name":"wrapperUnderlyingTokens","type":"publicKey","index":false},{"name":"wrapperMint","type":"publicKey","index":false}]},{"name":"DepositEvent","fields":[{"name":"owner","type":"publicKey","index":false},{"name":"underlyingMint","type":"publicKey","index":false},{"name":"wrappedMint","type":"publicKey","index":false},{"name":"depositAmount","type":"u64","index":false},{"name":"mintAmount","type":"u64","index":false}]},{"name":"WithdrawEvent","fields":[{"name":"owner","type":"publicKey","index":false},{"name":"underlyingMint","type":"publicKey","index":false},{"name":"wrappedMint","type":"publicKey","index":false},{"name":"withdrawAmount","type":"u64","index":false},{"name":"burnAmount","type":"u64","index":false},{"name":"dustAmount","type":"u64","index":false}]}],"errors":[{"code":300,"name":"InitNonEmptyAccount","msg":"Wrapper underlying tokens account must be empty."},{"code":301,"name":"InitWrapperSupplyNonZero","msg":"Supply of the wrapper mint is non-zero"},{"code":302,"name":"InitWrapperUnderlyingOwnerMismatch","msg":"Owner of the wrapper underlying tokens account must be the wrapper"},{"code":303,"name":"InitWrapperUnderlyingMintMismatch","msg":"Underlying mint does not match underlying tokens account mint"},{"code":304,"name":"InitMintAuthorityMismatch","msg":"Mint authority mismatch"},{"code":305,"name":"InitMultiplierOverflow","msg":"Initial decimals too high"},{"code":306,"name":"InitWrapperDecimalsTooLow","msg":"The number of target decimals must be greater than or equal to the underlying asset's decimals."},{"code":307,"name":"MintAmountOverflow","msg":"Mint amount overflow. This error happens when the token cannot support this many decimals added to the token."},{"code":308,"name":"InvalidBurnAmount","msg":"Failed to convert burn amount from withdraw amount."},{"code":309,"name":"InvalidWithdrawAmount","msg":"Failed to convert withdraw amount from wrapped amount."},{"code":310,"name":"InsufficientUnderlyingBalance","msg":"User does not have enough underlying tokens"},{"code":311,"name":"InsufficientWrappedBalance","msg":"User does not have enough wrapped tokens"},{"code":312,"name":"ZeroAmount","msg":"Cannot send zero tokens"},{"code":313,"name":"UnknownAction","msg":"Unknown router action"}]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,348 @@
|
||||
{
|
||||
"version": "0.0.0",
|
||||
"name": "add_decimals",
|
||||
"instructions": [
|
||||
{
|
||||
"name": "initializeWrapper",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "wrapper",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "wrapperUnderlyingTokens",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "underlyingMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "wrapperMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "payer",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "rent",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "nonce",
|
||||
"type": "u8"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "deposit",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "wrapper",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "wrapperMint",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "wrapperUnderlyingTokens",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "owner",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "userUnderlyingTokens",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userWrappedTokens",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "depositAmount",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "withdraw",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "wrapper",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "wrapperMint",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "wrapperUnderlyingTokens",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "owner",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "userUnderlyingTokens",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userWrappedTokens",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "maxBurnAmount",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"accounts": [
|
||||
{
|
||||
"name": "WrappedToken",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "decimals",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "multiplier",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "wrapperUnderlyingMint",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "wrapperUnderlyingTokens",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "wrapperMint",
|
||||
"type": "publicKey"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"events": [
|
||||
{
|
||||
"name": "InitEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "payer",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "decimals",
|
||||
"type": "u8",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "multiplier",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "wrapperUnderlyingMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "wrapperUnderlyingTokens",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "wrapperMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DepositEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "owner",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "underlyingMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "wrappedMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "depositAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "mintAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "WithdrawEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "owner",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "underlyingMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "wrappedMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "withdrawAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "burnAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "dustAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"errors": [
|
||||
{
|
||||
"code": 300,
|
||||
"name": "InitNonEmptyAccount",
|
||||
"msg": "Wrapper underlying tokens account must be empty."
|
||||
},
|
||||
{
|
||||
"code": 301,
|
||||
"name": "InitWrapperSupplyNonZero",
|
||||
"msg": "Supply of the wrapper mint is non-zero"
|
||||
},
|
||||
{
|
||||
"code": 302,
|
||||
"name": "InitWrapperUnderlyingOwnerMismatch",
|
||||
"msg": "Owner of the wrapper underlying tokens account must be the wrapper"
|
||||
},
|
||||
{
|
||||
"code": 303,
|
||||
"name": "InitWrapperUnderlyingMintMismatch",
|
||||
"msg": "Underlying mint does not match underlying tokens account mint"
|
||||
},
|
||||
{
|
||||
"code": 304,
|
||||
"name": "InitMintAuthorityMismatch",
|
||||
"msg": "Mint authority mismatch"
|
||||
},
|
||||
{
|
||||
"code": 305,
|
||||
"name": "InitMultiplierOverflow",
|
||||
"msg": "Initial decimals too high"
|
||||
},
|
||||
{
|
||||
"code": 306,
|
||||
"name": "InitWrapperDecimalsTooLow",
|
||||
"msg": "The number of target decimals must be greater than or equal to the underlying asset's decimals."
|
||||
},
|
||||
{
|
||||
"code": 307,
|
||||
"name": "MintAmountOverflow",
|
||||
"msg": "Mint amount overflow. This error happens when the token cannot support this many decimals added to the token."
|
||||
},
|
||||
{
|
||||
"code": 308,
|
||||
"name": "InvalidBurnAmount",
|
||||
"msg": "Failed to convert burn amount from withdraw amount."
|
||||
},
|
||||
{
|
||||
"code": 309,
|
||||
"name": "InvalidWithdrawAmount",
|
||||
"msg": "Failed to convert withdraw amount from wrapped amount."
|
||||
},
|
||||
{
|
||||
"code": 310,
|
||||
"name": "InsufficientUnderlyingBalance",
|
||||
"msg": "User does not have enough underlying tokens"
|
||||
},
|
||||
{
|
||||
"code": 311,
|
||||
"name": "InsufficientWrappedBalance",
|
||||
"msg": "User does not have enough wrapped tokens"
|
||||
},
|
||||
{
|
||||
"code": 312,
|
||||
"name": "ZeroAmount",
|
||||
"msg": "Cannot send zero tokens"
|
||||
},
|
||||
{
|
||||
"code": 313,
|
||||
"name": "UnknownAction",
|
||||
"msg": "Unknown router action"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,837 @@
|
||||
{
|
||||
"version": "0.1.1",
|
||||
"name": "lifinity_amm_v2",
|
||||
"instructions": [
|
||||
{
|
||||
"name": "swap",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "authority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "amm",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userTransferAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "sourceInfo",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "destinationInfo",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "swapSource",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "swapDestination",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "poolMint",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "feeAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "oracleMainAccount",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "oracleSubAccount",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "oraclePcAccount",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "amountIn",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "minimumAmountOut",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "depositAllTokenTypes",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "amm",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "authority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userTransferAuthorityInfo",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "sourceAInfo",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "sourceBInfo",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenA",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenB",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "poolMint",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "destination",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "poolTokenAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "maximumTokenAAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "maximumTokenBAmount",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "withdrawAllTokenTypes",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "amm",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "authority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userTransferAuthorityInfo",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "sourceInfo",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenA",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenB",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "poolMint",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "destTokenAInfo",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "destTokenBInfo",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "poolTokenAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "minimumTokenAAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "minimumTokenBAmount",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"accounts": [
|
||||
{
|
||||
"name": "Amm",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "initializerKey",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "initializerDepositTokenAccount",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "initializerReceiveTokenAccount",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "initializerAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "takerAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "isInitialized",
|
||||
"docs": [
|
||||
"Is the swap initialized, with data written to it"
|
||||
],
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"name": "bumpSeed",
|
||||
"docs": [
|
||||
"Bump seed used to generate the program address / authority"
|
||||
],
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "freezeTrade",
|
||||
"docs": [
|
||||
"Freeze swap"
|
||||
],
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "freezeDeposit",
|
||||
"docs": [
|
||||
"Freeze deposit"
|
||||
],
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "freezeWithdraw",
|
||||
"docs": [
|
||||
"Freeze withdraw"
|
||||
],
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "baseDecimals",
|
||||
"docs": [
|
||||
"Base decimals account"
|
||||
],
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "tokenProgramId",
|
||||
"docs": [
|
||||
"Token program ID associated with the swap"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "tokenAAccount",
|
||||
"docs": [
|
||||
"Address of token A liquidity account"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "tokenBAccount",
|
||||
"docs": [
|
||||
"Address of token B liquidity account"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "poolMint",
|
||||
"docs": [
|
||||
"Address of pool token mint"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "tokenAMint",
|
||||
"docs": [
|
||||
"Address of token A mint"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "tokenBMint",
|
||||
"docs": [
|
||||
"Address of token B mint"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "feeAccount",
|
||||
"docs": [
|
||||
"Address of pool fee account"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "oracleMainAccount",
|
||||
"docs": [
|
||||
"Oracle Main account"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "oracleSubAccount",
|
||||
"docs": [
|
||||
"Oracle Sub account"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "oraclePcAccount",
|
||||
"docs": [
|
||||
"oracle Pc account"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "fees",
|
||||
"docs": [
|
||||
"Fees associated with swap"
|
||||
],
|
||||
"type": {
|
||||
"defined": "AmmFees"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "curve",
|
||||
"docs": [
|
||||
"Curve associated with swap"
|
||||
],
|
||||
"type": {
|
||||
"defined": "AmmCurve"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "config",
|
||||
"docs": [
|
||||
"Curve associated with swap"
|
||||
],
|
||||
"type": {
|
||||
"defined": "AmmConfig"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ammPTemp1",
|
||||
"docs": [
|
||||
"Temp area"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "ammPTemp2",
|
||||
"docs": [
|
||||
"Temp area"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "ammPTemp3",
|
||||
"docs": [
|
||||
"Temp area"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "ammPTemp4",
|
||||
"docs": [
|
||||
"Temp area"
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "ammPTemp5",
|
||||
"docs": [
|
||||
"Temp area"
|
||||
],
|
||||
"type": "publicKey"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"name": "AmmFees",
|
||||
"docs": [
|
||||
"Encapsulates all fee information and calculations for swap operations"
|
||||
],
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "tradeFeeNumerator",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "tradeFeeDenominator",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "ownerTradeFeeNumerator",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "ownerTradeFeeDenominator",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "ownerWithdrawFeeNumerator",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "ownerWithdrawFeeDenominator",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "hostFeeNumerator",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "hostFeeDenominator",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "AmmCurve",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "curveType",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "curveParameters",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "AmmConfig",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "lastPrice",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "lastBalancedPrice",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "configDenominator",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "volumeX",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "volumeY",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "volumeXInY",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "depositCap",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "regressionTarget",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oracleType",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oracleStatus",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oracleMainSlotLimit",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oracleSubConfidenceLimit",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oracleSubSlotLimit",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oraclePcConfidenceLimit",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oraclePcSlotLimit",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "stdSpread",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "stdSpreadBuffer",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "spreadCoefficient",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "priceBufferCoin",
|
||||
"type": "i64"
|
||||
},
|
||||
{
|
||||
"name": "priceBufferPc",
|
||||
"type": "i64"
|
||||
},
|
||||
{
|
||||
"name": "rebalanceRatio",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "feeTrade",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "feePlatform",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oracleMainSlotBuffer",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "configTemp4",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "configTemp5",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "configTemp6",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "configTemp7",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "configTemp8",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CurveType",
|
||||
"docs": [
|
||||
"Curve types supported by the token-swap program."
|
||||
],
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "Standard"
|
||||
},
|
||||
{
|
||||
"name": "ConstantProduct"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"errors": [
|
||||
{
|
||||
"code": 6000,
|
||||
"name": "AlreadyInUse",
|
||||
"msg": "Swap account already in use"
|
||||
},
|
||||
{
|
||||
"code": 6001,
|
||||
"name": "InvalidProgramAddress",
|
||||
"msg": "Invalid program address generated from bump seed and key"
|
||||
},
|
||||
{
|
||||
"code": 6002,
|
||||
"name": "InvalidOwner",
|
||||
"msg": "Input account owner is not the program address"
|
||||
},
|
||||
{
|
||||
"code": 6003,
|
||||
"name": "InvalidOutputOwner",
|
||||
"msg": "Output pool account owner cannot be the program address"
|
||||
},
|
||||
{
|
||||
"code": 6004,
|
||||
"name": "ExpectedMint",
|
||||
"msg": "Deserialized account is not an SPL Token mint"
|
||||
},
|
||||
{
|
||||
"code": 6005,
|
||||
"name": "ExpectedAccount",
|
||||
"msg": "Deserialized account is not an SPL Token account"
|
||||
},
|
||||
{
|
||||
"code": 6006,
|
||||
"name": "EmptySupply",
|
||||
"msg": "Input token account empty"
|
||||
},
|
||||
{
|
||||
"code": 6007,
|
||||
"name": "InvalidSupply",
|
||||
"msg": "Pool token mint has a non-zero supply"
|
||||
},
|
||||
{
|
||||
"code": 6008,
|
||||
"name": "InvalidDelegate",
|
||||
"msg": "Token account has a delegate"
|
||||
},
|
||||
{
|
||||
"code": 6009,
|
||||
"name": "InvalidInput",
|
||||
"msg": "InvalidInput"
|
||||
},
|
||||
{
|
||||
"code": 6010,
|
||||
"name": "IncorrectSwapAccount",
|
||||
"msg": "Address of the provided swap token account is incorrect"
|
||||
},
|
||||
{
|
||||
"code": 6011,
|
||||
"name": "IncorrectPoolMint",
|
||||
"msg": "Address of the provided pool token mint is incorrect"
|
||||
},
|
||||
{
|
||||
"code": 6012,
|
||||
"name": "InvalidOutput",
|
||||
"msg": "InvalidOutput"
|
||||
},
|
||||
{
|
||||
"code": 6013,
|
||||
"name": "CalculationFailure",
|
||||
"msg": "General calculation failure due to overflow or underflow"
|
||||
},
|
||||
{
|
||||
"code": 6014,
|
||||
"name": "InvalidInstruction",
|
||||
"msg": "Invalid instruction"
|
||||
},
|
||||
{
|
||||
"code": 6015,
|
||||
"name": "RepeatedMint",
|
||||
"msg": "Swap input token accounts have the same mint"
|
||||
},
|
||||
{
|
||||
"code": 6016,
|
||||
"name": "ExceededSlippage",
|
||||
"msg": "Swap instruction exceeds desired slippage limit"
|
||||
},
|
||||
{
|
||||
"code": 6017,
|
||||
"name": "InvalidCloseAuthority",
|
||||
"msg": "Token account has a close authority"
|
||||
},
|
||||
{
|
||||
"code": 6018,
|
||||
"name": "InvalidFreezeAuthority",
|
||||
"msg": "Pool token mint has a freeze authority"
|
||||
},
|
||||
{
|
||||
"code": 6019,
|
||||
"name": "IncorrectFeeAccount",
|
||||
"msg": "Pool fee token account incorrect"
|
||||
},
|
||||
{
|
||||
"code": 6020,
|
||||
"name": "ZeroTradingTokens",
|
||||
"msg": "Given pool token amount results in zero trading tokens"
|
||||
},
|
||||
{
|
||||
"code": 6021,
|
||||
"name": "FeeCalculationFailure",
|
||||
"msg": "Fee calculation failed due to overflow, underflow, or unexpected 0"
|
||||
},
|
||||
{
|
||||
"code": 6022,
|
||||
"name": "ConversionFailure",
|
||||
"msg": "Conversion to u64 failed with an overflow or underflow"
|
||||
},
|
||||
{
|
||||
"code": 6023,
|
||||
"name": "InvalidFee",
|
||||
"msg": "The provided fee does not match the program owner's constraints"
|
||||
},
|
||||
{
|
||||
"code": 6024,
|
||||
"name": "IncorrectTokenProgramId",
|
||||
"msg": "The provided token program does not match the token program expected by the swap"
|
||||
},
|
||||
{
|
||||
"code": 6025,
|
||||
"name": "IncorrectOracleAccount",
|
||||
"msg": "Address of the provided oracle account is incorrect"
|
||||
},
|
||||
{
|
||||
"code": 6026,
|
||||
"name": "IncorrectConfigAccount",
|
||||
"msg": "Address of the provided config account is incorrect"
|
||||
},
|
||||
{
|
||||
"code": 6027,
|
||||
"name": "UnsupportedCurveType",
|
||||
"msg": "The provided curve type is not supported by the program owner"
|
||||
},
|
||||
{
|
||||
"code": 6028,
|
||||
"name": "InvalidCurve",
|
||||
"msg": "The provided curve parameters are invalid"
|
||||
},
|
||||
{
|
||||
"code": 6029,
|
||||
"name": "UnsupportedCurveOperation",
|
||||
"msg": "The operation cannot be performed on the given curve"
|
||||
},
|
||||
{
|
||||
"code": 6030,
|
||||
"name": "InvalidPythStatus",
|
||||
"msg": "Pyth oracle status is not 'trading'"
|
||||
},
|
||||
{
|
||||
"code": 6031,
|
||||
"name": "InvalidPythPrice",
|
||||
"msg": "Could not retrieve updated price feed from the Pyth oracle"
|
||||
},
|
||||
{
|
||||
"code": 6032,
|
||||
"name": "IncorrectSigner",
|
||||
"msg": "Address of the provided signer account is incorrect"
|
||||
},
|
||||
{
|
||||
"code": 6033,
|
||||
"name": "ExceedPoolBalance",
|
||||
"msg": "Swap amount exceeds pool balance"
|
||||
},
|
||||
{
|
||||
"code": 6034,
|
||||
"name": "ProgramIsFrozen",
|
||||
"msg": "Program is frozen"
|
||||
},
|
||||
{
|
||||
"code": 6035,
|
||||
"name": "OracleConfidence",
|
||||
"msg": "Oracle confidence is too high"
|
||||
},
|
||||
{
|
||||
"code": 6036,
|
||||
"name": "OverCapAmount",
|
||||
"msg": "Over Pool Cap Amount"
|
||||
},
|
||||
{
|
||||
"code": 6037,
|
||||
"name": "InvalidUpdateAccount",
|
||||
"msg": "Invalid update wallet address"
|
||||
},
|
||||
{
|
||||
"code": 6038,
|
||||
"name": "InvalidUpdateParam",
|
||||
"msg": "Invalid update param"
|
||||
},
|
||||
{
|
||||
"code": 6039,
|
||||
"name": "InvalidInnerSwapAccount",
|
||||
"msg": "Invalid inner swap account"
|
||||
},
|
||||
{
|
||||
"code": 6040,
|
||||
"name": "ExceptionErr",
|
||||
"msg": "Exception err"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,841 @@
|
||||
{
|
||||
"version": "0.5.0",
|
||||
"name": "amm",
|
||||
"instructions": [
|
||||
{
|
||||
"name": "createAmm",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "user",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "amm",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "lpMint",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "baseMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "quoteMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaBase",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaQuote",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "associatedTokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "args",
|
||||
"type": {
|
||||
"defined": "CreateAmmArgs"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "addLiquidity",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "user",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "amm",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "lpMint",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userLpAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userBaseAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userQuoteAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaBase",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaQuote",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "args",
|
||||
"type": {
|
||||
"defined": "AddLiquidityArgs"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "removeLiquidity",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "user",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "amm",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "lpMint",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userLpAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userBaseAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userQuoteAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaBase",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaQuote",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "args",
|
||||
"type": {
|
||||
"defined": "RemoveLiquidityArgs"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "swap",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "user",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "amm",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userBaseAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userQuoteAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaBase",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaQuote",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "args",
|
||||
"type": {
|
||||
"defined": "SwapArgs"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "crankThatTwap",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "amm",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": []
|
||||
}
|
||||
],
|
||||
"accounts": [
|
||||
{
|
||||
"name": "Amm",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "bump",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "createdAtSlot",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "lpMint",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "baseMint",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "quoteMint",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "baseMintDecimals",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "quoteMintDecimals",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "baseAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "quoteAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oracle",
|
||||
"type": {
|
||||
"defined": "TwapOracle"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "seqNum",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaBase",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaQuote",
|
||||
"type": "publicKey"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"name": "CommonFields",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "slot",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "unixTimestamp",
|
||||
"type": "i64"
|
||||
},
|
||||
{
|
||||
"name": "user",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "amm",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "postBaseReserves",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "postQuoteReserves",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "oracleLastPrice",
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "oracleLastObservation",
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "oracleAggregator",
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "seqNum",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "AddLiquidityArgs",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "quoteAmount",
|
||||
"docs": [
|
||||
"How much quote token you will deposit to the pool"
|
||||
],
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "maxBaseAmount",
|
||||
"docs": [
|
||||
"The maximum base token you will deposit to the pool"
|
||||
],
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "minLpTokens",
|
||||
"docs": [
|
||||
"The minimum LP token you will get back"
|
||||
],
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CreateAmmArgs",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "twapInitialObservation",
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "twapMaxObservationChangePerUpdate",
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "twapStartDelaySlots",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "RemoveLiquidityArgs",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "lpTokensToBurn",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "minQuoteAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "minBaseAmount",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SwapArgs",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "swapType",
|
||||
"type": {
|
||||
"defined": "SwapType"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "inputAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "outputAmountMin",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "TwapOracle",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "lastUpdatedSlot",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "lastPrice",
|
||||
"docs": [
|
||||
"A price is the number of quote units per base unit multiplied by 1e12.",
|
||||
"You cannot simply divide by 1e12 to get a price you can display in the UI",
|
||||
"because the base and quote decimals may be different. Instead, do:",
|
||||
"ui_price = (price * (10**(base_decimals - quote_decimals))) / 1e12"
|
||||
],
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "lastObservation",
|
||||
"docs": [
|
||||
"If we did a raw TWAP over prices, someone could push the TWAP heavily with",
|
||||
"a few extremely large outliers. So we use observations, which can only move",
|
||||
"by `max_observation_change_per_update` per update."
|
||||
],
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "aggregator",
|
||||
"docs": [
|
||||
"Running sum of slots_per_last_update * last_observation.",
|
||||
"",
|
||||
"Assuming latest observations are as big as possible (u64::MAX * 1e12),",
|
||||
"we can store 18 million slots worth of observations, which turns out to",
|
||||
"be ~85 days worth of slots.",
|
||||
"",
|
||||
"Assuming that latest observations are 100x smaller than they could theoretically",
|
||||
"be, we can store 8500 days (23 years) worth of them. Even this is a very",
|
||||
"very conservative assumption - META/USDC prices should be between 1e9 and",
|
||||
"1e15, which would overflow after 1e15 years worth of slots.",
|
||||
"",
|
||||
"So in the case of an overflow, the aggregator rolls back to 0. It's the",
|
||||
"client's responsibility to sanity check the assets or to handle an",
|
||||
"aggregator at T2 being smaller than an aggregator at T1."
|
||||
],
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "maxObservationChangePerUpdate",
|
||||
"docs": [
|
||||
"The most that an observation can change per update."
|
||||
],
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "initialObservation",
|
||||
"docs": [
|
||||
"What the initial `latest_observation` is set to."
|
||||
],
|
||||
"type": "u128"
|
||||
},
|
||||
{
|
||||
"name": "startDelaySlots",
|
||||
"docs": [
|
||||
"Number of slots after amm.created_at_slot to start recording TWAP"
|
||||
],
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SwapType",
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "Buy"
|
||||
},
|
||||
{
|
||||
"name": "Sell"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"events": [
|
||||
{
|
||||
"name": "SwapEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "inputAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "outputAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "swapType",
|
||||
"type": {
|
||||
"defined": "SwapType"
|
||||
},
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "AddLiquidityEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "quoteAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "maxBaseAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "minLpTokens",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "baseAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "lpTokensMinted",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "RemoveLiquidityEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "lpTokensBurned",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "minQuoteAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "minBaseAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "baseAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "quoteAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "CreateAmmEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "twapInitialObservation",
|
||||
"type": "u128",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "twapMaxObservationChangePerUpdate",
|
||||
"type": "u128",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "lpMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "baseMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "quoteMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaBase",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "vaultAtaQuote",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "CrankThatTwapEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"errors": [
|
||||
{
|
||||
"code": 6000,
|
||||
"name": "AssertFailed",
|
||||
"msg": "An assertion failed"
|
||||
},
|
||||
{
|
||||
"code": 6001,
|
||||
"name": "NoSlotsPassed",
|
||||
"msg": "Can't get a TWAP before some observations have been stored"
|
||||
},
|
||||
{
|
||||
"code": 6002,
|
||||
"name": "NoReserves",
|
||||
"msg": "Can't swap through a pool without token reserves on either side"
|
||||
},
|
||||
{
|
||||
"code": 6003,
|
||||
"name": "InputAmountOverflow",
|
||||
"msg": "Input token amount is too large for a swap, causes overflow"
|
||||
},
|
||||
{
|
||||
"code": 6004,
|
||||
"name": "AddLiquidityCalculationError",
|
||||
"msg": "Add liquidity calculation error"
|
||||
},
|
||||
{
|
||||
"code": 6005,
|
||||
"name": "DecimalScaleError",
|
||||
"msg": "Error in decimal scale conversion"
|
||||
},
|
||||
{
|
||||
"code": 6006,
|
||||
"name": "SameTokenMints",
|
||||
"msg": "You can't create an AMM pool where the token mints are the same"
|
||||
},
|
||||
{
|
||||
"code": 6007,
|
||||
"name": "SwapSlippageExceeded",
|
||||
"msg": "A user wouldn't have gotten back their `output_amount_min`, reverting"
|
||||
},
|
||||
{
|
||||
"code": 6008,
|
||||
"name": "InsufficientBalance",
|
||||
"msg": "The user had insufficient balance to do this"
|
||||
},
|
||||
{
|
||||
"code": 6009,
|
||||
"name": "ZeroLiquidityRemove",
|
||||
"msg": "Must remove a non-zero amount of liquidity"
|
||||
},
|
||||
{
|
||||
"code": 6010,
|
||||
"name": "ZeroLiquidityToAdd",
|
||||
"msg": "Cannot add liquidity with 0 tokens on either side"
|
||||
},
|
||||
{
|
||||
"code": 6011,
|
||||
"name": "ZeroMinLpTokens",
|
||||
"msg": "Must specify a non-zero `min_lp_tokens` when adding to an existing pool"
|
||||
},
|
||||
{
|
||||
"code": 6012,
|
||||
"name": "AddLiquiditySlippageExceeded",
|
||||
"msg": "LP wouldn't have gotten back `lp_token_min`"
|
||||
},
|
||||
{
|
||||
"code": 6013,
|
||||
"name": "AddLiquidityMaxBaseExceeded",
|
||||
"msg": "LP would have spent more than `max_base_amount`"
|
||||
},
|
||||
{
|
||||
"code": 6014,
|
||||
"name": "InsufficientQuoteAmount",
|
||||
"msg": "`quote_amount` must be greater than 100000000 when initializing a pool"
|
||||
},
|
||||
{
|
||||
"code": 6015,
|
||||
"name": "ZeroSwapAmount",
|
||||
"msg": "Users must swap a non-zero amount"
|
||||
},
|
||||
{
|
||||
"code": 6016,
|
||||
"name": "ConstantProductInvariantFailed",
|
||||
"msg": "K should always be increasing"
|
||||
},
|
||||
{
|
||||
"code": 6017,
|
||||
"name": "CastingOverflow",
|
||||
"msg": "Casting has caused an overflow"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,996 @@
|
||||
{
|
||||
"version": "0.1.0",
|
||||
"name": "executor",
|
||||
"instructions": [
|
||||
{
|
||||
"name": "initExecutor",
|
||||
"docs": [
|
||||
"--------------------------- Owner Instructions ---------------------------"
|
||||
],
|
||||
"accounts": [
|
||||
{
|
||||
"name": "payer",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "config",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "params",
|
||||
"type": {
|
||||
"defined": "InitExecutorParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ownerSetConfig",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "owner",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "config",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "params",
|
||||
"type": {
|
||||
"defined": "OwnerSetConfigParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "adminSetConfig",
|
||||
"docs": [
|
||||
"--------------------------- Admin Instructions ---------------------------"
|
||||
],
|
||||
"accounts": [
|
||||
{
|
||||
"name": "admin",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "config",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "params",
|
||||
"type": {
|
||||
"defined": "AdminSetConfigParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "nativeDrop",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "executor",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "config",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false,
|
||||
"docs": [
|
||||
"For native drop transfer"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "params",
|
||||
"type": {
|
||||
"defined": "NativeDropParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "execute",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "executor",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "config",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "endpointProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "endpointEventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false,
|
||||
"docs": [
|
||||
"The authority for the endpoint program to emit events"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "params",
|
||||
"type": {
|
||||
"defined": "ExecuteParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "compose",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "executor",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "config",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "endpointProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "endpointEventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false,
|
||||
"docs": [
|
||||
"The authority for the endpoint program to emit events"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "params",
|
||||
"type": {
|
||||
"defined": "ComposeParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "quoteExecutor",
|
||||
"docs": [
|
||||
"--------------------------- MsgLib Instructions ---------------------------"
|
||||
],
|
||||
"accounts": [
|
||||
{
|
||||
"name": "executorConfig",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "priceFeedProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "priceFeedConfig",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "params",
|
||||
"type": {
|
||||
"defined": "QuoteExecutorParams"
|
||||
}
|
||||
}
|
||||
],
|
||||
"returns": "u64"
|
||||
},
|
||||
{
|
||||
"name": "executable",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "nonce",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "payloadHash",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "params",
|
||||
"type": {
|
||||
"defined": "ExecutableParams"
|
||||
}
|
||||
}
|
||||
],
|
||||
"returns": {
|
||||
"defined": "ExecutionState"
|
||||
}
|
||||
}
|
||||
],
|
||||
"accounts": [
|
||||
{
|
||||
"name": "Nonce",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "bump",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "outboundNonce",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "inboundNonce",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ExecutorConfig",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "bump",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "owner",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "acl",
|
||||
"type": {
|
||||
"defined": "Acl"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "admins",
|
||||
"type": {
|
||||
"vec": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "executors",
|
||||
"type": {
|
||||
"vec": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "msglibs",
|
||||
"type": {
|
||||
"vec": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "paused",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"name": "defaultMultiplierBps",
|
||||
"type": "u16"
|
||||
},
|
||||
{
|
||||
"name": "priceFeed",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "dstConfigs",
|
||||
"type": {
|
||||
"vec": {
|
||||
"defined": "DstConfig"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"name": "AdminSetConfigParams",
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "PriceFeed",
|
||||
"fields": [
|
||||
"publicKey"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DefaultMultiplierBps",
|
||||
"fields": [
|
||||
"u16"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DstConfigs",
|
||||
"fields": [
|
||||
{
|
||||
"vec": {
|
||||
"defined": "DstConfig"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ComposeParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "lzCompose",
|
||||
"type": {
|
||||
"defined": "LzComposeParams"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "computeUnits",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "value",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ExecutableParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "receiver",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "srcEid",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "sender",
|
||||
"type": {
|
||||
"array": [
|
||||
"u8",
|
||||
32
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nonce",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ExecutionState",
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "NotExecutable"
|
||||
},
|
||||
{
|
||||
"name": "VerifiedButNotExecutable"
|
||||
},
|
||||
{
|
||||
"name": "Executable"
|
||||
},
|
||||
{
|
||||
"name": "Executed"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ExecuteParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "receiver",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "lzReceive",
|
||||
"type": {
|
||||
"defined": "LzReceiveParams"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "value",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "computeUnits",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "InitExecutorParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "owner",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "admins",
|
||||
"type": {
|
||||
"vec": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "executors",
|
||||
"type": {
|
||||
"vec": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "msglibs",
|
||||
"type": {
|
||||
"vec": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "priceFeed",
|
||||
"type": "publicKey"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "NativeDropParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "srcEid",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "sender",
|
||||
"type": {
|
||||
"array": [
|
||||
"u8",
|
||||
32
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nonce",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "dstEid",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "oapp",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "nativeDropRequests",
|
||||
"type": {
|
||||
"vec": {
|
||||
"defined": "NativeDropRequest"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "NativeDropRequest",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "receiver",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "amount",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "OwnerSetConfigParams",
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "Admins",
|
||||
"fields": [
|
||||
{
|
||||
"vec": "publicKey"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Executors",
|
||||
"fields": [
|
||||
{
|
||||
"vec": "publicKey"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Msglibs",
|
||||
"fields": [
|
||||
{
|
||||
"vec": "publicKey"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Owner",
|
||||
"fields": [
|
||||
"publicKey"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Paused",
|
||||
"fields": [
|
||||
"bool"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Allowlist",
|
||||
"fields": [
|
||||
{
|
||||
"vec": "publicKey"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Denylist",
|
||||
"fields": [
|
||||
{
|
||||
"vec": "publicKey"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "DstConfig",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "eid",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "lzReceiveBaseGas",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "lzComposeBaseGas",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "multiplierBps",
|
||||
"type": {
|
||||
"option": "u16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "floorMarginUsd",
|
||||
"type": {
|
||||
"option": "u128"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nativeDropCap",
|
||||
"type": "u128"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "LzComposeParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "from",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "to",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "guid",
|
||||
"type": {
|
||||
"array": [
|
||||
"u8",
|
||||
32
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "index",
|
||||
"type": "u16"
|
||||
},
|
||||
{
|
||||
"name": "message",
|
||||
"type": "bytes"
|
||||
},
|
||||
{
|
||||
"name": "extraData",
|
||||
"type": "bytes"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "LzReceiveParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "srcEid",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "sender",
|
||||
"type": {
|
||||
"array": [
|
||||
"u8",
|
||||
32
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nonce",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "guid",
|
||||
"type": {
|
||||
"array": [
|
||||
"u8",
|
||||
32
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "message",
|
||||
"type": "bytes"
|
||||
},
|
||||
{
|
||||
"name": "extraData",
|
||||
"type": "bytes"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "LzOption",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "optionType",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "params",
|
||||
"type": "bytes"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "QuoteExecutorParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "msglib",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "dstEid",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "sender",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "calldataSize",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "options",
|
||||
"type": {
|
||||
"vec": {
|
||||
"defined": "LzOption"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Acl",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "allowList",
|
||||
"type": {
|
||||
"vec": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "denyList",
|
||||
"type": {
|
||||
"vec": "publicKey"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "NativeDropAppliedEvent",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "srcEid",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "sender",
|
||||
"type": {
|
||||
"array": [
|
||||
"u8",
|
||||
32
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nonce",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "dstEid",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "oapp",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "nativeDropRequests",
|
||||
"type": {
|
||||
"vec": {
|
||||
"defined": "NativeDropRequest"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "successes",
|
||||
"type": {
|
||||
"vec": "bool"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"events": [
|
||||
{
|
||||
"name": "NativeDropAppliedEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "srcEid",
|
||||
"type": "u32",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "sender",
|
||||
"type": {
|
||||
"array": [
|
||||
"u8",
|
||||
32
|
||||
]
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "nonce",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "dstEid",
|
||||
"type": "u32",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "oapp",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "nativeDropRequests",
|
||||
"type": {
|
||||
"vec": {
|
||||
"defined": "NativeDropRequest"
|
||||
}
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "successes",
|
||||
"type": {
|
||||
"vec": "bool"
|
||||
},
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"errors": [
|
||||
{
|
||||
"code": 6000,
|
||||
"name": "InvalidSize"
|
||||
},
|
||||
{
|
||||
"code": 6001,
|
||||
"name": "Paused"
|
||||
},
|
||||
{
|
||||
"code": 6002,
|
||||
"name": "UnsupportedOptionType"
|
||||
},
|
||||
{
|
||||
"code": 6003,
|
||||
"name": "ZeroLzComposeGasProvided"
|
||||
},
|
||||
{
|
||||
"code": 6004,
|
||||
"name": "ZeroLzReceiveGasProvided"
|
||||
},
|
||||
{
|
||||
"code": 6005,
|
||||
"name": "NativeAmountExceedsCap"
|
||||
},
|
||||
{
|
||||
"code": 6006,
|
||||
"name": "NotAdmin"
|
||||
},
|
||||
{
|
||||
"code": 6007,
|
||||
"name": "NotExecutor"
|
||||
},
|
||||
{
|
||||
"code": 6008,
|
||||
"name": "MsgLibNotAllowed"
|
||||
},
|
||||
{
|
||||
"code": 6009,
|
||||
"name": "TooManyAdmins"
|
||||
},
|
||||
{
|
||||
"code": 6010,
|
||||
"name": "TooManyExecutors"
|
||||
},
|
||||
{
|
||||
"code": 6011,
|
||||
"name": "TooManyOptionTypes"
|
||||
},
|
||||
{
|
||||
"code": 6012,
|
||||
"name": "InvalidNativeDropRequestsLength"
|
||||
},
|
||||
{
|
||||
"code": 6013,
|
||||
"name": "InvalidNativeDropReceiver"
|
||||
},
|
||||
{
|
||||
"code": 6014,
|
||||
"name": "InsufficientBalance"
|
||||
},
|
||||
{
|
||||
"code": 6015,
|
||||
"name": "EidNotSupported"
|
||||
},
|
||||
{
|
||||
"code": 6016,
|
||||
"name": "ExecutorIsAdmin"
|
||||
},
|
||||
{
|
||||
"code": 6017,
|
||||
"name": "InvalidOwner"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,741 @@
|
||||
{
|
||||
"version": "0.7.0",
|
||||
"name": "bid_wall",
|
||||
"instructions": [
|
||||
{
|
||||
"name": "initializeBidWall",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "bidWall",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "payer",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "feeRecipient",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "creator",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "authority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "bidWallQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "creatorQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "daoTreasury",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "baseMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "quoteMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "associatedTokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "args",
|
||||
"type": {
|
||||
"defined": "InitializeBidWallArgs"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "closeBidWall",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "bidWall",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "authority",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "feeRecipient",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "bidWallQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "authorityQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "feeRecipientQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "baseMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "quoteMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "sellTokens",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "bidWall",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "user",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "userTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "userQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "bidWallQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "daoTreasury",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "daoTreasuryQuoteTokenAccount",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "baseMint",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "quoteMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "args",
|
||||
"type": {
|
||||
"defined": "SellTokensArgs"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "collectFees",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "bidWall",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "cranker",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "bidWallQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "feeRecipientQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "quoteMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "cancelBidWall",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "bidWall",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "payer",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "authority",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "feeRecipient",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "bidWallQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "authorityQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "feeRecipientQuoteTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "baseMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "quoteMint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "eventAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "program",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": []
|
||||
}
|
||||
],
|
||||
"accounts": [
|
||||
{
|
||||
"name": "BidWall",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "nonce",
|
||||
"docs": [
|
||||
"The nonce of the bid wall."
|
||||
],
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "createdTimestamp",
|
||||
"docs": [
|
||||
"When the bid wall was created."
|
||||
],
|
||||
"type": "i64"
|
||||
},
|
||||
{
|
||||
"name": "initialAmmQuoteReserves",
|
||||
"docs": [
|
||||
"The initial quote (USDC) reserves of the Futarchy AMM."
|
||||
],
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "quoteAmount",
|
||||
"docs": [
|
||||
"The current amount of quote tokens assigned to the bid wall.",
|
||||
"This is different from the amount in the bid wall quote token account,",
|
||||
"because anyone can transfer quote tokens to the bid wall, and we don't want that to affect the bid wall's NAV calculation."
|
||||
],
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "feesCollected",
|
||||
"docs": [
|
||||
"The fees collected by the bid wall."
|
||||
],
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "baseBoughtAmount",
|
||||
"docs": [
|
||||
"The amount of base tokens bought up by the bid wall."
|
||||
],
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "seqNum",
|
||||
"docs": [
|
||||
"The event sequence number of the bid wall."
|
||||
],
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "creator",
|
||||
"docs": [
|
||||
"The authority of the bid wall."
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "authority",
|
||||
"docs": [
|
||||
"The authority of the bid wall."
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "daoTreasury",
|
||||
"docs": [
|
||||
"The DAO treasury address."
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "baseMint",
|
||||
"docs": [
|
||||
"The mint of the token being sold into the bid wall."
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "feeRecipient",
|
||||
"docs": [
|
||||
"The recipient of the fees collected by the bid wall."
|
||||
],
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "durationSeconds",
|
||||
"docs": [
|
||||
"The minimum duration in seconds before the bid wall can be closed."
|
||||
],
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "pdaBump",
|
||||
"docs": [
|
||||
"The PDA bump."
|
||||
],
|
||||
"type": "u8"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"name": "CommonFields",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "slot",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "unixTimestamp",
|
||||
"type": "i64"
|
||||
},
|
||||
{
|
||||
"name": "bidWallSeqNum",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "InitializeBidWallArgs",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "amount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "nonce",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "initialAmmQuoteReserves",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "durationSeconds",
|
||||
"type": "u32"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SellTokensArgs",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "amountIn",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "minAmountOut",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"events": [
|
||||
{
|
||||
"name": "BidWallInitializedEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "bidWall",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "nonce",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "initialAmmQuoteReserves",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "amount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "creator",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "authority",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "daoTreasury",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "baseMint",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "feeRecipient",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "durationSeconds",
|
||||
"type": "u32",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "pdaBump",
|
||||
"type": "u8",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "BidWallTokensSoldEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "bidWall",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "amountIn",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "amountOut",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "fee",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "postBidWallQuoteTokenAccountAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "postBidWallBaseBoughtAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "user",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "BidWallFeesCollectedEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "bidWall",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "feesCollected",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "postBidWallQuoteTokenAccountAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "BidWallClosedEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "bidWall",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "BidWallCanceledEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "common",
|
||||
"type": {
|
||||
"defined": "CommonFields"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "bidWall",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"errors": [
|
||||
{
|
||||
"code": 6000,
|
||||
"name": "BidWallExpired",
|
||||
"msg": "Bid wall expired"
|
||||
},
|
||||
{
|
||||
"code": 6001,
|
||||
"name": "BidWallNotExpired",
|
||||
"msg": "Bid wall not expired"
|
||||
},
|
||||
{
|
||||
"code": 6002,
|
||||
"name": "FeeRecipientMismatch",
|
||||
"msg": "Fee recipient mismatch"
|
||||
},
|
||||
{
|
||||
"code": 6003,
|
||||
"name": "InsufficientQuoteReserves",
|
||||
"msg": "Insufficient quote reserves"
|
||||
},
|
||||
{
|
||||
"code": 6004,
|
||||
"name": "BidWallDepleted",
|
||||
"msg": "Bid wall depleted"
|
||||
},
|
||||
{
|
||||
"code": 6005,
|
||||
"name": "InvalidInputAmount",
|
||||
"msg": "Invalid input amount"
|
||||
},
|
||||
{
|
||||
"code": 6006,
|
||||
"name": "InvalidCrankAddress",
|
||||
"msg": "Invalid crank address"
|
||||
},
|
||||
{
|
||||
"code": 6007,
|
||||
"name": "InsufficientOutputAmount",
|
||||
"msg": "Insufficient output amount"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,995 @@
|
||||
{
|
||||
"version": "0.1.0",
|
||||
"name": "token_launchpad",
|
||||
"instructions": [
|
||||
{
|
||||
"name": "tokenMint",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "sender",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "backendAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "curveAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "mint",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "mintMetadata",
|
||||
"isMut": true,
|
||||
"isSigner": false,
|
||||
"docs": [
|
||||
"Type validating that the account is owned by the System Program = uninitialized",
|
||||
"seeds should ensure that the address is correct"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "curveTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "configAccount",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "associatedTokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "mplTokenMetadata",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "mintParams",
|
||||
"type": {
|
||||
"defined": "TokenMintParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "buy",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "sender",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "senderTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "curveAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "curveTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "dexFee",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "helioFee",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "mint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "configAccount",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "associatedTokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "data",
|
||||
"type": {
|
||||
"defined": "TradeParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "sell",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "sender",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "senderTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "curveAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "curveTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "dexFee",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "helioFee",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "mint",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "configAccount",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "associatedTokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "data",
|
||||
"type": {
|
||||
"defined": "TradeParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "migrateFunds",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "backendAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": true,
|
||||
"docs": [
|
||||
"BE Authority"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "migrationAuthority",
|
||||
"isMut": true,
|
||||
"isSigner": true,
|
||||
"docs": [
|
||||
"Migration Authority",
|
||||
"Owner and Payer over Token Accounts, needs to be mutable"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "curveAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false,
|
||||
"docs": [
|
||||
"Curve Account",
|
||||
"The account is closed after this instruction"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "curveTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false,
|
||||
"docs": [
|
||||
"Curve Token Account",
|
||||
"The account is closed after this instruction"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "migrationAuthorityTokenAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false,
|
||||
"docs": [
|
||||
"Authority token Account",
|
||||
"Init on demand"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "mint",
|
||||
"isMut": true,
|
||||
"isSigner": false,
|
||||
"docs": [
|
||||
"InterfaceAccount: checks program ownership + deserialize into Mint"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "dexFeeAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "helioFeeAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "configAccount",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "tokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "associatedTokenProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "configInit",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "configAuthority",
|
||||
"isMut": true,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "configAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
},
|
||||
{
|
||||
"name": "systemProgram",
|
||||
"isMut": false,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "data",
|
||||
"type": {
|
||||
"defined": "ConfigParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "configUpdate",
|
||||
"accounts": [
|
||||
{
|
||||
"name": "configAuthority",
|
||||
"isMut": false,
|
||||
"isSigner": true
|
||||
},
|
||||
{
|
||||
"name": "configAccount",
|
||||
"isMut": true,
|
||||
"isSigner": false
|
||||
}
|
||||
],
|
||||
"args": [
|
||||
{
|
||||
"name": "data",
|
||||
"type": {
|
||||
"defined": "ConfigParams"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"accounts": [
|
||||
{
|
||||
"name": "ConfigAccount",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "migrationAuthority",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "backendAuthority",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "configAuthority",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "helioFee",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "dexFee",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "feeBps",
|
||||
"type": "u16"
|
||||
},
|
||||
{
|
||||
"name": "dexFeeShare",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "migrationFee",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "marketcapThreshold",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "marketcapCurrency",
|
||||
"type": {
|
||||
"defined": "Currency"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "minSupportedDecimalPlaces",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "maxSupportedDecimalPlaces",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "minSupportedTokenSupply",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "maxSupportedTokenSupply",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "bump",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "coefB",
|
||||
"type": "u32"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CurveAccount",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "totalSupply",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "curveAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "mint",
|
||||
"type": "publicKey"
|
||||
},
|
||||
{
|
||||
"name": "decimals",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "collateralCurrency",
|
||||
"type": {
|
||||
"defined": "Currency"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "curveType",
|
||||
"type": {
|
||||
"defined": "CurveType"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "marketcapThreshold",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "marketcapCurrency",
|
||||
"type": {
|
||||
"defined": "Currency"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "migrationFee",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "coefB",
|
||||
"type": "u32"
|
||||
},
|
||||
{
|
||||
"name": "bump",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "migrationTarget",
|
||||
"type": {
|
||||
"defined": "MigrationTarget"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"name": "TokenMintParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "symbol",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "uri",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "decimals",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "collateralCurrency",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "amount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "curveType",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "migrationTarget",
|
||||
"type": "u8"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "TradeParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "tokenAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "collateralAmount",
|
||||
"type": "u64"
|
||||
},
|
||||
{
|
||||
"name": "fixedSide",
|
||||
"type": "u8"
|
||||
},
|
||||
{
|
||||
"name": "slippageBps",
|
||||
"type": "u64"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ConfigParams",
|
||||
"type": {
|
||||
"kind": "struct",
|
||||
"fields": [
|
||||
{
|
||||
"name": "migrationAuthority",
|
||||
"type": {
|
||||
"option": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "backendAuthority",
|
||||
"type": {
|
||||
"option": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "configAuthority",
|
||||
"type": {
|
||||
"option": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "helioFee",
|
||||
"type": {
|
||||
"option": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "dexFee",
|
||||
"type": {
|
||||
"option": "publicKey"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "feeBps",
|
||||
"type": {
|
||||
"option": "u16"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "dexFeeShare",
|
||||
"type": {
|
||||
"option": "u8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "migrationFee",
|
||||
"type": {
|
||||
"option": "u64"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "marketcapThreshold",
|
||||
"type": {
|
||||
"option": "u64"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "marketcapCurrency",
|
||||
"type": {
|
||||
"option": "u8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "minSupportedDecimalPlaces",
|
||||
"type": {
|
||||
"option": "u8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "maxSupportedDecimalPlaces",
|
||||
"type": {
|
||||
"option": "u8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "minSupportedTokenSupply",
|
||||
"type": {
|
||||
"option": "u64"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "maxSupportedTokenSupply",
|
||||
"type": {
|
||||
"option": "u64"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "coefB",
|
||||
"type": {
|
||||
"option": "u32"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Currency",
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "Sol"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "CurveType",
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "LinearV1"
|
||||
},
|
||||
{
|
||||
"name": "ConstantProductV1"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MigrationTarget",
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "Raydium"
|
||||
},
|
||||
{
|
||||
"name": "Meteora"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "TradeType",
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "Buy"
|
||||
},
|
||||
{
|
||||
"name": "Sell"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "FixedSide",
|
||||
"type": {
|
||||
"kind": "enum",
|
||||
"variants": [
|
||||
{
|
||||
"name": "ExactIn"
|
||||
},
|
||||
{
|
||||
"name": "ExactOut"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"events": [
|
||||
{
|
||||
"name": "TradeEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "amount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "collateralAmount",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "dexFee",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "helioFee",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "allocation",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "curve",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "costToken",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "sender",
|
||||
"type": "publicKey",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": {
|
||||
"defined": "TradeType"
|
||||
},
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "label",
|
||||
"type": "string",
|
||||
"index": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "MigrationEvent",
|
||||
"fields": [
|
||||
{
|
||||
"name": "tokensMigrated",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "tokensBurned",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "collateralMigrated",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "fee",
|
||||
"type": "u64",
|
||||
"index": false
|
||||
},
|
||||
{
|
||||
"name": "label",
|
||||
"type": "string",
|
||||
"index": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"errors": [
|
||||
{
|
||||
"code": 6000,
|
||||
"name": "InsufficientBalance",
|
||||
"msg": "Insufficient SOL to pay for the transaction."
|
||||
},
|
||||
{
|
||||
"code": 6001,
|
||||
"name": "InvalidAmount",
|
||||
"msg": "The amount must be available in the curve ."
|
||||
},
|
||||
{
|
||||
"code": 6002,
|
||||
"name": "InvalidSlippage",
|
||||
"msg": "The slippage must be under 100 percent."
|
||||
},
|
||||
{
|
||||
"code": 6003,
|
||||
"name": "SlippageOverflow",
|
||||
"msg": "The cost amount is not in the allowed slippage interval."
|
||||
},
|
||||
{
|
||||
"code": 6004,
|
||||
"name": "ThresholdReached",
|
||||
"msg": "Threshold limit exceeded."
|
||||
},
|
||||
{
|
||||
"code": 6005,
|
||||
"name": "InvalidTokenAccount",
|
||||
"msg": "Trade disabled, market cap threshold reached."
|
||||
},
|
||||
{
|
||||
"code": 6006,
|
||||
"name": "InvalidCurveAccount",
|
||||
"msg": "Invalid curve account."
|
||||
},
|
||||
{
|
||||
"code": 6007,
|
||||
"name": "InvalidFeeAccount",
|
||||
"msg": "Invalid fee account address."
|
||||
},
|
||||
{
|
||||
"code": 6008,
|
||||
"name": "CurveLimit",
|
||||
"msg": "Curve limit exceeded."
|
||||
},
|
||||
{
|
||||
"code": 6009,
|
||||
"name": "InvalidCurveType",
|
||||
"msg": "Invalid curve type."
|
||||
},
|
||||
{
|
||||
"code": 6010,
|
||||
"name": "InvalidCurrency",
|
||||
"msg": "Invalid currency."
|
||||
},
|
||||
{
|
||||
"code": 6011,
|
||||
"name": "Arithmetics",
|
||||
"msg": "Artithmetics error"
|
||||
},
|
||||
{
|
||||
"code": 6012,
|
||||
"name": "ThresholdNotHit",
|
||||
"msg": "Market Cap threshold not hit, cannot migrate funds yet"
|
||||
},
|
||||
{
|
||||
"code": 6013,
|
||||
"name": "InvalidAuthority",
|
||||
"msg": "Invalid Authority provided."
|
||||
},
|
||||
{
|
||||
"code": 6014,
|
||||
"name": "TradeAmountTooLow",
|
||||
"msg": "Trade amount too low , resulting in 0 costs"
|
||||
},
|
||||
{
|
||||
"code": 6015,
|
||||
"name": "ConfigFieldMissing",
|
||||
"msg": "Config field needs to be present during initialization"
|
||||
},
|
||||
{
|
||||
"code": 6016,
|
||||
"name": "DifferentCurrencies",
|
||||
"msg": "Unsupported different currency types"
|
||||
},
|
||||
{
|
||||
"code": 6017,
|
||||
"name": "BasisPointTooHigh",
|
||||
"msg": "Basis points too high"
|
||||
},
|
||||
{
|
||||
"code": 6018,
|
||||
"name": "FeeShareTooHigh",
|
||||
"msg": "Fee share too High"
|
||||
},
|
||||
{
|
||||
"code": 6019,
|
||||
"name": "TokenDecimalsOutOfRange",
|
||||
"msg": "Token decimals are not within the supported range"
|
||||
},
|
||||
{
|
||||
"code": 6020,
|
||||
"name": "TokenNameTooLong",
|
||||
"msg": "Token Name too long, max supported length is 32 bytes"
|
||||
},
|
||||
{
|
||||
"code": 6021,
|
||||
"name": "TokenSymbolTooLong",
|
||||
"msg": "Token Symbol too long, max supported length is 10 bytes"
|
||||
},
|
||||
{
|
||||
"code": 6022,
|
||||
"name": "TokenURITooLong",
|
||||
"msg": "Token URI too long, max supported length is 200 bytes"
|
||||
},
|
||||
{
|
||||
"code": 6023,
|
||||
"name": "IncorrectDecimalPlacesBounds",
|
||||
"msg": "Minimum Decimal Places cannot be lower than Maximum Decimal Places"
|
||||
},
|
||||
{
|
||||
"code": 6024,
|
||||
"name": "IncorrectTokenSupplyBounds",
|
||||
"msg": "Minimum Token Supply cannot be lower than Maximum Token Supply"
|
||||
},
|
||||
{
|
||||
"code": 6025,
|
||||
"name": "TotalSupplyOutOfBounds",
|
||||
"msg": "Token Total Supply out of bounds"
|
||||
},
|
||||
{
|
||||
"code": 6026,
|
||||
"name": "FinalCollateralTooLow",
|
||||
"msg": "This setup will produce final collateral amount less than the migration fee"
|
||||
},
|
||||
{
|
||||
"code": 6027,
|
||||
"name": "CoefficientZero",
|
||||
"msg": "One of the Coefficients is equal to ZERO"
|
||||
},
|
||||
{
|
||||
"code": 6028,
|
||||
"name": "MarketCapThresholdTooLow",
|
||||
"msg": "Market cap Threshold under the Hard lower bound limits"
|
||||
},
|
||||
{
|
||||
"code": 6029,
|
||||
"name": "CoefBOutofBounds",
|
||||
"msg": "Default coef_b set out of hard limit bounds"
|
||||
},
|
||||
{
|
||||
"code": 6030,
|
||||
"name": "IncorrectMarketCap",
|
||||
"msg": "For Constant Product the Market Cap threshold cannot be higher than 325 SOL"
|
||||
},
|
||||
{
|
||||
"code": 6031,
|
||||
"name": "IncorrectDecimals",
|
||||
"msg": "For Constant Product the Decimal places cannot be other than 9"
|
||||
},
|
||||
{
|
||||
"code": 6032,
|
||||
"name": "IncorrectMaxSupply",
|
||||
"msg": "For Constant Product the Maximal Token Supply cannot be other than 1_000_000_000"
|
||||
},
|
||||
{
|
||||
"code": 6033,
|
||||
"name": "MarketCapTooHigh",
|
||||
"msg": "Market Cap Threshold set too high, will not be hit even if Curve Hard Limit reached"
|
||||
},
|
||||
{
|
||||
"code": 6034,
|
||||
"name": "InvalidMigrationTarget",
|
||||
"msg": "This Migration Target is not supported!"
|
||||
},
|
||||
{
|
||||
"code": 6035,
|
||||
"name": "General",
|
||||
"msg": "General error"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user