Skip to content

Commit

Permalink
feat:mint and deploy soulbound token controllers
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperBatata committed Aug 23, 2023
1 parent 477a2c3 commit e204620
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions src/main/kotlin/id/walt/nftkit/rest/NftController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,50 @@ object NftController {
it.description("")
}.json<DeploymentResponse>("200") { it.description("Transaction ID and smart contract address") }

fun deploySoulBoundSmartContract (ctx: Context) {
val deployReq = ctx.bodyAsClass(DeployRequest::class.java)
val chain = ctx.pathParam("chain")
val deploymentOptions = DeploymentOptions(deployReq.accessControl, deployReq.tokenStandard)
val deploymentParameter = DeploymentParameter(deployReq.name, deployReq.symbol, deployReq.options)
val result =
NftService.deploySoulBoundSmartContractToken(Common.getEVMChain(chain.uppercase()), deploymentParameter, deploymentOptions)
ctx.json(
result
)
}

fun deploySoulBoundSmartContractDocs() = document().operation {
it.summary("SoulBound Smart contract deployment")
.operationId("deploySoulBoundSmartContract").addTagsItem(TAG1)
}.pathParam<String>("chain") {
it.schema<EVMChain> { }
}.body<DeployRequest> {
it.description("")
}.json<DeploymentResponse>("200") { it.description("Transaction ID and smart contract address") }


fun mintSoulbound(ctx: Context){
val mintReq = ctx.bodyAsClass(MintRequest::class.java)
val chain = ctx.pathParam("chain")
val contractAddress = ctx.pathParam("contractAddress")
val mintingParameter = MintingParameter(mintReq.metadataUri, mintReq.recipientAddress, mintReq.metadata)
val mintingOptions = MintingOptions(mintReq.metadataStorageType)
val result =
NftService.mintSoulBoundToken(Common.getEVMChain(chain.uppercase()), contractAddress, mintingParameter, mintingOptions)
ctx.json(
result
)
}

fun mintSoulboundDocs() = document().operation {
it.summary("SoulBound NFT minting")
.operationId("mintSoulBoundNft").addTagsItem(TAG1)
}.pathParam<String>("chain") {
it.schema<EVMChain> { }
}.pathParam<String>("contractAddress") {
}.body<MintRequest> {
it.description("")
}.json<MintingResponse>("200") { it.description("Transaction ID and token ID") }

fun mint(ctx: Context) {
val mintReq = ctx.bodyAsClass(MintRequest::class.java)
Expand Down

0 comments on commit e204620

Please sign in to comment.