Injective의 Token Factory 모듈을 사용하면 사용자와 컨트랙트가 새로운 네이티브 토큰을 생성하고 Mint + Burn 모델을 사용하여 네이티브 토큰을 CW20 토큰과 교환할 수 있습니다. 다른 소스의 자산을 네이티브 bank denom으로 표현하면 사용자가 exchange, auction, insurance funds 등 나머지 온체인 모듈에 액세스할 수 있으므로 체인에서 이 기능을 갖추는 것이 중요합니다. Token factory denom은 factory/{creator address}/{subdenom} 형식입니다.
생성자 역할을 하는 CW20AdapterContract와 결합하여 CW20 자산을 Injective에서 Token Factory denom으로 네이티브하게 표현할 수 있습니다. 작동 방식은 CW20 자산이 CW20AdapterContract에 보관되고 injective 주소에 대한 factory denom으로 발행되며, 다시 CW20으로 되찾으려면 bank 모듈에서 소각되고 CW20AdapterContract에서 잠금이 해제되어 소유자 주소로 돌아갑니다.
factory denom을 CW20으로 되찾는 방법 예시
import {
MsgExecuteContractCompat,
ExecArgCW20AdapterRedeemAndTransfer,
} from '@injectivelabs/sdk-ts/core/modules'
const CW20_ADAPTER_CONTRACT = 'inj...'
const contractCw20Address = 'inj...'
const injectiveAddress = 'inj...'
const message = MsgExecuteContractCompat.fromJSON({
sender: injectiveAddress,
contractAddress: CW20_ADAPTER_CONTRACT,
funds: {
denom: `factory/${CW20_ADAPTER_CONTRACT}/${contractCw20Address}`,
amount: actualAmount.toFixed(),
},
execArgs: ExecArgCW20AdapterRedeemAndTransfer.fromJSON({
recipient: injectiveAddress,
}),
})
// 그런 다음 메시지를 트랜잭션에 패킹하고 서명한 후 체인에 브로드캐스트합니다
CW20을 factory denom으로 변환하는 방법 예시
import {
ExecArgCW20Send,
MsgExecuteContractCompat,
} from '@injectivelabs/sdk-ts/core/modules'
const CW20_ADAPTER_CONTRACT = 'inj...'
const contractCw20Address = 'inj...'
const injectiveAddress = 'inj...'
const amount = '1000000' // 6 소수점을 가지므로 체인에서 1 USDT로 표현됨
const message = MsgExecuteContractCompat.fromJSON({
contractAddress: contractCw20Address,
sender: injectiveAddress,
execArgs: ExecArgCW20Send.fromJSON({
amount,
contractAddress: CW20_ADAPTER_CONTRACT,
}),
})
// 그런 다음 메시지를 트랜잭션에 패킹하고 서명한 후 체인에 브로드캐스트합니다
Last modified on April 3, 2026