import {
WalletSDKImpl,
localNetAuthDefault,
localNetLedgerDefault,
localNetTopologyDefault,
localNetTokenStandardDefault,
localNetStaticConfig,
} from ‘@canton-network/wallet-sdk’
import { pino } from ‘pino’
import { v4 } from ‘uuid’
const onlineLogger = pino({ name: ‘online-localnet’, level: ‘info’ })
const onlineSDK = new WalletSDKImpl().configure({
logger: onlineLogger,
authFactory: localNetAuthDefault,
ledgerFactory: localNetLedgerDefault,
topologyFactory: localNetTopologyDefault,
tokenStandardFactory: localNetTokenStandardDefault,
})
await onlineSDK.connect()
onlineLogger.info(‘Connected to ledger’)
await onlineSDK.connectAdmin()
onlineLogger.info(‘Connected as admin’)
await onlineSDK.connectTopology(
localNetStaticConfig.LOCALNET_SCAN_PROXY_API_URL
)
onlineLogger.info(
`Connected to topology: ${localNetStaticConfig.LOCALNET_SCAN_PROXY_API_URL}`
)
onlineSDK.tokenStandard?.setTransferFactoryRegistryUrl(
localNetStaticConfig.LOCALNET_REGISTRY_API_URL
)
onlineLogger.info(
`defined registry url: ${localNetStaticConfig.LOCALNET_REGISTRY_API_URL}`
)
const senderParty = {partyId: ‘hello::1220202f91180f02d7dda6e5e10200b16b904542691e3a5c35b88b5e935b72f85fb2’}
const receiverParty = {partyId: ‘world::1220cfad1a13b5c0d9376ad60821fd13aaefb636b8f291f54dea3c857c3ed8fb0027’}
await onlineSDK.setPartyId(senderParty.partyId)
const instrumentAdminPartyId =
(await onlineSDK.tokenStandard?.getInstrumentAdmin()) || ''
const userToken = await localNetAuthDefault().getUserToken()
console.log(‘User Token:’, userToken)
const adminToken = await localNetAuthDefault().getAdminToken()
console.log(‘Admin Token:’, adminToken)
const [transferCommand, disclosedContracts] = await onlineSDK.tokenStandard.createTransfer(
senderParty.partyId,
receiverParty.partyId,
‘1999’,
{
instrumentId: ‘Amulet’,
instrumentAdmin: instrumentAdminPartyId,
},
,
‘memo-curl-test’
)
const transaction = await onlineSDK.userLedger?.prepareSubmission(
transferCommand, //the prepared ping command
v4(), //a unique deduplication id for this transaction
disclosedContracts //contracts that needs to be disclosed in our to execute the command
)
onlineLogger.info(`Prepared transfer: ${transaction.preparedTransaction}`)
onlineLogger.info(`Prepared transfer with hash: ${transaction.preparedTransactionHash}`)
how to decode transaction.preparedTransaction so i can view detail of this transaction?