sclass BitGetCredentials { settable S name; settable S apiKey; settable S passphrase; settable S secretKey; toString { ret joinNempties(" with ", spaceCombine(shortClassName(this), quoteOrEmpty(name)), commaCombine( nempty(apiKey) ? "apiKey " + roundBracket(nCharacters(apiKey)) : null, nempty(passphrase) ? "passphrase " + roundBracket(nCharacters(passphrase)) : null, nempty(secretKey) ? "secretKey " + roundBracket(nCharacters(secretKey)) : null)); } static BitGetCredentials fromFile(File f) { var credMap = mapValues toSecretValue(parseColonPropertyCIMap(loadTextFile(f))); var cred = new BitGetCredentials; cred.apiKey(credMap.get("API-Key").get()); cred.passphrase(credMap.get("Passphrase").get()); cred.secretKey(credMap.get("SecretKey").get()); cred.name(credMap.get("Name").get()); ret cred; } void save(File f) { saveTextFile(f, formatColonProperties(litorderedmap( "API-Key" := apiKey, "Passphrase" := passphrase, "SecretKey" := secretKey, "Name" := name ))); } }