| 38 | } |
| 39 | |
| 40 | function displaySafe(address: string, safe: Safe): void { |
| 41 | let { type, tokens, owners } = safe; |
| 42 | console.log(`${address} -- ${type}`); |
| 43 | console.log('-------------------------'); |
| 44 | if (safe.type === 'prepaid-card') { |
| 45 | console.log(`customization DID: ${safe.customizationDID ? safe.customizationDID : ' - unset -'}`); |
| 46 | console.log(`Face value: §${safe.spendFaceValue} SPEND`); |
| 47 | console.log(`has been used: ${safe.hasBeenUsed}`); |
| 48 | } |
| 49 | if (safe.type === 'merchant' || safe.type === 'depot') { |
| 50 | console.log(`info DID: ${safe.infoDID ? safe.infoDID : ' - unset -'}`); |
| 51 | } |
| 52 | if (safe.type === 'merchant') { |
| 53 | console.log(`Accumulated SPEND value: §${safe.accumulatedSpendValue} SPEND`); |
| 54 | } |
| 55 | if (tokens.length === 0) { |
| 56 | console.log('No tokens in safe'); |
| 57 | } |
| 58 | tokens.forEach((item) => { |
| 59 | let isIssuingToken = safe.type === 'prepaid-card' && safe.issuingToken === item.tokenAddress; |
| 60 | console.log( |
| 61 | `${item.token.name} - ${Web3.utils.fromWei(item.balance)} ${item.token.symbol} ${ |
| 62 | isIssuingToken ? '(issuing token)' : '' |
| 63 | }` |
| 64 | ); |
| 65 | }); |
| 66 | if (safe.type === 'prepaid-card') { |
| 67 | console.log(`owner: ${safe.prepaidCardOwner}`); |
| 68 | } else if (safe.type === 'merchant') { |
| 69 | console.log(`merchant: ${safe.merchant}`); |
| 70 | } else { |
| 71 | console.log(`owner(s): ${owners.join(', ')}`); |
| 72 | } |
| 73 | } |
| 74 | |
| 75 | export async function transferTokens( |
| 76 | network: string, |