overlay-ruby 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.DS_Store +0 -0
- data/README.md +1 -0
- data/lib/overlay/.DS_Store +0 -0
- data/lib/overlay/client.rb +31 -0
- data/lib/overlay/config.rb +21 -0
- data/lib/overlay/nft.rb +33 -0
- data/lib/overlay/response.rb +42 -0
- data/lib/overlay/token.rb +35 -0
- data/lib/overlay/version.rb +5 -0
- data/lib/overlay/wallet.rb +12 -0
- data/lib/overlay.rb +18 -0
- data/sig/overlay.rbs +4 -0
- metadata +73 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0d3cefab6304e1630b289f6a40f3b0cb3ef37f91b7dec3ff81aae2406879a805
|
4
|
+
data.tar.gz: f3d5bfc15a43a5643da5d326397b6027e443892f9a1ec64d0264e44be22e53c3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6c97a51f22d5e0b40abe32277af750d67942a6d5cf10a0a22a6a1a4c5265eb420b2747d925d8b457c6081a24fe1f851034cb37be1efef4b7114729ef632ac1a3
|
7
|
+
data.tar.gz: 83860a3d530c45384942c07eec8ea2af85f07129646787df6a2de2f251d8f58b46c11dcc9a1b671cd67fd911bbea591a41949bada9721cbecaad4e6558e90893
|
data/.DS_Store
ADDED
Binary file
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# overlay-ruby
|
Binary file
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "httpx"
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
module Overlay
|
5
|
+
class Client
|
6
|
+
def initialize(api_key: Config.api_key, auth_key: Config.auth_key, base_url: Config.base_url)
|
7
|
+
@api_key = api_key
|
8
|
+
@auth_key = auth_key
|
9
|
+
@base_url = base_url
|
10
|
+
end
|
11
|
+
|
12
|
+
def post(path, payload)
|
13
|
+
res = HTTPX.with_headers(headers).post("#{@base_url}#{path}", json: payload)
|
14
|
+
handle_response(res)
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def headers
|
20
|
+
{
|
21
|
+
"api-key" => @api_key,
|
22
|
+
"auth-key" => @auth_key,
|
23
|
+
"Content-Type" => "application/json"
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
def handle_response(res)
|
28
|
+
JSON.parse(res.to_s)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Overlay
|
2
|
+
module Config
|
3
|
+
class << self
|
4
|
+
attr_accessor :api_key, :auth_key, :env, :base_url
|
5
|
+
|
6
|
+
def env=(value)
|
7
|
+
@env = value.to_s
|
8
|
+
@base_url = case @env
|
9
|
+
when "devnet"
|
10
|
+
"https://devnet.overlay.fun"
|
11
|
+
when "mainnet"
|
12
|
+
"https://mainnet.overlay.fun"
|
13
|
+
else
|
14
|
+
raise ArgumentError, "Invalid env: #{@env} (use 'devnet' or 'mainnet')"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
self.env = "devnet"
|
20
|
+
end
|
21
|
+
end
|
data/lib/overlay/nft.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'overlay/response'
|
2
|
+
|
3
|
+
module Overlay
|
4
|
+
class NFT
|
5
|
+
def self.create(params)
|
6
|
+
client = Client.new
|
7
|
+
res = client.post("/nfts", params)
|
8
|
+
|
9
|
+
Overlay::Response.new(res)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.mint(mint_address, params = {})
|
13
|
+
client = Client.new
|
14
|
+
res = client.post("/nfts/#{mint_address}/mint", params)
|
15
|
+
|
16
|
+
Overlay::Response.new(res)
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.transfer(mint_address, params = {})
|
20
|
+
client = Client.new
|
21
|
+
res = client.post("/nfts/#{mint_address}/transfer", params)
|
22
|
+
|
23
|
+
Overlay::Response.new(res)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.burn(mint_address, params = {})
|
27
|
+
client = Client.new
|
28
|
+
res = client.post("/nfts/#{mint_address}/burn", params)
|
29
|
+
|
30
|
+
Overlay::Response.new(res)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "json"
|
2
|
+
|
3
|
+
module Overlay
|
4
|
+
class Response
|
5
|
+
attr_reader :data, :message, :success
|
6
|
+
|
7
|
+
def initialize(hash)
|
8
|
+
@success = hash["success"]
|
9
|
+
@message = hash["message"]
|
10
|
+
@data = hash["data"] || {}
|
11
|
+
|
12
|
+
# data 配下のキーを最上位でもアクセス可能にする
|
13
|
+
@data.each do |k, v|
|
14
|
+
define_singleton_method(k) { v }
|
15
|
+
end
|
16
|
+
|
17
|
+
# top-level keys もメソッド化
|
18
|
+
(hash.keys - ["data"]).each do |k|
|
19
|
+
define_singleton_method(k) { hash[k] }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# JSON 表示用
|
24
|
+
def to_h
|
25
|
+
{ success: success, message: message }.merge(data)
|
26
|
+
end
|
27
|
+
|
28
|
+
# JSON pretty print 用
|
29
|
+
def to_json_pretty
|
30
|
+
JSON.pretty_generate(to_h)
|
31
|
+
end
|
32
|
+
|
33
|
+
# inspect と to_s を JSON 表示にオーバーライド
|
34
|
+
def inspect
|
35
|
+
to_json_pretty
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_s
|
39
|
+
to_json_pretty
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'overlay/response'
|
2
|
+
|
3
|
+
module Overlay
|
4
|
+
class Token
|
5
|
+
def self.create(params)
|
6
|
+
client = Client.new
|
7
|
+
res = client.post("/tokens", params)
|
8
|
+
|
9
|
+
Overlay::Response.new(res)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.mint(mint_address, params = {})
|
13
|
+
raise "amount is required" unless params[:amount]
|
14
|
+
|
15
|
+
client = Client.new
|
16
|
+
res = client.post("/tokens/#{mint_address}/mint", params)
|
17
|
+
|
18
|
+
Overlay::Response.new(res)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.transfer(mint_address, params = {})
|
22
|
+
client = Client.new
|
23
|
+
res = client.post("/tokens/#{mint_address}/transfer", params)
|
24
|
+
|
25
|
+
Overlay::Response.new(res)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.burn(mint_address, params = {})
|
29
|
+
client = Client.new
|
30
|
+
res = client.post("/tokens/#{mint_address}/burn", params)
|
31
|
+
|
32
|
+
Overlay::Response.new(res)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/overlay.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "overlay/version"
|
4
|
+
require_relative "overlay/config"
|
5
|
+
require_relative "overlay/client"
|
6
|
+
require_relative "overlay/wallet"
|
7
|
+
require_relative "overlay/token"
|
8
|
+
require_relative "overlay/nft"
|
9
|
+
|
10
|
+
module Overlay
|
11
|
+
class Error < StandardError; end
|
12
|
+
|
13
|
+
class << self
|
14
|
+
def configure
|
15
|
+
yield(Config)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/sig/overlay.rbs
ADDED
metadata
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: overlay-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- overlay
|
8
|
+
bindir: exe
|
9
|
+
cert_chain: []
|
10
|
+
date: 2025-08-15 00:00:00.000000000 Z
|
11
|
+
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: httpx
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - ">="
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '0'
|
19
|
+
type: :runtime
|
20
|
+
prerelease: false
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '0'
|
26
|
+
description: Overlay enables simple Web3 development across multiple blockchains,
|
27
|
+
including Solana, Ethereum, BSC, Base, Polygon, and Bera. It does not require signing
|
28
|
+
transactions with wallets, which is typically necessary in blockchain development.
|
29
|
+
Additionally, Overlay does not store any database, implements high-level security
|
30
|
+
features, and securely encrypts wallet information to safely execute transactions.
|
31
|
+
email:
|
32
|
+
- contact@overlay.fun
|
33
|
+
executables: []
|
34
|
+
extensions: []
|
35
|
+
extra_rdoc_files: []
|
36
|
+
files:
|
37
|
+
- ".DS_Store"
|
38
|
+
- README.md
|
39
|
+
- lib/overlay.rb
|
40
|
+
- lib/overlay/.DS_Store
|
41
|
+
- lib/overlay/client.rb
|
42
|
+
- lib/overlay/config.rb
|
43
|
+
- lib/overlay/nft.rb
|
44
|
+
- lib/overlay/response.rb
|
45
|
+
- lib/overlay/token.rb
|
46
|
+
- lib/overlay/version.rb
|
47
|
+
- lib/overlay/wallet.rb
|
48
|
+
- sig/overlay.rbs
|
49
|
+
homepage: https://docs.overlay.fun
|
50
|
+
licenses: []
|
51
|
+
metadata:
|
52
|
+
allowed_push_host: https://rubygems.org
|
53
|
+
homepage_uri: https://docs.overlay.fun
|
54
|
+
source_code_uri: https://github.com/overlaydotfun/overlay-ruby
|
55
|
+
rdoc_options: []
|
56
|
+
require_paths:
|
57
|
+
- lib
|
58
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 3.3.0
|
63
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
requirements: []
|
69
|
+
rubygems_version: 3.6.2
|
70
|
+
specification_version: 4
|
71
|
+
summary: Overlay is a library for Web3 development that makes it easy to implement
|
72
|
+
wallet creation, token and NFT issuance, minting, burning, and transfers.
|
73
|
+
test_files: []
|