Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bchainhub/payto-rl
Payto resource locator
https://github.com/bchainhub/payto-rl
ach cash iban ican locator payto pix prl protocol resource uniform upi url
Last synced: about 10 hours ago
JSON representation
Payto resource locator
- Host: GitHub
- URL: https://github.com/bchainhub/payto-rl
- Owner: bchainhub
- License: other
- Created: 2024-07-03T13:33:15.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2024-07-08T16:44:57.000Z (4 months ago)
- Last Synced: 2024-08-15T09:58:26.887Z (3 months ago)
- Topics: ach, cash, iban, ican, locator, payto, pix, prl, protocol, resource, uniform, upi, url
- Language: TypeScript
- Homepage: https://payto.money
- Size: 20.5 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Payto-RL
`payto-rl` is a TypeScript library for handling Payto resource locators (PRLs). This library is based on the [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL) API and provides additional functionality for managing PRLs.
## Installation
You can install the `payto-rl` package using npm or yarn:
### Using npm
```sh
npm install payto-rl
```### Using yarn
```sh
yarn add payto-rl
```## Usage
Here is an example of how to use the `Payto-RL` package:
### Example
```typescript
import Payto from 'payto-rl';const paytoString = 'payto://xcb/cb7147879011ea207df5b35a24ca6f0859dcfb145999?amount=ctn:10.01&fiat=eur';
const payto = new Payto(paytoString);console.log(payto.address); // Outputs: cb7147879011ea207df5b35a24ca6f0859dcfb145999
console.log(payto.amount); // Outputs: ctn:10.01
console.log(payto.value); // Outputs: 10.01
console.log(payto.network); // Outputs: xcb
console.log(payto.currency); // Outputs: ['ctn', 'eur']payto.value = 20.02;
console.log(payto.amount); // Outputs: ctn:20.02
console.log(payto.value); // Outputs: 20.02
console.log(payto.fiat); // Outputs: eur
// Then it should be payed 20.02 EUR in CTN to the address cb7147879011ea207df5b35a24ca6f0859dcfb145999 on the XCB network.console.log(payto.toJSONObject());
/*
Outputs:
{
address: 'cb7147879011ea207df5b35a24ca6f0859dcfb145999',
amount: 'ctn:20.02',
asset: 'ctn',
fiat: 'eur',
host: 'xcb',
hostname: 'xcb',
href: 'payto://xcb/cb7147879011ea207df5b35a24ca6f0859dcfb145999?amount=ctn:10.01&fiat=eur',
network: 'xcb',
pathname: '/cb7147879011ea207df5b35a24ca6f0859dcfb145999',
protocol: 'payto:',
search: '?amount=ctn:10.01&fiat=eur',
value: 20.02
}
*/payto.currency = ['btc', 'usd', 12];
console.log(payto.currency); // Outputs: ['btc', 'usd']
console.log(payto.value); // Outputs: 12
```## API
### `Payto`
#### Constructor
```typescript
constructor(paytoString: string)
```Creates a new `Payto` instance.
#### Properties
##### `address: string | null`
Gets or sets the address component of the PRL.
##### `amount: string | null`
Gets or sets the amount component of the PRL. Amount consists of the number of units and the currency delimited by `:`.
##### `asset: string | null`
Gets or sets the asset component of the PRL. Asset is the currency in the amount field. Can be ticker or smart contract address.
##### `barcode: string | null` (design value)
Gets or sets the barcode component of the PRL. Values `pdf417`, `aztec` and `0` are supported, where `0` is the boolean value (false) to hide the barcode.
##### `bic: string | null`
Gets or sets the BIC component of the PRL.
##### `currency: [string | null, string | null]`
Gets or sets the currency component of the PRL.
##### `colorBackground: string | null` (design value)
Gets or sets the background color 6-hexcode component of the PRL.
##### `colorForeground: string | null` (design value)
Gets or sets the foreground color 6-hexcode component of the PRL.
##### `deadline: number | null`
Gets or sets the deadline component in Unix timestamp of the PRL.
##### `donate: string | null`
Gets or sets the donate component of the PRL.
##### `fiat: string | null`
Gets or sets the fiat component of the PRL.
##### `hash: string`
Gets or sets the hash component of the PRL.
##### `host: string`
Gets or sets the host component of the PRL.
##### `hostname: string`
Gets or sets the hostname component of the PRL.
##### `href: string`
Gets or sets the href component of the PRL.
##### `iban: string | null`
Gets or sets the IBAN component of the PRL.
##### `item: string | null` (design value)
Gets or sets the item name component of the PRL.
##### `location: string | null`
Gets or sets the location component of the PRL.
##### `message: string | null`
Gets or sets the message component of the PRL.
##### `network: string`
Gets or sets the network component of the PRL.
##### `organization: string | null` (design value)
Gets or sets the organization name component of the PRL.
##### `origin: string | null`
Gets the origin component of the PRL.
##### `password: string`
Gets or sets the password component of the PRL.
##### `pathname: string`
Gets or sets the pathname component of the PRL.
##### `port: string`
Gets or sets the port component of the PRL.
##### `protocol: string`
Gets or sets the protocol component of the PRL.
##### `receiverName: string | null`
Gets or sets the receiver name component of the PRL.
##### `recurring: string | null`
Gets or sets the recurring component of the PRL.
##### `route: string | null`
Gets or sets the route component of the PRL.
##### `routingNumber: number | null`
Gets or sets the routing number component of the PRL.
##### `search: string`
Gets or sets the search component of the PRL.
##### `searchParams: URLSearchParams`
Gets the URLSearchParams object.
##### `split: [string, string, boolean] | null`
Gets or sets the split component of the PRL.
##### `username: string`
Gets or sets the username component of the PRL.
##### `value: number | null`
Gets or sets the amount component of the PRL. This contrasts with the `amount` working only with the currency string and not the currency number itself.
#### Methods
##### `toString(): string`
Returns the string representation of the PRL.
##### `toJSON(): string`
Returns the JSON representation of the PRL.
##### `toJSONObject(): object`
Returns the PRL as a JSON object with all non-empty values.
## License
This project is licensed under the CORE License - see the [LICENSE](LICENSE) file for details.
## Contributing
Feel free to contribute to this project. You can open issues for feature requests or bug fixes. Pull requests are also welcome.
## Acknowledgments
This library is based on the [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL) API from MDN.